الخلاصة
- تتيح RFC 9729 للعميل المجهز مسبقاً أن يثبت هويته في الطلب الأول، مستنداً إلى مادة مشتقة من جلسة TLS بدلاً من انتظار تحدٍّ يكشف أن المورد المحمي موجود.
- يرتبط الإثبات بالاتصال وسياق الأصل، لا بطريقة HTTP أو المسار أو جسم الطلب؛ لذلك تصبح إعادة استخدام الاتصال ونقطة إنهاء TLS والثقة بين الواجهة الأمامية والخلفية أجزاء من حد المصادقة.
- يجب أن يترافق الغموض العام مع وضوح خاص: سبب الرفض، وجيل سجل المفاتيح، وحالة الإلغاء، وقرار التفويض، والنتيجة الفعلية للمورد حقائق منفصلة ينبغي إثباتها.
لنفترض أن خدمة تشغيلية حساسة لا تريد الإعلان عن عنوانها. يحصل الزائر المجهول على الاستجابة نفسها التي يحصل عليها لمسار لم يُضبط قط. أما العميل المخوّل فيرسل اعتماد Concealed منذ الطلب الأول ويحصل على الخدمة. لم يقل الخادم مسبقاً «المصادقة مطلوبة هنا»، ولذلك لم يتحول تحدي 401 إلى دليل على وجود القدرة.
تستخدم RFC 9729 مُصدِّر مادة مفاتيح TLS ليمنح الإثبات حداثة مرتبطة بالاتصال. يوقّع العميل قبل أن يكشف الخادم وجود آلية المصادقة. الإشارة العامة تختفي، لكن سلطة اختيار حاملي المفاتيح، والأصول التي تقبلها، والجهة التي تشهد على اتصال TLS لا تختفي.
إصدار المفتاح هو أول سطح للتحكم
تفترض المواصفة آلية خارجية لتوزيع المفاتيح. لدى العميل معرّف وزوج مفاتيح غير متماثل، ولدى الأصل خريطة من المعرّفات المقبولة إلى المفاتيح العامة. لا تحدد المواصفة من يستحق المفتاح، ولا كيف تُحمى مادته الخاصة، ولا كيف يُبلّغ عن الفقد أو المغادرة، ولا متى يُعد الإلغاء نافذاً في كل نقطة تحقق.
التوقيع الصحيح مقابل سجل قديم يثبت سياسة قديمة بدقة. حذف ملف من جهاز العميل لا يلغي المفتاح إذا بقي الخادم يقبل مقابله العام. وتعديل قاعدة البيانات ليس أثراً تنفيذياً إلى أن يحمّل كل متحقق قادر على خدمة المورد الجيل الجديد، ثم يثبت طلب اصطناعي أن المفتاح القديم رُفض وأن المفتاح السليم ما زال يعمل.
ينبغي أن يربط السجل التشغيلي جهة الإصدار، وفئة صاحب الاعتماد، والأصل والـ realm، وبصمة المفتاح العام، وأوقات البدء والانتهاء، وسبب الإلغاء، وجيل التوزيع، وكل متحقق مستهلك. يبقى المفتاح الخاص سرياً، بينما تظل سلسلة القرار قابلة للتدقيق.
ما الذي يربطه مُصدّر TLS فعلاً؟
الوسم المسجل هو EXPORTER-HTTP-Concealed-Authentication. يتضمن سياقه رقم خوارزمية توقيع TLS، ومعرّف المفتاح، والمفتاح العام، ومخطط URI، والمضيف، والمنفذ، وrealm اختيارياً. ينتج 48 بايتاً: 32 تدخل في مادة التوقيع، و16 تُرسل في معامل التحقق v.
يحمل الاعتماد أيضاً k وa وp وs. يبحث الخادم عن المعرّف، ويقارن المفتاح المقدم بالمخزّن، ويطابق v مع ناتج الاتصال، ثم يتحقق من التوقيع. تقلل هذه المقارنات احتمال التباس المفاتيح وتربط القبول بالقناة المقصودة.
لكن السياق لا يشمل طريقة HTTP أو المسار أو الجسم. على الاتصال نفسه قد تنتج الهوية نفسها إثباتاً متطابقاً لطلبات متعددة. يفيد ذلك الضغط، لكنه يجعل عزل السياقات المتعددة شرطاً أمنياً: سياق يستطيع قراءة Authorization لسياق آخر قد يعيد استخدامه على الاتصال نفسه. عزل المستأجرين والجلسات في HTTP/2 وHTTP/3 ليس مجرد تحسين أداء.
وللحداثة عمر أيضاً. قد يكون الإثبات بعمر اتصال طويل أو مستأنف. فرض اتصال جديد يضيّق النافذة، لكنه يستهلك مصافحات وسعة ويضيف أنماط فشل. يجب حفظ عمر الاتصال، وسلسلة الاستئناف، وسبب التدوير مع نتيجة المصادقة.
نقطة إنهاء TLS تصبح شاهداً على الهوية
في البنية المنقسمة تنهي واجهة أمامية TLS أو QUIC، ثم تمرر Authorization الأصلي وحقل Concealed-Auth-Export إلى الخلفية التي تحمل سجل المفاتيح. لا تستطيع الخلفية إعادة حساب مادة اتصال العميل بالواجهة الأمامية من اتصالها الخاص؛ إنها تثق في شهادة الواجهة الأمامية.
لهذا توجب المواصفة تجاهل الحقل ما لم يكن مرسله موثوقاً مسبقاً، وتمنع الواجهة الأمامية من تمرير نسخة حقنها العميل. موازن حمل يستطيع إنشاء القيمة التي تقبل بها هوية ليس «نقلاً فقط»، بل مكوّن مصادقة.
قائمة تحكم واسعة على الشبكة لا تكفي عادة. يحتاج الدليل إلى هوية الواجهة الأمامية الموثقة، وإصداري البرنامج والإعداد، ومعرّف اتصال العميل، والمضيف الافتراضي، وauthority بعد التطبيع، وقيمة ترابط محمية للمُصدّر، ومسار الخلفية. إذا حذف service mesh حقلاً أو كرره أو استخدم host مختلفاً، قد لا يرى العميل إلا 404 متقنة.
نجاح المصادقة لا يمنح العملية
تحلل الخلفية المعاملات، وتجد المعرّف، وتقارن المفتاح، وتقارن قيمة المُصدّر، وتتحقق من التوقيع. أي فشل يُعامل كأن الاعتماد غائب. اجتياز الجميع يسمح بوصف العميل بأنه مُصادق عليه؛ ولا يقول بعد إن العملية مأذونة.
قد يملك المتعاقد مفتاحاً صالحاً لوظيفة واحدة فقط. قد يكون الحساب موقوفاً. قد يحمل مسار واحد جيلاً قديماً من السياسة. وفي الاتجاه الآخر قد تكشف route المورد من دون تنفيذ Concealed. لذلك يجب تسجيل نتيجة المصادقة وسياسة التفويض والأثر الفعلي للمورد كقرارات مستقلة، وربطها باختبار من جهة العميل.
توحيد الفشل هو سياسة إفصاح
للمورد غير القابل للجس ينبغي أن يطابق فشل المصادقة استجابة مورد غير موجود تماماً. رقم 404 ليس سوى بعد واحد؛ الجسم والرؤوس والتخزين المؤقت وإغلاق الاتصال والطول وتوزيع الزمن قد تميز الفروع.
التحقق من التوقيع يكلف وقتاً. إذا عاد المسار المجهول فوراً بينما أجرى المسار المحمي بحثاً وتشفيراً، ظهر مِسبار زمني. يجب مقارنة توزيعات تحت حمل وشبكة متماثلين، وفحص الفهارس وخرائط الموقع ورسائل الخطأ وحزم العميل والقياس والوثائق وDNS. أزال البروتوكول إشارة واحدة، لا كل قرار نشر.
حتى نص المعيار يحتاج إلى إثبات إصدار
يوضح سجل تصويبات RFC 9729 سبب أهمية نسخة التنفيذ. صحح التصويب المؤكد 8807 مثالاً سداسياً كان يرمّز HTTP Signature Authentication، بينما البناء المعياري يقول HTTP Concealed Authentication. نسخ المثال قد يخلق فشلاً بينياً مختبئاً خلف الاستجابة العامة المتعمدة.
أما التصويب 8843، وما زال بحالة reported، فيخص ABNF للعدد s: الصيغة المطبوعة تستبعد الأرقام غير الصفرية ذات الخانة الواحدة، بينما يسمح النص بالقيم من 0 إلى 65535. على المشغل تسجيل تفسيره ونسخة المحلل واختباراته ومتابعة الحالة.
تسجل IANA اسم scheme وحقل HTTP ووسم المُصدّر. التسجيل يثبت تنسيق الأسماء والمراجع، ولا يثبت دعم العميل أو صحة الإصدار أو تغطية المسارات أو تماثل الاستجابة. السلطة الوثائقية والأثر التنفيذي طبقتان مختلفتان.
سطح عام غامض وسطح داخلي دقيق
ينتج التصميم الناضج رؤيتين مختلفتين عمداً. يقلل السطح العام الفروق المتاحة لغير المخوّل. ويميز السطح الخاص، المحمي والمراقب، بين اعتماد مشوّه، ومفتاح مجهول أو ملغى، وعدم تطابق المفتاح أو المُصدّر، وتوقيع فاسد، وTLS غير مؤهل، وواجهة غير موثوقة، ورفض التفويض، والمسار الخاطئ، والفشل اللاحق.
لا تعود رموز الأسباب إلى الجسم العام أو التوقيت. تُربط بحقائق الاتصال والإعداد عبر معرّف ترابط محمي، مع مدة حفظ وتدقيق وصول. تشمل الضوابط السلبية مساراً غير موجود حقاً، ومساراً محجوباً بلا اعتماد، واعتمادات مشوهة، ومفاتيح مجهولة وملغاة، ومضيفاً أو منفذاً خاطئاً، وTLS غير مؤهل، وحقلاً حقنه العميل، وواجهة غير موثوقة، ورفضاً بعد مصادقة صحيحة. تتقارب المشاهدات العامة حيث تقتضي السياسة، وتبقى الأسباب الداخلية مختلفة.
المصادر
- RFC 9729، وصفحة RFC Editor، والتصويبات
- سجل IETF Datatracker
- سجلات IANA لـخطط مصادقة HTTP وحقول HTTP ومعاملات TLS
- RFC 9110 وRFC 5705 وRFC 7627 وRFC 8446
- Lu Heng: Running-Code Primacy وMinimum Initial Specification وReality Layers
- سجلات أولية مكملة: النص الخام لـ RFC 9729 وRFC 9846 لوسوم مُصدّر TLS وRFC 9266 لربط القنوات
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات

