الخلاصة

  • يفرض RFC 10015 في TLS 1.2 وDTLS 1.2 ألا يعرض العميل وألا يختار الخادم عدة أساليب Diffie–Hellman ذات الحقل المحدود، وكذلك تبادل RSA الساكن. أما ECDH الساكن وبعض أنواع شهادات عميل DH الثابتة فتبقى عند مستوى SHOULD NOT، وهو فرق لا يجوز طمسه.
  • تثبت علامة D لدى IANA موقف المعيار، لا حالة التشغيل. ولكي يقال إن الأسلوب عُطّل فعلاً، يجب ربط الحكم المعياري بالإعداد المحمّل، وكل نقاط الإنهاء، واختبارات العرض والاختيار، وبيانات التفاوض، وانتهاء الاستثناءات، وترحيل العملاء القدامى.

كان ملف السياسة المركزي سليماً، وكانت لوحة الامتثال خضراء. ومع ذلك ظل جهاز قديم ينهي اتصالات DTLS بصورة برمجية سابقة. لم يكن سجل IANA مخطئاً، ولم يكن الجهاز يدّعي شيئاً؛ الخطأ كان في تسمية انتقال السجل دليلاً على انتقال النظام الحي.

RFC 10015 وثيقة على مسار معايير IETF، تحدّث متطلبات تبادل المفاتيح في TLS 1.2 وDTLS 1.2. لا تقدم الوثيقة قياساً للتبني، ولا قائمة بالمنتجات، ولا نتائج مسح لنقاط نهاية عامة. وظيفتها أن تحدد ما لا ينبغي أو لا يجوز للطرف المتوافق أن يفعله. أما إثبات أن خدمة بعينها تنفذ ذلك فهو عمل تشغيلي مستقل.

يسهل الخلط لأن البيانات المعيارية قابلة للقراءة الآلية. يلتقط النظام قيمة D، ويحوّلها إلى قاعدة، ثم يغلق خانة المراجعة. غير أن بين صف السجل والمصافحة الحقيقية طبقات متعددة: قدرة المكتبة، والإعداد الافتراضي للمنتج، والسياسة المحلية، والملف الناتج منها، وحالة العملية، ومكان إنهاء TLS، وما عرضه العميل بالفعل.

ليست كل الآليات القديمة في مرتبة واحدة

يميّز RFC 10015 بين العائلات وبين قوة الألفاظ المعيارية. في TLS 1.2 وDTLS 1.2 MUST NOT على العميل عرض حزم DH غير المؤقتة ذات الحقل المحدود، ولا يجوز للخادم اختيارها. وينطبق MUST NOT نفسه على حزم DHE المؤقتة في هذين الإصدارين. كما يدخل تبادل المفاتيح RSA الساكن في نطاق المنع.

أما ECDH الساكن فتبقى صيغته SHOULD NOT. وأنواع شهادات العميل ذات DH الثابت التي تتناولها الوثيقة هي أيضاً SHOULD NOT. يحتاج الخروج عن هذه التوصية إلى سبب استثنائي قابل للمراجعة، لكنه لا يساوي دلالياً مخالفة MUST NOT. إذا خزّن نظام الحوكمة كلمة «مهمل» وحدها، فقد حذف المعلومة اللازمة لتقييم الاستثناء.

إصدار البروتوكول جزء من الحقيقة. كان RFC 8996 قد أهمل TLS 1.0 وTLS 1.1. يعرّف RFC 5246 TLS 1.2، بينما أعاد RFC 8446 تصميم اتفاق المفاتيح في TLS 1.3. ويجيز RFC 10015 صراحةً FFDHE في TLS 1.3؛ فلا تتحول مشكلات TLS 1.2 إلى حظر لكل استعمال لـFFDHE في كل إصدار. ويبقى RFC 7919 سياقاً مهماً لفهم تفاوض مجموعات الحقل المحدود.

ولا تعني عبارة «RSA الساكن» حظر كل RSA. قد تستخدم الخدمة شهادة RSA وتوقيع RSA من دون نقل المفتاح بأسلوب RSA الساكن. لذلك فإن البحث عن كلمة RSA في جرد الشهادات يجيب عن سؤال مختلف، ولا يثبت مسار تبادل المفاتيح الذي تستطيع نقطة النهاية اختياره.

تفسر المخاطر التشفيرية هذه الدقة. يؤدي غياب السرية الأمامية إلى تعريض جلسات قديمة إذا انكشف مفتاح طويل الأجل لاحقاً. وتعيد مفاتيح DH ذات الحقل المحدود المستعملة مراراً مخاطر التوقيت واختيار المجموعات؛ أما إعادة استعمال ECDH فتفتح أبواب المنحنيات غير الصالحة والقنوات الجانبية والأعطال. ويحمل RSA الساكن إرث هجمات فئة Bleichenbacher ومخاطر استعمال المفتاح عبر بروتوكولات مختلفة. يضع RFC 9325 وRFC 9847 ذلك ضمن عمل أوسع لتحديث ممارسة TLS بحسب الأدلة المتراكمة، لا بحسب بقاء الشفرة القديمة متاحة.

ما الذي تثبته علامة D؟

يضع سجل معلمات TLS لدى IANA علامة D على الحزم المعنية وعلى أربعة معرّفات ClientCertificateType، مع الإحالة إلى RFC 10015. تعني العلامة discouraged، أي غير مستحسن. أما كون الحكم MUST NOT أو SHOULD NOT فيأتي من المواصفة المشار إليها.

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

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

القدرة والعرض والاختيار والمشاهدة

ينبغي أن يحتفظ السجل التشغيلي بأربع حالات. القدرة تعني أن الشفرة تستطيع تنفيذ التبادل. العرض هو ما أرسله عميل محدد في مصافحة محددة. الاختيار هو قرار الخادم. المشاهدة هي الجزء الذي استطاع الماسح أو القياس عن بعد رؤيته.

قد تبقى القدرة في المكتبة فيما تمنع السياسة كل العروض. وقد يبقى اسم الحزمة في ملف من دون أن يفوز بالاختيار. وقد لا يشاهد الماسح شيئاً لأنه لا يعرف اسم SNI الصحيح، أو لا يختبر UDP، أو يتجاوز حافة داخلية، أو يعرض دائماً بديلاً أفضل. الغياب عن العينة ليس استحالة.

يقدم الاختبار السلبي المضبوط العائلة المحظورة وحدها ويتوقع الرفض. وهو أقوى من اتصال عادي لعميل حديث، لكنه لا يثبت إلا العنوان والمنفذ والنقل واسم SNI والوقت ونسخة السياسة التي وصل إليها. ويذكّر DTLS 1.3 في RFC 9147 بأن فحص TLS فوق TCP لا يغلق تعرض DTLS فوق UDP.

إيصال إغلاق الإهمال

يحتاج كل سطح خدمة إلى إيصال إغلاق الإهمال. يسجل القسم الأول رقم RFC ومعرّف IANA وإصدار البروتوكول وعائلة التبادل والقوة المعيارية. وبهذا لا يحذف FFDHE المسموح في TLS 1.3 بسبب تشابه الاسم، ولا يتحول SHOULD NOT خفيةً إلى MUST NOT.

ويحدد القسم الثاني نقطة التحكم الفعلية: مصدر الإعداد المعتمد، والمراجعة الموافق عليها، والسياسة المولدة، وإصدار البرنامج أو الجهاز، والمستمع، وSNI، والعنوان، والمنفذ، والنقل، والوكلاء السابقين. عبارة «حُدّثت السياسة العالمية» تعبّر عن النية فقط حين يكون الإنهاء موزعاً.

ويثبت القسم الثالث التفعيل: إعادة التشغيل أو التحميل الساخن أو النشر المدار؛ الوقت؛ معرّف التغيير؛ المجموعة المستهدفة؛ الحالات المكتملة والفاشلة والغائبة؛ ونسخة التراجع. يثبت فرق الملف ما كان مطلوباً، بينما تقرّب هوية العملية والسياسة المحمّلة الدليل من التنفيذ.

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

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

هذا الإيصال اقتراح حوكمة من Daniel Kade، وليس متطلباً جديداً يفرضه RFC 10015. غايته منع سهولة قراءة التغيير المعياري من إنتاج يقين آلي بشأن بنية لم تُفحص.

لغة لا تتجاوز الدليل

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

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

رسم المعيار نقطة البداية. وبعدها يبدأ سؤال الحوكمة التشغيلية: أي عملية حية ما زالت تستطيع اتخاذ القرار القديم، ومن يملكها، وما الدليل الذي ينهي هذه الإمكانية؟

المصادر