كيف يولد المتصفح مفتاح متماثل أثناء مصافحة SSL

StackOverflow https://stackoverflow.com/questions/3936071

  •  30-09-2019
  •  | 
  •  

سؤال

لديّ ارتباك صغير حول مصافحة SSL بين المتصفح والخادم في سيناريو ويب HTTPS نموذجي:

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

أسئلة

1) كيف يختار المتصفح وإنشاء هذا المفتاح المتماثل "العشوائي"؟

2) هل يتحكم المطورون (أو مستخدمو المتصفح) في آلية توليد مفاتيح متماثلة؟

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

المحلول

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

  1. يقوم العميل بإنشاء القيمة العشوائية 48 بايت "سر ما قبل ماستر".
  2. يسند العميل هذه بايت مع بيانات عشوائية لجعل الإدخال يساوي 128 بايت.
  3. يقوم العميل بتشفيرها بمفتاح الخادم العام ويرسله إلى الخادم.
  4. ثم يتم إنتاج المفتاح الرئيسي من قبل الطرفين بالطريقة التالية:

    master_secret = PRF(
       pre_master_secret, 
       "master secret", 
       ClientHello.random + ServerHello.random
    )
    

PRF هي "وظيفة العشوائية الزائفة" التي يتم تعريفها أيضًا في المواصفات وذكية جدًا. فهو يجمع بين السر ، وعلامة ASCII ، وبيانات البذور التي نعطيها باستخدام إصدارات رمز مصادقة الرسائل المفتاح (HMAC) من وظائف التجزئة MD5 و SHA-1. يتم إرسال نصف المدخلات إلى كل وظيفة تجزئة. إنه ذكي لأنه مقاوم تمامًا للهجوم ، حتى في مواجهة نقاط الضعف في MD5 و SHA-1. يمكن لهذه العملية ملاحظات على نفسها وتتكرر إلى الأبد لتوليد أكبر عدد من البايتات كما نحتاج.

بعد هذا الإجراء ، نحصل على 48 بايت "Master Secret".

نصائح أخرى

نقلاً من هذا الفيديو الرائع على الفيديو ، دقيقة 1:18:07

حسنًا ، من أين تحصل على عشوائي على جهاز الكمبيوتر الخاص بك لأن جهاز الكمبيوتر الخاص بك هو جهاز حتمي؟

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

ملاحظة: يتم إنشاء المفاتيح لكل جلسة.

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