المشكلة موجودة مباشرة في مواصفات TLS وتؤثر فقط على الاتصالات التي تستخدم الأصفار المستندة إلى بروتوكول تبادل مفاتيح DH (Diffie-Hellman, TLS_DH_*"). مع شفرات ECDH، لا تحدث المشكلة وتظل آمنة. فقط بروتوكولات TLS حتى الإصدار 1.2 هي المعرضة للخطر، بينما لا يتأثر TLS 1.3 بالمشكلة. تحدث الثغرة الأمنية في تطبيقات TLS التي تعيد استخدام مفتاح DH السري عبر اتصالات TLS مختلفة (يحدث هذا السلوك على حوالي 4.4% من خوادم Alexa Top 1M).
في OpenSSL 1.0.2e والإصدارات السابقة، تتم إعادة استخدام مفتاح DH الأساسي في كافة اتصالات الخادم ما لم يتم تعيين خيار SSL_OP_SINGLE_DH_USE بشكل صريح. منذ OpenSSL 1.0.2f، يتم إعادة استخدام المفتاح الأساسي DH فقط عند استخدام شفرات DH الثابتة ("DH-*"، على سبيل المثال "DH-RSA-AES256-SHA"). لا تظهر الثغرة الأمنية في OpenSSL 1.1.1، نظرًا لأن هذا الفرع لا يستخدم مفتاح DH الأساسي ولا يستخدم تشفير DH الثابت.
عند استخدام طريقة تبادل مفتاح DH، يقوم كلا جانبي الاتصال بإنشاء مفاتيح خاصة عشوائية (يشار إليها فيما بعد بالمفتاح "a" والمفتاح "b")، بناءً على حساب المفاتيح العامة (ga mod p وgb mod p) وإرسالها. بعد أن يتلقى كل طرف المفاتيح العامة، يتم حساب مفتاح أساسي مشترك (gab mod p)، والذي يستخدم لإنشاء مفاتيح الجلسة. يتيح لك هجوم Raccoon تحديد المفتاح الأساسي من خلال تحليل القناة الجانبية، استنادًا إلى حقيقة أن مواصفات TLS حتى الإصدار 1.2 تتطلب التخلص من جميع البايتات الفارغة للمفتاح الأساسي قبل إجراء العمليات الحسابية التي تتضمنه.
بما في ذلك المفتاح الأساسي المقطوع، يتم تمريره إلى وظيفة إنشاء مفتاح الجلسة، والتي تعتمد على وظائف التجزئة مع تأخيرات مختلفة عند معالجة بيانات مختلفة. يتيح القياس الدقيق لتوقيت العمليات الرئيسية التي يقوم بها الخادم للمهاجم تحديد القرائن (Oracle) التي تتيح الحكم على ما إذا كان المفتاح الأساسي يبدأ من الصفر أم لا. على سبيل المثال، يمكن للمهاجم اعتراض المفتاح العام (ga) الذي أرسله العميل، وإعادة إرساله إلى الخادم وتحديد
ما إذا كان المفتاح الأساسي الناتج يبدأ من الصفر.
إن تحديد بايت واحد من المفتاح في حد ذاته لا يعطي أي شيء، ولكن من خلال اعتراض قيمة “ga” التي يرسلها العميل أثناء التفاوض على الاتصال، يستطيع المهاجم توليد مجموعة من القيم الأخرى المرتبطة بـ “ga” وإرسالها إلى الخادم في جلسات تفاوض اتصال منفصلة. ومن خلال توليد وإرسال قيم “gri*ga”، يستطيع المهاجم، من خلال تحليل التغيرات في التأخير في استجابة الخادم، تحديد القيم التي تؤدي إلى استلام المفاتيح الأساسية بدءًا من الصفر. وبعد تحديد هذه القيم، يمكن للمهاجم إنشاء مجموعة من المعادلات لـ
نقاط الضعف OpenSSL
تتم الإشارة إلى مشاكل إضافية بشكل منفصل (
المصدر: opennet.ru