في الماضي، كانت الشهادات تنتهي صلاحيتها في كثير من الأحيان بسبب ضرورة تجديدها يدويًا. لقد نسي الناس ببساطة أن يفعلوا ذلك. مع ظهور Let's Encrypt وإجراءات التحديث التلقائي، يبدو أنه يجب حل المشكلة. ولكن مؤخرا
في حالة فاتتك القصة، في منتصف ليل 4 مايو 2019، توقفت جميع ملحقات Firefox تقريبًا عن العمل فجأة.
كما اتضح فيما بعد، حدث الفشل الهائل بسبب حقيقة أن موزيلا
أصدرت Mozilla بسرعة تصحيح Firefox 66.0.4، الذي يحل مشكلة الشهادة غير الصالحة، وتعود جميع الامتدادات إلى وضعها الطبيعي. يوصي المطورون بتثبيته و
ومع ذلك، تظهر هذه القصة مرة أخرى أن انتهاء صلاحية الشهادة لا يزال يمثل مشكلة ملحة اليوم.
في هذا الصدد، من المثير للاهتمام أن ننظر إلى الطريقة الأصلية التي تعامل بها مطورو البروتوكول مع هذه المهمة
DNSCrypt
DNSCrypt هو بروتوكول تشفير حركة مرور DNS. إنه يحمي اتصالات DNS من الاعتراضات و MiTM، كما يسمح لك بتجاوز الحظر على مستوى استعلام DNS.
يقوم البروتوكول بتغليف حركة مرور DNS بين العميل والخادم في بنية تشفير، ويعمل عبر بروتوكولات النقل UDP وTCP. لاستخدامه، يجب أن يدعم كل من العميل ومحلل DNS DNSCrypt. على سبيل المثال، منذ مارس 2016، تم تمكينه على خوادم DNS الخاصة به وفي متصفح Yandex. كما أعلن العديد من مقدمي الخدمة الآخرين عن دعمهم، بما في ذلك Google وCloudflare. لسوء الحظ، لا يوجد الكثير منها (152 خادم DNS عام مدرج على الموقع الرسمي). لكن البرنامج
كيف يعمل DNSCrypt؟ باختصار، يأخذ العميل المفتاح العام للموفر المحدد ويستخدمه للتحقق من شهاداته. المفاتيح العامة قصيرة المدى للجلسة ومعرف مجموعة التشفير موجودان بالفعل. يتم تشجيع العملاء على إنشاء مفتاح جديد لكل طلب، ويتم تشجيع الخوادم على تغيير المفاتيح كل 24 ساعات. عند تبادل المفاتيح، يتم استخدام خوارزمية X25519 للتوقيع - EdDSA، لتشفير الكتلة - XSalsa20-Poly1305 أو XChaCha20-Poly1305.
أحد مطوري البروتوكول فرانك دينيس
أولا، إنه مفيد للغاية للأمان: إذا تم اختراق الخادم أو تسرب المفتاح، فلا يمكن فك تشفير حركة مرور الأمس. لقد تغير المفتاح بالفعل. من المحتمل أن يشكل هذا مشكلة في تنفيذ قانون ياروفايا، الذي يجبر مقدمي الخدمة على تخزين كل حركة المرور، بما في ذلك حركة المرور المشفرة. والمغزى من ذلك هو أنه يمكن فك تشفيره لاحقًا إذا لزم الأمر عن طريق طلب المفتاح من الموقع. ولكن في هذه الحالة، لا يستطيع الموقع ببساطة توفيره، لأنه يستخدم مفاتيح قصيرة المدى، وحذف المفاتيح القديمة.
ولكن الأهم من ذلك، كما كتب دينيس، أن المفاتيح قصيرة المدى تجبر الخوادم على إعداد التشغيل الآلي من اليوم الأول. إذا كان الخادم يتصل بالشبكة ولم يتم تكوين البرامج النصية لتغيير المفاتيح أو لا تعمل، فسيتم اكتشاف ذلك على الفور.
عندما تقوم الأتمتة بتغيير المفاتيح كل بضع سنوات، لا يمكن الاعتماد عليها، ويمكن أن ينسى الأشخاص انتهاء صلاحية الشهادة. إذا قمت بتغيير المفاتيح يوميًا، فسيتم اكتشاف ذلك على الفور.
في الوقت نفسه، إذا تم تكوين الأتمتة بشكل طبيعي، فلا يهم عدد المرات التي يتم فيها تغيير المفاتيح: كل عام، كل ربع سنة أو ثلاث مرات في اليوم. إذا كان كل شيء يعمل لأكثر من 24 ساعة، فإنه سيعمل إلى الأبد، كما كتب فرانك دينيس. ووفقا له، فإن التوصية بالتناوب اليومي للمفاتيح في الإصدار الثاني من البروتوكول، إلى جانب صورة Docker الجاهزة التي تنفذها، أدت بشكل فعال إلى تقليل عدد الخوادم ذات الشهادات منتهية الصلاحية، مع تحسين الأمان في نفس الوقت.
ومع ذلك، لا يزال بعض مقدمي الخدمة يقررون، لبعض الأسباب الفنية، ضبط فترة صلاحية الشهادة على أكثر من 24 ساعة. تم حل هذه المشكلة إلى حد كبير باستخدام بضعة أسطر من التعليمات البرمجية في dnscrypt-proxy: يتلقى المستخدمون تحذيرًا إعلاميًا قبل 30 يومًا من انتهاء صلاحية الشهادة، ورسالة أخرى بمستوى خطورة أعلى قبل 7 أيام من انتهاء الصلاحية، ورسالة مهمة إذا كان هناك أي شيء متبقي في الشهادة الصلاحية أقل من 24 ساعة. ينطبق هذا فقط على الشهادات التي لها فترة صلاحية طويلة في البداية.
تتيح هذه الرسائل للمستخدمين الفرصة لإخطار مشغلي DNS بانتهاء صلاحية الشهادة الوشيكة قبل فوات الأوان.
ربما إذا تلقى جميع مستخدمي Firefox مثل هذه الرسالة، فمن المحتمل أن يقوم شخص ما بإبلاغ المطورين ولن يسمحوا بانتهاء صلاحية الشهادة. كتب فرانك دينيس: "لا أتذكر خادم DNSCrypt واحدًا في قائمة خوادم DNS العامة التي انتهت صلاحية شهادته خلال العامين أو الثلاثة أعوام الماضية". على أية حال، ربما يكون من الأفضل تحذير المستخدمين أولاً بدلاً من تعطيل الإضافات دون سابق إنذار.
المصدر: www.habr.com