سؤال كيفية إدارة مفاتيح GPG عبر أنظمة متعددة؟


أنا جديد في استخدام GnuPG ومحاولة فهم أفضل السبل لاستخدامه. لقد راجعت قصيرة ، من السهل أن نفهم شرح GPG / PGP لأشخاص غير التقنيين؟، ولكن معظم الأدلة تشرح PGP مع منظور جهاز واحد.

أريد استخدام GnuPG على ثلاثة أجهزة كمبيوتر: كمبيوتر Linux ، كمبيوتر محمول Linux ، وهاتف Android.

حالة الاستخدام الأساسية هي تشفير / فك تشفير البريد الإلكتروني الذي تديره خدمة IMAP ، لذلك تحتاج جميع الأجهزة إلى نفس المفتاح الخاص لفك التشفير.

أعتقد أن اختياراتي هي:

  1. ما عليك سوى نسخ جميع مفاتيحي إلى حلقة المفاتيح على كل جهاز والاعتماد بشكل أساسي على كلمة مرور المفتاح الخاص للحماية.

  2. أنشئ مفتاحًا رئيسيًا (مع مفتاح --gen) لتمثيل هويتي ، ثم أنشئ مفتاحًا منفصلاً لمرة واحدة (مرة أخرى باستخدام مفتاح --gen) لتشفير / إلغاء تشفير الرسائل الإلكترونية وتوقيعه باستخدام المفتاح الرئيسي. السابق موجود فقط على جهاز الكمبيوتر الخاص بي ، يتم توزيع هذا الأخير على كل جهاز. وطالما لم يتم اختراق أجهزة الجوّال ، فإن المفتاح القابل للتصرف يبقى صالحًا.

قد أكون مرهقًا أكثر من اللازم وجعل هذا الأمر أكثر تعقيدًا مما يجب أن يكون ، ولكنني أرجو الفكاهة. أؤمن بعدم وضع كل بيضك في سلة واحدة.

من المفترض أن يكون المفتاح الرئيسي هويتي الرقمية. سيتم بذل الكثير من الجهد لبناء الثقة حول هذه الهوية ، وأنا أعاني من إزعاج جنون الارتياب أكثر من فقدان مفتاحي من الإهمال ويجب أن نبني الثقة حول مفتاح رئيسي جديد (ربما هذا ليس سيئًا كما أعتقد ، لكنني جديد في هذا).

من المرجح أن أفقد الكمبيوتر المحمول أو هاتفي من الكمبيوتر الشخصي. إذا كانت الخسارة == تنازلات ، فأنا أفضّل أن أزاح زوج المفاتيح القابل للتصرف (الذي يمكنني إبطاله) من زوج المفاتيح الرئيسي. يمكنني دائما أن أضمن ثقة مفتاحي الرئيسي على مفتاح جديد قابل للتصرف.

آسف على السؤال الطويل حقا. :-)

TL، DR

هو كلمة مرور كافية لحماية تخزين بلدي رئيس المفتاح الخاص عبر أجهزة متعددة؟

هل خطتي للخيار رقم 2 مجدية؟ هل حصلت على شيء خاطئ أو هل يمكن تحسينه؟

إذا كان الخيار رقم 2 فكرة سيئة ، فما أفضل الممارسات عند استخدام GnuPG لمستخدم واحد عبر أجهزة متعددة؟


85
2017-08-25 23:55


الأصل




الأجوبة:


حسنا ، هذا محرج بعض الشيء. لقد قضيت ساعات على مدار الأسبوع في محاولة لمعرفة هذه المشكلة ، ويبدو أن الإجابة تكمن في المفاتيح الفرعية - وهو موضوع يدلل عليه دليل GnuPG والأسئلة الشائعة.

أثناء البحث عن المفاتيح الفرعية ولماذا يمكن استخدامها بدلاً من --gen-key ، تعثرت عبر هذه الجوهرة: http://wiki.debian.org/subkeys.

توضح ويكي دبيان كيفية تنفيذ الخيار رقم 2 (راجع OP) باستخدام مفتاح رئيسي مع مفاتيح فرعية ، ويوضح كذلك كيفية إزالة المفتاح الرئيسي من أي نظام بعد تخزينه على وسيط النسخ الاحتياطي (على سبيل المثال ، محرك أقراص محمول). ثم يمكن توزيع المفاتيح الفرعية بين المفاتيح الخاصة بي على كل جهاز.

الايجابيات:

  1. لا تعتمد بشكل أساسي على كلمة المرور لحماية المفتاح الرئيسي ،

  2. إذا تم اختراق أي نظام ، فإن المفتاح الرئيسي غير متوفر على الفور (إلا إذا تركت محرك أقراص فلاش الخاص بي متورطًا في الحماقة أو أرفق محرك الأقراص هذا بنظام مخترق) ،

  3. هذه ممارسة نفذها فريق تطوير دبيان.

  4. يستخدم ميزة المفتاح الفرعي لـ GnuPG. الذي يبدو أكثر تنظيماً قليلاً من وجود مجموعة من المفاتيح السائبة على حلقك ، نعم؟

الجزء ذو الصلة من Debian Subkey Wiki

  1. قم بعمل نسخ احتياطية لملفات GnuPG الموجودة لديك ($ HOME / .gnupg). ابقهم في امان. إذا حدث خطأ ما أثناء الخطوات التالية ، فقد تحتاج إلى العودة إلى مكان جيد معروف. (ملاحظة: umask 077 سيؤدي إلى أذونات مقيدة للنسخ الاحتياطي.)

    • umask 077; tar -cf $HOME/gnupg-backup.tar -C $HOME .gnupg
  2. قم بإنشاء مفتاح فرعي جديد للتوقيع.

    • العثور على معرف المفتاح الخاص بك: gpg --list-keys yourname
    • gpg --edit-key YOURMASTERKEYID
    • في ال gpg> مستعجل: addkey
    • هذا يسأل عن عبارة المرور الخاصة بك ، اكتبها في.
    • اختر نوع المفتاح "RSA (توقيع فقط)".
    • سيكون من الحكمة اختيار حجم المفتاح 4096 (أو 2048).
    • اختر تاريخ انتهاء الصلاحية (يمكنك تدوير المفاتيح الفرعية الخاصة بك بشكل متكرر أكثر من المفاتيح الرئيسية ، أو الاحتفاظ بها لحياة المفتاح الرئيسي ، بدون انتهاء صلاحية).
    • ستقوم GnuPG (في النهاية) بإنشاء مفتاح ، لكن قد تضطر إلى الانتظار حتى تحصل على قدر كافٍ من الإنتروبيا للقيام بذلك.
    • احفظ المفتاح: save
  3. يمكنك تكرار هذا ، وإنشاء مفتاح فرعي "RSA (تشفير فقط) أيضًا ، إذا أردت.

  4. الآن نسخة $HOME/.gnupg إلى محركات أقراص USB الخاصة بك.

  5. هنا يأتي الجزء الصعب. تحتاج إلى إزالة المفتاح الرئيسي الخاص ، وللأسف لا يوفر GnuPG طريقة ملائمة للقيام بذلك. نحتاج إلى تصدير المفتاح الفرعي وإزالة المفتاح الخاص واستيراد المفتاح الفرعي مرة أخرى.

    • تصدير المفاتيح الفرعية: gpg --export-secret-subkeys YOURMASTERKEYID >secret-subkeys (لاختيار المفاتيح الفرعية التي سيتم تصديرها ، حدد معرفات المفتاح الفرعي متبوعة بعلامة تعجب: gpg --export-secret-subkeys SUBKEYID! [SUBKEYID! ..])
    • أزل مفتاح السر الرئيسي الخاص بك: gpg --delete-secret-key YOURMASTERKEYID
    • استيراد المفاتيح الفرعية مرة أخرى: gpg --import secret-subkeys
    • تحقق من أن gpg -K يظهر sec# بدلا من مجرد sec لمفتاحك الخاص هذا يعني أن المفتاح السري ليس موجودًا حقًا. (انظر أيضا وجود حزمة OpenPGP وهمية في إخراج gpg --export-secret-key YOURMASTERKEYID | gpg --list-packets).
    • بشكل اختياري ، قم بتغيير عبارة المرور التي تحمي المفاتيح الفرعية: gpg --edit-key YOURMASTERKEYID passwd. (لاحظ أن مادة المفتاح الخاص على النسخة الاحتياطية ، بما في ذلك المفتاح الرئيسي الخاص ، ستظل محمية بواسطة عبارة المرور القديمة.)

جهاز الكمبيوتر الخاص بك جاهز الآن للاستخدام العادي.

عندما تحتاج إلى استخدام المفاتيح الرئيسية ، قم بتركيب محرك أقراص USB المشفر ، واضبط متغير بيئة GNUPGHOME:

export GNUPGHOME=/media/something
gpg -K

أو استخدام -home حجة سطر الأوامر:

gpg --home=/media/something -K

يجب أن يدرج الأمر الأخير الآن مفتاحك الخاص sec و لا sec#.

مفاتيح فرعية متعددة لكل جهاز مقابل مفتاح فرعي واحد لكل الأجهزة

مقتطفات من ويكيبيان ديبيان الفرعي. يلاحظ في الأصل في التعليقات. [إعادة الصياغة] و تشديد الخاص بي.

قد يكون أحد يميل إلى أن يكون لديك مفتاح فرعي واحد لكل جهاز بحيث تحتاج فقط إلى تبادل المفتاح الفرعي المحتمل اختراق هذا الجهاز. في حالة وجود مفتاح فرعي واحد يتم استخدامه على جميع الأجهزة ، يجب تبديله على جميع الأجهزة [عندما يكون هذا المفتاح الفرعي الفردي أو الذي يُشتبه في تعرضه للاختراق].

ولكن هذا يعمل فقط على توقيع المفاتيح الفرعية. إذا كان لديك عدة مفاتيح فرعية للتشفير ، يقال gpg لتشفير فقط لأحدث مفتاح فرعي للتشفير وليس لجميع المفاتيح الفرعية التشفير المعروفة والتي لم يتم إبطالها.


49
2017-08-26 01:28



سؤال وجواب جيدان ، ولكن AFAIK لا تزال هناك مشكلة واحدة في هذا الإعداد ... إنه أمر رائع للتوقيع ، ولكن ليس للتشفير إذا كنت لا ترغب في مشاركة مفتاح التشفير نفسه بين أجهزتك المختلفة ، لأنه عندما يقوم شخص ما بجعلك متلقيًا لمشفرًا رسالة ، جي بي جي استخدام بشكل افتراضي على أحدث لم يتم إبطال مفتاح مفتاح التشفير. ليس من الممكن إجبار المرسلين على استخدام مفتاح فرعي معترف به اعتمادًا على UID (المنزل أو العمل ، إلخ). - KurzedMetal
ربما هذه مشكلة. أعظم قلقي هو فقدان شبكة الثقة التي أقوم ببنائها حول المفتاح الرئيسي الخاص بي (الذي يوقع فقط). بالطبع يجب أن يوجد المفتاح الفرعي للتشفير على جميع الأجهزة التي أستخدمها لقراءة الرسائل المشفرة. إذا تم اختراق مفتاح التشفير الخاص بي ، فستشمل عملية الاستعادة نفسي فقط ؛ بدلا من فقدان مفتاح التوقيع الرئيسي الخاص بي ، ويجب أن أطلب / إقناع شبكة الويب الخاصة بي من الثقة لتوقيع المفتاح الجديد. لم أكن أنوي نقل مفتاح التشفير الفرعي في قبوتي. - Justin C


كشخص لا يحب أيضا نقطة واحدة من الفشل (بما في ذلك المفاتيح الرئيسية و خصوصا كلمات المرور) ، هذه هي الطريقة التي يمكنني القيام بها. إنه يسمح للأجهزة بالعمل عبر شبكة من الثقة ، مع السماح بالهوية اللامركزية.

لا أعرف ما إذا كان هناك بالفعل نظام حالي لهذا ، لكنني أعتقد أنه من المحتمل أن يكون قد تم تشويشها مع وظيفة كرون وبضع أسطر من باش.

في هذا النظام ، لديك فئتان من keypair: أزرار مفاتيح الجهاز و مفاتيح الإطار الزمني. واحد الجهاز keypair يتم إنشاؤه للمستخدم على كل جهاز ، ويظل على هذا الجهاز طوال عمره. ا keyfair الإطار الزمني يتم إنشاؤها بواسطة خادم مركزي في فترات روتينية (شهريا ، يوميا ، كل ساعة - يعتمد على كيفية بجنون العظمة التي تريد أن تكون). يتم الإعلان عن المفتاح العام علانية (الملقم نفسه يحتوي على مفتاح مفتاح خاص به للتوقيع عليه) ، ويتم توزيع المفتاح الخاص مشفرًا مع المفتاح العام لكل جهاز مخصص للوصول إلى هذا المفتاح. (يجب أن يكون هذا التوزيع خاصًا قدر الإمكان ، على سبيل المثال ، توصيل الأجهزة بالخادم مباشرةً.)

لتوقيع الرسائل ، يمكنك استخدام مفتاح الجهاز لأي جهاز تقوم بإرسال الرسالة منه. إذا أراد شخص ما إرسال رسالة إليك ، فيمكنه توقيعها باستخدام مفتاح الإطار الزمني العام الحالي. (يجب أن يكون لديهم نظام آلي لمواكبة الإعلانات.) يمكنك بعد ذلك قراءة رسالتهم من أي جهاز.

لقراءة الرسائل المشفرة القديمة ، يتم الاحتفاظ بسجلات المفاتيح الزمنية الأقدم احتياطيًا على كل جهاز وفقًا لاستراتيجية مناسبة (بما في ذلك خادم توليد الإطار الزمني keypair-generating ، إذا كنت ترغب في ذلك - مرة أخرى ، اعتمادًا على مستوى جنونك من البارانويا) ، حيث لديك مجموعة أخرى من مفاتيح المفاتيح المحمية بكلمة مرور لحماية المفاتيح القديمة (مع وجود العديد من كلمات المرور مع مرور الوقت كما تشعر بالراحة في التذكر).

إذا تم سرقة جهاز أو اختراقه بطريقة أخرى ، فيمكنك استخدام جهاز آخر موثوق به لإنشاء رسائل موقّعة بشكل عام تثبت هويتك (بأي وسيلة ، على سبيل المثال ، مع ملاحظة أنك ستكون في اجتماع عام و / أو أن يقوم أحد أصدقائك الموثوقين بالتحقق منك بشكل شخصي) وإبطال مفتاح الجهاز المخترق وأي مفاتيح زمنية لديه إمكانية الوصول إليه. عند إلغاء المفتاح ، يمكنك أيضًا إزالة الجهاز المسروق من قائمة الأجهزة الموثوق بها الموجودة على الخادم (مع كلمة مرور ومفتاح الجهاز الموثوق به).

يجب أن تتبع سياسة الوثوق بمفاتيح الأجهزة التي تم الإعلان عنها حديثًا شيئًا مثل سياسات الثقة الحالية - أعتقد أن السياسة المناسبة هي الوثوق بخادم التوليد ، وجهاز الجوّال ، وجهاز كبير وثقيل ، حيث يصعب سرقته / اختراقه هاتف المستخدم ، وجهاز كمبيوتر سطح المكتب ، و VPS في سرقة منسقة قبل أن يلاحظ المستخدم.

إذا تم اختراق الخادم الخاص بك ، فأنت تقوم فقط بإبطاله بنفس الإجراء الموضح لأي جهاز مخترق آخر (ربما مع سياسة أقوى مشابهة للسياسة الخاصة بإضافة جهاز جديد) ، واستخدام خادم جديد مؤمن عليه أو جديد تمامًا (مع الجهاز keypair الجهاز الجديد) المضي قدما.


8
2017-08-02 00:33



قسم الإلغاء غائم قليلاً كما هو مكتوب - يجب أن يكون إلغاء الجهاز ممكناً مع إعلان من أي جهاز آخر (حتى لا يفشل إذا قام شخص ما بسرقة الكمبيوتر المحمول الخاص بك ولا يستطيع هاتفك الاتصال بالخادم مباشرة) ، ولكن ليس من الممكن يتم إنجازه بواسطة اللص (لذلك يجب أن يكون لدى الأجهزة مفتاح محمي بكلمة مرور للإلغاء). في حالة وجود تقارير متضاربة ، يجب عدم الثقة في جميع المفاتيح مؤقتًا حتى يمكن إجراء التحقق اليدوي من قبل طرف ثالث. - Stuart P. Bentley
في الواقع ، قد يكون من المستحسن وجود آلية أخرى لإلغاء المفاتيح ، باستخدام كلمة مرور عامة قوية يتم تحديثها يدويًا (يتم استبدالها) بشكل منتظم ، وبهذا يمكنك إبطال المفتاح دون الاعتماد على أي الجهاز (لنفترض أنك تستخدم هاتفك فقط وأن شخصًا ما يسرقه) ، طالما أنك تحتفظ بكلمة المرور سراً. - Stuart P. Bentley