كيف حل DNSCrypt مشكلة الشهادة منتهية الصلاحية عن طريق إدخال فترة صلاحية لمدة 24 ساعة



في الماضي ، كانت الشهادات تنتهي صلاحيتها غالبًا لأنه كان يتعين تحديثها يدويًا. الناس فقط نسيت أن تفعل ذلك. مع ظهور Let's Encrypt وإجراء التحديث التلقائي ، يبدو أن المشكلة قد تم حلها. لكن قصة حديثة مع فايرفوكس تظهر أنه في الواقع لا يزال ذا صلة. لسوء الحظ ، تستمر الشهادات في انتهاء الصلاحية.

إذا فات شخص ما هذه القصة ، فقد توقفت جميع ملحقات Firefox تقريبًا عن العمل فجأة في منتصف ليل 4 مايو (أيار) 2019.

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

أصدرت Mozilla بسرعة تصحيح Firefox 66.0.4 ، الذي يحل المشكلة بشهادة غير صالحة ، ويتم إرجاع جميع الامتدادات إلى وضعها الطبيعي. يوصي المطورون بتثبيته وعدم استخدام أي حلول لتجاوز التحقق من التوقيع ، لأنهم قد يتعارضون مع التصحيح.

ومع ذلك ، توضح هذه القصة مرة أخرى أن انتهاء صلاحية الشهادات لا يزال يمثل مشكلة ملحة اليوم.

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

DNSCrypt


DNSCrypt - بروتوكول تشفير حركة مرور DNS. يحمي اتصالات DNS من عمليات الاعتراض و MiTM ، كما يسمح لك بتجاوز الحظر على مستوى استعلامات DNS.

يلتف البروتوكول بحركة مرور DNS بين العميل والخادم في تصميم تشفير ، يعمل على بروتوكولي النقل UDP و TCP. لاستخدامها ، يجب أن يدعم كل من العميل ومحلل DNS DNSCrypt. على سبيل المثال ، منذ مارس 2016 ، تم تمكينه على خوادم DNS الخاصة به وفي متصفح Yandex. تم الإعلان عن الدعم من قبل العديد من مقدمي الخدمات الآخرين ، بما في ذلك Google و Cloudflare. لسوء الحظ ، لا يوجد الكثير منها (يتم سرد 152 خوادم DNS عامة على الموقع الرسمي). ولكن يمكن تثبيت برنامج dnscrypt-proxy يدويًا على عملاء تحت Linux و Windows و MacOS. هناك تطبيقات الخادم .



كيف يعمل DNSCrypt؟ باختصار ، يأخذ العميل المفتاح العمومي للموفر المحدد وبمساعدته يتحقق من شهاداته. يوجد بالفعل مفاتيح عمومية قصيرة الأجل للجلسة ومعرف مجموعة التشفير. يُنصح العملاء بإنشاء مفتاح جديد لكل طلب ، ويتم تشجيع الخوادم على تغيير المفاتيح كل 24 ساعة . عند تبادل المفاتيح ، يتم استخدام خوارزمية X25519 و EdDSA للتوقيع و XSalsa20-Poly1305 أو XChaCha20-Poly1305 لتشفير الكتلة.

فرانك دينيس ، أحد مطوري البروتوكول ، يكتب أن الاستبدال التلقائي كل 24 ساعة يحل مشكلة الشهادات منتهية الصلاحية. من حيث المبدأ ، يقبل عميل المرجع dnscrypt-proxy الشهادات مع أي فترة صلاحية ، لكنه يعرض تحذيرًا "فترة مفتاح dnscrypt-proxy لهذا الخادم طويلة جدًا" إذا كانت صالحة لأكثر من 24 ساعة. في الوقت نفسه ، تم إصدار صورة Docker ، حيث تم تطبيق تغيير سريع للمفاتيح (والشهادات).

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

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

عندما تتغير الأتمتة المفاتيح كل بضع سنوات ، لا يمكنك الاعتماد عليها ، ويمكن للناس نسيان انتهاء صلاحية الشهادة. مع تغيير المفتاح اليومي ، سيتم الكشف عن هذا على الفور.

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

ومع ذلك ، ما زال بعض مقدمي الخدمات يقررون ، لبعض الأسباب التقنية ، تعيين فترة صلاحية الشهادة لأكثر من 24 ساعة. تم حل هذه المشكلة بشكل أساسي ببضعة سطور من التعليمات البرمجية في dnscrypt-proxy: يتلقى المستخدمون تحذيرًا إعلاميًا قبل 30 يومًا من انتهاء صلاحية الشهادة ، ورسالة أخرى بمستوى شدة أعلى قبل 7 أيام من انتهاء صلاحية الشهادة ، ورسالة هامة في حالة بقاء الشهادة أقل من 24 ساعة. هذا ينطبق فقط على الشهادات التي لها في البداية فترة صلاحية طويلة.

تمكن هذه الرسائل المستخدمين من إبلاغ مشغلي DNS بانتهاء صلاحية الشهادة القادم قبل فوات الأوان.

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





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


All Articles