سؤال

يستخدم عميلان أليس وبوب خادمًا لتسجيل الدخول وتبادل الرسائل من خلال الخادم. في تسجيل الدخول ، يرسل كلاهما مفاتيحهم العامة لتخزينها على الخادم. عندما ترغب أليس في التحدث إلى بوب ، فإنها تقوم بتشغيل مفتاح متماثل مع مفتاح بوب العمومي وترسله إلى بوب من خلال الخادم.

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

شكرًا

هل كانت مفيدة؟

المحلول

نظرًا لأن Alice و Bob لا يمكنهم الوثوقان في الخادم ، يجب أن يجدوا طريقة أخرى لتأكيد مفاتيح بعضهما البعض. أحد الاحتمالات هو الاعتماد على حفلة أخرى. إذا كان Bob يثق في Candice (ويعرف مفتاح Candice's Public) ، الذي يعرف أليس ، يمكن لـ Candice التوقيع على مفتاح Alice العام ، ثم أرسل النسخة الموقعة إلى Bob. هذا يسمي شبكة الثقة.

نصائح أخرى

من خلال تسجيل شهادة بوب من قبل طرف ثالث موثوق (Verisign ، شركتك ، شبكة من الثقة ، وما إلى ذلك) ، أو عن طريق إرسال شهادته إلى Alice من خلال مسار آمن منفصل من الفرقة (تسليمها مفتاح USB شخصيًا على سبيل المثال).

كلاهما يصل إلى قلب ما من المفترض أن تعنيه شهادة بوب. أنت تثق فقط في أن شهادة بوب هي شهادة بوب لأن شخصًا ما تثق به قد صدقها. أن "شخص ما" يمكن أن يكون بوب نفسه أو طرف ثالث موثوق به يوقع شهادة بوب. يمكنك فقط الوثوق بهذا بقدر ما تثق في المصدق.

في التشفير ، أنت ما تعرفه. إذا كنت ترغب في تجنب MITM ، فيجب أن يكون لدى أليس فكرة عن "بوب" ، مما يعني أن بوب يجب أن يعرف بعض عناصر البيانات التي لا يعرفها المهاجم. هنا ، المهاجم الخاص بك هو الخادم ، الذي يقع بشكل مثالي لتركيب الهجوم.

لذا فإن السؤال هو: من هو بوب؟ كيف هو الخادم "not-bob"؟

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

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

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

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

الشهادة هي تفويض الثقة. أليس المندوبون ثقتها في كاليفورنيا ؛ من المفترض أن CA (دعنا نسميها تشارلي) ذهب إلى البار لمقابلة بوب ؛ من خلال الشهادة ، أخبر تشارلي أليس: "نعم ، هذا هو مفتاح بوب حقًا ، لقد أظهر لي بعد نصف لتره الثالث". تصبح الأمور غامضة بعض الشيء هنا ، لأن تفويض الثقة ليس بالأمر السهل (خاصة إذا كان تشارلي في العادة من الشرب الخمر). يمكن أن يذهب التفويض إلى أبعد من ذلك ، عندما يوقع المرجع المصدق شهادة لحرالة كاليفورنيا أخرى. هنا ، أخبر تشارلي أليس: "لم أقابل بوب ، لكنني قابلت دافني ، الذي ربما قابل بوب وتصرف كـ CA". أليس ، باستخدام كل من الشهادة الصادرة عن تشارلي إلى دافني ، والشهادة الصادرة عن دافني لبوب ، قد تتحقق من ذلك سلسلة من التوقيعات.

النقطة الصعبة هنا هي أنه على الرغم من أن أليس تعرف تشارلي وتثق به في قدرته على التعرف على بوب بشكل صحيح عندما يلتقي به ، حتى تحت تأثير جالون غينيس ، فإن أليس لا تعرف دافني. في سلسلة Alice-Charlie-Daphne-Bob ، يجب ألا تثق Alice فقط في أن تشارلي كان موثوقًا به (هو فعل حدد دافني بشكل صحيح) ولكن أيضًا أن تشارلي لم يكن ساذجًا ، أي أن تشارلي كان من الممكن أن يرفض التوقيع على شهادة دافني إذا لم تكن دافني نفسها جديرة بالثقة. في المواقف العملية ، تتحلل الثقة بسرعة عند تفويضها.

عند استخدام الشهادات ، يوجد في الغالب هيكلين محتملين:

  • CA الهرمية: هناك واحد أو عدد قليل من "Root CA" المعروف من قبل الجميع عن طريق البناء. مندوب CA إلى CA آخر (أي أنه يوقع شهادة ، في الهوية ، العلم التقليدي الذي يقول: "قد يتم الوثوق بهذا المفتاح العام لغرض التحقق من التوقيعات على الشهادات") فقط ضمن اتفاق تعاقدي يحدد القانوني مسؤوليات كل من كاليفورنيا فيما يتعلق بإصدار الشهادات. هذا يعني أن التفويض محدد رسميًا ، ويحدث أنه ليس بالأمر السهل. يعد عقد الشهادات المتوافق مع المحامي ، والذي يسمى عادةً "بيان سياسة إصدار الشهادات" (CPS) ، وثيقة طويلة 200 صفحة.

  • Web of Trust: الجميع يعمل كـ CA. في حالة عدم وجود "جدارة بالثقة الرسمية" ، لا تعطي كل سلسلة فردية سوى كمية صغيرة جدًا من الثقة. من المفترض أن يتم تعويض هذا بأعداد ضخمة. ستقبل أليس مفتاح بوب فقط إذا تمكنت من التحقق العديد من (العديد) سلاسل مميزة تؤدي إلى بوب ، تمر من خلال مشاركين متميزين. على سبيل المثال ، ستتطلب أليس سلسلة Charlie-Daphne-Bob ولكن أيضًا سلاسل Elijah-Fiona-Bob و Gerald-Hillary-Ivan-Bob. انهم جميعا السكر ، لكنهم قد يكونون كذلك جماعي موثوقة ، حيث يتعين على بوب مزيف أن يدفع العديد من الجولات من أجل إفساد مشارك واحد من كل من السلاسل التي تستخدمها أليس (إذا كانت أليس تتطلب ن سلاسل ذات شهادات متميزة ، ثم يجب أن يفسد المهاجم على الأقل ن المشاركين).

وبالتالي فإن أعمال التصديق هي في الغالب مسألة إجراء: من هو CA ، وما الذي تتحقق منه CA قبل إصدار (توقيع) شهادة ، وكيف يقف كل شيء من وجهة نظر قانونية ، وما إلى ذلك. هذه الإجراءات معقدة بطبيعتها ويجب دعمها بالتفاصيل بتنسيق الشهادة (مثل العلم "هذا المفتاح العام هو مفتاح CA"). التنسيقان القياسيان الرئيسيان المحددان حاليًا هما X.509 و PGP. يتمتع X.509 بدعم كبير لـ CA الهرمية ، وهو فوضى متشابكة للغاية من المعايير والتنسيقات والممارسات واللجان. PGP (الموحد تحت اسم "OpenPGP") ليس لديه دعم حقيقي لـ CA الهرمية ؛ من المفترض أن تستخدم مع شبكة الثقة. OpenPGP أبسط من X.509 ولكنه أكثر محدودية ، خاصة إذا كنت ترغب في الحصول على معنى قانوني قوي وراء الشهادات.

بالنسبة لخادم IM ، من المحتمل أن يكون كل هذا مبالغة. ربما تكون فكرة الهوية التي تريدها أليس حقًا فكرة تكرار: "هذا بوب هو نفسه بوب من الشخص الذي تحدثت معه بالأمس". أليس لا تعرف بوب مسبقًا ، لكن التحدث معه ينشئ هويته في عين أليس. هي فقط تريد أن لا تنخدع من قبل بوب آخر. لذلك ، فإن عملية بسيطة مثل "برنامج أليس يحفظ المفتاح العام المعلن عن أي ثرثرة جديدة ، وتستخدمها بعد ذلك" ستقوم بالخدعة. تذكر أن القضية الرئيسية هي بشكل صحيح حدد ما هي فكرة الهوية التي أنت بعدها.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top