نقاط الضعف في HTTPS. الجزء 2

أي نظام له نقاط قوته وضعفه. أثار الجزء الأول من نقاط ضعف HTTPS رد فعل غامض مفاده أن "هذه ليست نقاط ضعف ، بل كان من المفترض أن تكون كذلك". قال الجزء الأول:

  1. حول استحالة توفير السرية والخصوصية التامة للمستخدمين (لا يزال بإمكانك تتبع وحظر الموارد التي يزورها الشخص)
  2. حقيقة أن الشهادات تنتقل عبر قناة مفتوحة وغالبًا ما تحتوي على معلومات أكثر من المورد الحالي (على سبيل المثال ، تحتوي شهادة bing.com على معلومات حول 72 موارد إضافية ، بما في ذلك العذراء والاختبار وبيئة بيتا)

سأستمر في تسميته "نقاط الضعف" في التصميم. في هذه المقالة ، سنتحدث عن ضعف آخر - المركزية .

يعتمد HTTPS على بروتوكولات SSL و TLS (من أجل البساطة ، سنتصل ببساطة بـ SSL - على الرغم من أن SSL و TLS يعملان على مستويات مختلفة من مكدس OSI). لذلك ، بالحديث عن نقاط الضعف ، سنضع في اعتبارنا مركزية بروتوكول SSL.

النظرية


ابدأ بنظرية بروتوكولات التشفير. إن مشكلة التشفير الحديث ليست التشفير نفسه ، ولكن ماذا تفعل بالمفاتيح: كيفية تخزينها ونقلها وإنشائها وتدميرها بأمان.

أساس SSL هو التشفير غير المتماثل ، والذي يتم تحديده من خلال وجود مفتاحين - إذا كان أحدهما مشفرًا ، فيمكن فقط فك تشفير المفتاح الثاني ، والعكس صحيح.

الوظيفة الرئيسية للتشفير غير المتماثل هي المصادقة ، وليس التشفير على الإطلاق - إنها عملية كثيفة الاستخدام للموارد ومكلفة للغاية لهذه الخوارزمية. التشفير السريع والفعال هو من اختصاص الخوارزميات المتماثلة التي تستخدم نفس المفتاح لكل من التشفير وفك التشفير.

يبقى أحد المفاتيح دائمًا على جانب واحد لتأكيد تعريفه ، ويطلق عليه خاص . المفتاح العام متاح للجميع.

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

يريد بوريس وآنيا خصوصية مراسلاتهما ، لذا فإن الشيء الرئيسي بالنسبة لهما هو تبادل آمن للمعلومات.

في أبسط الحالات ، يرسل بوريس آنا رسالة: "لنتحدث". تقوم Anya بتوليد زوجين من مفاتيح التشفير غير المتماثلة - Pr1 الخاص و P1 العام. تقول Anya ، "تعال ، أنا Anya ، هذا هو مفتاحي العام ، وهنا خوارزمية التشفير المتناظرة التي أعرفها." ينشئ بوريس مفتاحًا متماثلًا S1 ، يشفره بالمفتاح العام Ani P1 (S1). الآن حتى بوريس نفسه لن تكون قادرة على فك تشفير S1 ، لأن Anya فقط يمكنها فك تشفير الرسالة بمفتاحها الخاص. في النهاية ، يمتلك بوريس وآني مفتاح جلسة متماثل من أجل "ضمان" النقل الموثوق للرسائل لبعضهما البعض ومنع الآباء من قراءة مراسلاتهم.

الصورة

على وجه التحديد ، لم أقم بتقليل هذه الرسائل بشدة ، في الواقع وصفنا تبادل اتصال SSL بمصادقة أحادية الاتجاه [1]. على أساس ثنائي الاتجاه ، يولد بوريس زوج المفاتيح الخاص به وينقل المفتاح العام إلى Anya.

استنتاج مهم يمكننا فعله بالفعل. من بين الوظائف الرئيسية الثلاث لبروتوكول SSL (المصادقة والتشفير والنزاهة) ، أهمها المصادقة.

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

الصورة

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

الصورة

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

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

الصورة

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

الصورة

مجال المشكلة


يصبح النظام أكثر تعقيدًا ومركزية ، ومن تلك اللحظة أمام ساعي البريد مرة أخرى فرصة.

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

الصورة

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

PPS المشكلة الثانية التي أثيرت في هذه الحالة تتعلق بالعاني ودلالة على مركز غير مفهوم في شهادتها. دفعت أنيا المال ، وتود أن يعترف بوريس بها على أي حال. يتم حل هذه المشكلة باستخدام SSL Pinning [3] ، عندما لا يمكن الوثوق في التطبيق إلا في شهادة معينة وسلطات مصادقة معينة. هذا مفيد بشكل خاص للتطبيقات عالية المخاطر. مع المستعرضات ، يكون هذا أكثر تعقيدًا ، لتطبيقات الجوال التي تعمل مع خدمة أو خدمتين ، أسهل. من أجل التجربة ، وضعت شهادة مزيفة على جهاز Android الخاص بي ، وأوضحت أن حركة المرور يجب أن تمر من خلال ZapProxy ، والتي تبرز على الشبكة على جهازي ، ونظرت في عدد التطبيقات التي تستخدم هذه الآلية. تقريبًا لا أحد ، تمكنت من المشاهدة واللعب مع استبدال حركة المرور بجميع التطبيقات الشائعة تقريبًا.

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

الصورة

هذه مشكلة معروفة ، وتحاول البشرية محاربتها أيضًا. إذا وجدت مثل هذه الشهادات المزيفة والمراكز المتوسطة والجذر المخترقة ، فيجب وضع علامة على هذه الشهادات على أنها ملغاة ومخترقة (الشهادات المبطلة). هذا يعني أنه بالإضافة إلى تخزين شهادات الجذر ، لا يزال بوريس بحاجة إلى مزامنتها مع قائمة الشهادات المبطلة عبر الإنترنت - يتم تنفيذ هذه الآلية من خلال بروتوكولات CRL (قائمة إبطال الشهادات) وبروتوكول حالة الشهادة عبر الإنترنت (OCSP) [4] ، والتي تعمل بالمناسبة وفقًا قناة غير محمية. عندما بدأنا العمل بنشاط على التحكم في حركة مرور OUTPUT باستخدام Dhound [5] ، لاحظنا الطلبات الدورية على المنفذ 80. إذا قمت بحظر مثل هذه الطلبات على مستوى جدار الحماية ، فستتوقف بعض الوظائف عن العمل - على سبيل المثال ، إرسال البريد. المشكلة في الشهادات الملغاة هي أن هناك بالفعل عددًا كبيرًا منها: في عام 2013 ، كان هناك حوالي 3 ملايين شهادة ملغاة [6] ، و 23000 شهادة ملغاة من Symantec في 2018 وحدها [7]. أوقف Chrome الوظيفة الافتراضية للتحقق الكامل من الشهادات المبطلة قبل بضع سنوات [8] لزيادة سرعة تحميل الصفحة. اتضح أنه إذا تم اكتشاف شركة البريد لدينا ، فإن عملية منع أفعاله ستكون طويلة ولن تكون ناجحة دائمًا.

الاستنتاجات


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

أي مخرج؟ الانتقال من نظام SSL مغلق ومركزي إلى نظام أكثر شفافية وتوزيعًا ، والذي لن يكون بطبيعته قادرًا على إعطاء مزايا لأي من الأطراف. ربما يكون هذا حلاً مشابهًا إلى حد ما للحل الذي يطبق بلوكشين مفتوح.

ملاحظة. يحتوي بروتوكول SSL على فروق دقيقة أكثر تعقيدًا لم يتم ذكرها في المقالة. لكن مستوى المعلومات كان كافيا للكشف عن أحد نقاط ضعفه. هل هناك نقاط ضعف أخرى؟ في المقالات التالية سننظر.


بقلم دينيس كولوشكو ، CISSP

Source: https://habr.com/ru/post/ar413163/


All Articles