تطبق Mozilla CRLite للتحقق من شهادات TLS التي بها مشكلات

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

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

لحظر الشهادات التي تم اختراقها وإلغائها من قبل سلطات التصديق، استخدم Firefox قائمة سوداء مركزية منذ عام 2015 OneCRL بالاشتراك مع دعوة للخدمة التصفح الآمن من غوغل لتحديد الأنشطة الضارة المحتملة. OneCRL، مثل مجموعات CRL في Chrome، يعمل كرابط وسيط يجمع قوائم CRL من سلطات التصديق ويوفر خدمة OCSP مركزية واحدة للتحقق من الشهادات الملغاة، مما يجعل من الممكن عدم إرسال الطلبات مباشرة إلى سلطات التصديق. على الرغم من العمل الكبير لتحسين موثوقية خدمة التحقق من الشهادات عبر الإنترنت، تظهر بيانات القياس عن بعد أن أكثر من 7٪ من طلبات OCSP تنتهي مهلة (قبل بضع سنوات كان هذا الرقم 15٪).

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

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

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

للتخلص من النتائج الإيجابية الخاطئة، قدم CRLite مستويات تصفية تصحيحية إضافية. بعد إنشاء الهيكل، يتم البحث في جميع سجلات المصدر ويتم تحديد أي نتائج إيجابية كاذبة. واستنادًا إلى نتائج هذا الفحص، يتم إنشاء بنية إضافية تتوالى على البنية الأولى وتقوم بتصحيح النتائج الإيجابية الخاطئة الناتجة. يتم تكرار العملية حتى يتم التخلص تمامًا من النتائج الإيجابية الخاطئة أثناء فحص التحكم. عادةً ما يكون إنشاء 7-10 طبقات كافيًا لتغطية جميع البيانات بالكامل. نظرًا لأن حالة قاعدة البيانات، بسبب المزامنة الدورية، متخلفة قليلاً عن الحالة الحالية لـ CRL، يتم التحقق من الشهادات الجديدة الصادرة بعد التحديث الأخير لقاعدة بيانات CRLite باستخدام بروتوكول OCSP، بما في ذلك استخدام تدبيس OCSP (يتم إرسال استجابة OCSP المعتمدة من قبل سلطة التصديق بواسطة الخادم الذي يخدم الموقع عند التفاوض على اتصال TLS).

تطبق Mozilla CRLite للتحقق من شهادات TLS التي بها مشكلات

باستخدام مرشحات Bloom، تم تجميع شريحة المعلومات لشهر ديسمبر من WebPKI، والتي تغطي 100 مليون شهادة نشطة و750 ألف شهادة ملغاة، في هيكل يبلغ حجمه 1.3 ميجابايت. عملية إنشاء البنية كثيفة الاستخدام للموارد، ولكن يتم إجراؤها على خادم Mozilla ويتم منح المستخدم تحديثًا جاهزًا. على سبيل المثال، في النموذج الثنائي، تتطلب البيانات المصدر المستخدمة أثناء الإنشاء حوالي 16 جيجابايت من الذاكرة عند تخزينها في Redis DBMS، وفي النموذج السداسي العشري، يستغرق تفريغ جميع الأرقام التسلسلية للشهادات حوالي 6.7 جيجابايت. تستغرق عملية تجميع كافة الشهادات الملغاة والنشطة حوالي 40 دقيقة، وتستغرق عملية إنشاء بنية مجمعة استنادًا إلى مرشح Bloom 20 دقيقة أخرى.

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

يعمل CRLite حاليًا في Firefox في الوضع السلبي ويستخدم بالتوازي مع OCSP لتجميع الإحصائيات حول العملية الصحيحة. يمكن تحويل CRLite إلى وضع الفحص الرئيسي؛ للقيام بذلك، تحتاج إلى تعيين المعلمةsecurity.pki.crlite_mode = 2 في about:config.

تطبق Mozilla CRLite للتحقق من شهادات TLS التي بها مشكلات

المصدر: opennet.ru

إضافة تعليق