الخلاصة

  • يفرض RFC 10015 على عميل TLS/DTLS 1.2 ألا يعرض وعلى الخادم ألا يختار مجموعات FFDH أو FFDHE أو تبادل مفاتيح RSA؛ أما ECDH الساكن فيخضع لـSHOULD NOT.
  • الحد متعلق بالإصدار والوظيفة: يبقى FFDHE مسموحًا في TLS/DTLS 1.3، ويمكن لشهادة RSA أن توثّق تبادلًا مؤقتًا مسموحًا من دون أن يكون ذلك تبادل RSA المحظور.
  • تسجل علامة D لدى IANA قرارًا مشتركًا ولا تعدّل عملية عاملة. الجرد والاختبارات الإيجابية والسلبية وأسباب الفشل والاستثناء المحدد زمنيًا ومراقبة الانحراف هي دليل الإيقاف.

حين تكون رسالة «الإصدار مسموح» صحيحة ومضللة

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

كان الجهاز لا يعرض إلا مجموعة تبادل مفاتيح RSA.

هنا تقع الواقعة داخل الحد الذي رسمه RFC 10015. نُشر النص على مسار المعايير في يوليو 2026، ويقول إنه في TLS أو DTLS 1.2 يجب على العميل ألا يعرض وعلى الخادم ألا يختار مجموعة يكون تبادل المفاتيح فيها RSA. استمرار الإصدار لا يعني استمرار كل الطرق التاريخية لإنشاء سر الجلسة.

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

رقم الإصدار لا يبين كيف وُلد السر

تجمع مجموعة تشفير TLS 1.2 عدة قرارات: التوثيق، وتبادل المفاتيح، والتشفير المتماثل، والسلامة. ولذلك لا يكفي عدّ اتصالات TLS 1.2. قد تحمل جلستان الاسم نفسه وتختلفان جذريًا في السرية المستقبلية، وإعادة استخدام المفتاح، واختيار المجموعة.

يميّز RFC 10015 أربع عائلات. FFDH هو Diffie-Hellman على حقل منتهٍ بصورة غير مؤقتة؛ المفتاح العام الساكن موجود في الشهادة. أما FFDHE فيرسل قيمة مؤقتة أثناء المصافحة وتوثقها الشهادة. ويقابل ECDH وECDHE هذا الفرق على المنحنيات الإهليلجية.

في TLS/DTLS 1.2 تكون القواعد الدقيقة:

  • FFDH غير المؤقت: MUST NOT للعرض والاختيار؛
  • FFDHE: MUST NOT للعرض والاختيار؛
  • تبادل مفاتيح RSA: MUST NOT للعرض والاختيار؛
  • ECDH غير المؤقت: SHOULD NOT للعرض والاختيار.

وينصح النص أيضًا بعدم استخدام أو قبول أنواع الشهادات الثابتة rsa_fixed_dh وdss_fixed_dh وrsa_fixed_ecdh وecdsa_fixed_ecdh. تنطبق هذه الأنواع على الإصدار 1.2 وما قبله فقط.

الفرق بين المنع المطلق والتثبيط ليس تفصيلًا تحريريًا. إذا بقي ECDH الساكن، فلا بد من ظرف استثنائي واضح ونطاق وموعد خروج؛ لكنه ليس المخالفة المطلقة نفسها التي تمثلها مجموعة RSA أو FFDHE. وفي الاتجاه الآخر، وضع مجموعة محظورة في آخر ترتيب التفضيل لا يغلقها. إذا أمكن اختيارها عندما لا يوجد مشترك آخر، فما زال الطريق يعمل.

حظر بالاسم قد يضرب الهدف الخطأ

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

والأمر نفسه في عبارة «عطّل DHE». يصرح RFC 10015 بأن FFDHE في TLS وDTLS 1.3 لا يرث المشكلات المعروضة لبناء 1.2، ولذلك يجوز عرضه. قاعدة نصية لا تفهم الإصدار تحول حدًا دقيقًا إلى منع لعائلة كاملة.

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

لماذا لم تعد المؤقتية كافية لـFFDHE في 1.2

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

وحّد RFC 7919 مجموعات FFDHE مسماة، وشرح ضغط التوافق الذي أبقى أحجامًا واسعة الدعم. يجمع RFC 10015 بقية الأسباب: مجموعات فرعية صغيرة، واستمرار مجموعات 1024 بت، وإمكان توزيع كلفة الحساب المسبق على اتصالات كثيرة تستخدم مجموعة شائعة، ومخاطر إعادة استخدام السر مثل فئة Raccoon.

وجود حرف يدل على «مؤقت» في اسم المجموعة لا يثبت أن التنفيذ أنشأ سرًا جديدًا وتخلص منه كما ينبغي. القرار يخص تركيبة TLS 1.2 وتاريخ تشغيلها، لا حكمًا مطلقًا على Diffie-Hellman.

تبادل RSA يوسّع الانكشاف في الزمن وبين الخدمات

في تبادل RSA ضمن TLS 1.2، ينشئ العميل السر الأولي ويشفّره للمفتاح العام للخادم. لا توجد سرية مستقبلية. إذا حُفظت الحركة اليوم وظهر المفتاح الخاص لاحقًا، يمكن أن يعود الماضي إلى نطاق الفك.

تضيف هجمات أوراكل Bleichenbacher مشكلة تنفيذية متكررة. أي فرق ملحوظ في زمن أو خطأ أو استجابة معالجة نص RSA غير صالح قد يكشف السر تدريجيًا. وتبين أعمال مثل ROBOT وDROWN أن جعل كل حالات الفشل غير قابلة للتمييز أمر بالغ الصعوبة.

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

الرمز D وصف مشترك لا أمر تشغيل

يحدّث RFC 10015 سبعة عشر RFC سابقًا، بينها TLS 1.2 وDTLS 1.2 وBCP 195. وضع سجل معاملات TLS لدى IANA علامة D على الإدخالات المعنية وأضاف المرجع الجديد. ويعرّف RFC 9847 العلامة بأنها غير مشجعة للتنفيذات أو عمليات النشر الجديدة.

ينسق السجل اللغة بين المطور والمشتري والمشغل. لكنه لا يعدّل مكتبة مترجمة، أو إعداد proxy، أو واجهة CDN، أو firmware جهاز. بين السجل والمصافحة توجد مزودات التشفير، والقيم الافتراضية، ومتغيرات البيئة، وتجاوزات التطبيق، وقوالب المناطق.

يُثبت فرق ملف الإعداد النية. ويُظهر الإعداد المحمّل حالة العملية. أما ما يثبت أن الطريق اختفى من التوافق فعلًا فهو عرض العميل واختيار الخادم على السلك.

بناء دفتر تفاوض قبل القطع

يبدأ الجرد بكل مواضع القرار: المستمعات العامة، وواجهات الداخل، والعملاء الصادرون، وDTLS، وشبكات الخدمات، والوسطاء، والحواف، والأجهزة المدمجة. لكل موضع يُسجل المالك، والمكتبة ومزود التشفير، والمجموعات الفعلية، وحدود الإصدار، وقواعد SNI/ALPN، واستعمال الشهادة، وإعادة استخدام المفتاح، والمنطقة، وفئة العملاء.

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

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

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

الكود العامل هو موضع الحقيقة

تضع فكرة Heng Lu عن أولوية الكود العامل الدليل حيث ينبغي. يستطيع RFC تعريف شرط، وتستطيع IANA تسجيله، لكنهما لا ينتجان سجل مصافحة في بيئة الإنتاج.

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

يرسم RFC 10015 الحد. ويثبت الإعداد العامل والمصافحة ما إذا وصل الحد إلى الواقع.