الخلاصة
- يتيح RFC 9345 لصاحب شهادة الطرف النهائي توقيع بيان اعتماد محدود. يمكّن مفتاحه الخاص خادماً موثوقاً من إكمال مصافحات TLS أو DTLS 1.3 المتوافقة، بينما يستمر النظير في التحقق من سلسلة الشهادة والهوية المتوقعة.
- تمثل سبعة أيام الحد الافتراضي الأقصى، لا خدمة سحب فوري لكل بيان. إذا نُسخ المفتاح المفوّض أمكن استخدامه حتى الانتهاء؛ أما السحب المبكر داخل سلسلة الثقة فيتطلب إلغاء الشهادة الموقعة نفسها وما يترتب عليه من أثر أوسع.
- يحتاج الإثبات إلى ربط إذن الشهادة وبصمة البيان وعملية التوقيع ومصدر المفتاح ونطاق الخوادم والتفاوض وCertificateVerify والمسار البديل واستئناف الجلسة والرفض بعد الانتهاء.
قدرة تنفيذية أصغر من الشهادة
تحتفظ المؤسسة بالمفتاح الخاص للشهادة في خدمة توقيع خلفية. تنشئ الحافة زوجاً جديداً أو تستلم مفتاحاً خاصاً قصير الأجل، ثم يوقّع صاحب الشهادة المفتاح العام ووقت الانتهاء والخوارزمية. عندما يعلن العميل دعمه، تستخدم الحافة مفتاحها لإنتاج CertificateVerify من دون الرجوع إلى المفتاح الطويل في كل اتصال.
تحصل الحافة بذلك على قدرة حقيقية: يمكنها إثبات امتلاك مفتاح سمح به صاحب الشهادة. لكنها لا تستطيع تجديد الشهادة أو تغيير أسمائها أو التعامل مع سلطة التصديق أو إصدار بيان لاحق من المفتاح القصير. ولا تستطيع فرض الآلية على عميل لم يعلن قبولها.
ولهذا لا يعد Delegated Credential شهادة X.509 قصيرة. صمّم RFC بنية ضيقة تحتوي وقتاً وخوارزمية ومفتاحاً عاماً. يربط التوقيع هذه الحقول بنسخة الشهادة الكاملة وبسياق مختلف لمصادقة الخادم أو العميل. التفويض هنا وظيفة محددة، لا إنشاء سلطة تصديق فرعية.
الإذن يبدأ قبل توزيع المفتاح
يجب أن تحمل شهادة الطرف النهائي امتداد DelegationUsage غير الحرج وKeyUsage من نوع digitalSignature. إذا غاب أحدهما وجب الرفض. يمنع هذا الشرط أن يتحول الوصول المؤقت إلى مفتاح عادي أو oracle قديم إلى سلطة غير معلنة لصنع تفويضات مستقبلية.
في مصادقة الخادم، يرسل العميل الامتداد رقم 34 والخوارزميات المقبولة في ClientHello. بعد ذلك فقط يضع الخادم بياناً واحداً في CertificateEntry للشهادة النهائية. وفي مصادقة العميل، يعلن الخادم الدعم في CertificateRequest أولاً. وصول بيان غير مطلوب خطأ بروتوكولي، وليس تحسيناً تلقائياً.
يتحقق المستقبل بالطريقة المعتادة من السلسلة والهوية. ثم يفحص الوقت والحد الافتراضي ونهاية الشهادة وعلاقتي الخوارزمية والامتداد وتوقيع البيان. عندئذ فقط يستخدم المفتاح العام المفوّض للتحقق من CertificateVerify.
تفصل هذه الخطوات بين أربعة أدوار: تصدر CA الشهادة؛ يحدد صاحبها التفويض؛ تثبت الحافة امتلاك المفتاح؛ ويقرر التطبيق ما يجوز للاتصال الموثق فعله. لا تنشئ مصافحة ناجحة إذناً مالياً أو إدارياً.
الانتهاء يحد الضرر ولا يستعيد النسخ
في غياب profile آخر، لا يتجاوز العمر المتبقي سبعة أيام ولا نهاية الشهادة. ويمكن اختيار مدة أقصر. توثق Cloudflare أن بيانات Keyless التي تنشئها تصبح غير صالحة خلال 24 ساعة من تعطيل الخدمة. هذه سياسة منتج تحت سقف RFC وليست قاعدة عامة.
ولا تعني «خلال 24 ساعة» «الآن». لا يعرّف RFC 9345 سحباً مبكراً مستقلاً لبيان واحد. يوقف حذف الإعداد والتوقيعات الجديدة الاستخدام المشروع، لكنه لا يسترجع نسخة مسروقة. يبقى انتظار الانتهاء، أو إلغاء الشهادة الأصلية بما يصيب الاتصالات المفوّضة وغير المفوّضة.
تعتمد الصلاحية على الوقت أيضاً. يُشتق valid_time من notBefore الخاص بالشهادة، ويحكم العميل بساعته. قد يرى الخادم البيان سليماً بينما يرفضه عملاء متقدمون زمنياً. لذلك تحتاج دورة التحديث إلى هامش وتداخل وقياس فعلي للأخطاء.
قد يحمل استئناف الجلسة قراراً قديماً. إذا خزن النظير سلسلة الشهادة وأعاد التحقق منها، فعليه أن يخزن البيان المرتبط ويعيد التحقق منه كذلك، وإلا بقي أساس منتهي الصلاحية داخل جلسة مستأنفة.
طريقان للمفتاح الخاص
يصف RFC 9677 نموذجين بين شبكات CDN. يمكن للشبكة السفلى توليد زوج المفاتيح وإرسال العام فقط للتوقيع. لا ينتقل الخاص، لكن تسجيل العام يجب أن يثبت أنه جاء من الجهة المقصودة. أو ترسل الشبكة العليا مفتاحاً خاصاً مشفراً مع البيان. يسهل التوليد المركزي، ويخلق في المقابل ciphertext قابلاً للحفظ ومفتاح فك تشفير حساساً.
لا يوصي RFC بإرسال المفاتيح الخاصة عبر واجهة metadata. وإذا استُخدم المسار وجب تشفيره بقوة كافية، من دون forward secrecy أمام تسرب مفتاح النقل لاحقاً. يمنع انتهاء البيان مصافحات جديدة؛ لا يمحو الأرشيف.
يقلل بيان مشترك بين عقد كثيرة عبء التحديث، لكنه يوسع أثر السرقة ويضعف الإسناد. يضيّق البيان الخاص بكل عقدة الضرر، لكنه يضاعف التوقيع والتوزيع والمخزون وخطر الانتهاء. الوحدة الصحيحة هي أصغر نطاق يمكن تحديثه في عطل جزئي.
المسار البديل جزء من التصميم
لا تعمل الآلية إلا في TLS/DTLS 1.3 وبعد الإعلان. إدراج IANA للامتداد باعتباره موصى به يثبت معنى مستقراً لا انتشاراً شاملاً. تذكر وثائق Cloudflare دعم Firefox 77 وما بعده، وتقول أيضاً إن عدد العملاء وسلطات التصديق الداعمة قليل.
لذلك يحتاج التشغيل إلى fallback. يعيد التوقيع البعيد زمن الرحلة واعتماد backend. ويعيد نشر المفتاح الطويل في الحافة الخطر الطويل. وتضيف شهادة أخرى دورة تجديد وإلغاء. ارتفاع نسبة المصافحات المفوّضة لا يلغي تكلفة البقية.
تختبر BoringSSL رفض TLS 1.2 والفصل بين خوارزميتي التوقيع واختيار شهادة عادية عند عدم وجود بيان مناسب. ويختار NSS المفتاح الخاص المفوّض للتوقيع والعام المفوّض للتحقق. وجود المسار في الشفرة لا يثبت أن اتصالاً إنتاجياً مر به.
سجل التفويض
يسجل بصمة الشهادة ورقمها وأسماءها ومدتها وKeyUsage وDelegationUsage؛ وبصمة البيان ومفتاحه العام ودوره وخوارزمياته ونهايته؛ وهوية الموافق وحدث التوقيع بالمفتاح الطويل.
ويسجل من أنشأ المفتاح الخاص وكيف سُلّم ونطاق العقد والتأكيدات وعدد المشاركين. وفي المصافحة يسجل عرض العميل والاختيار والتحقق وCertificateVerify والنسخة والمسار البديل.
وعند الإنهاء يسجل وقف الإصدار والحذف من كل عقدة وآخر وقت صالح وقرار إلغاء الشهادة ومعالجة الاستئناف واختبار الرفض بعد الانتهاء. اختفاء البيان من لوحة واحدة لا يثبت اختفاء كل نسخة.
المصادر
- RFC 9345 — Delegated Credentials for TLS and DTLS
- RFC 8446 — TLS 1.3
- RFC 5280 — X.509
- RFC 8555 — ACME
- RFC 9677 — CDNI Metadata for Delegated Credentials
- IANA — TLS ExtensionType Values
- Cloudflare — Delegated Credentials for TLS
- Cloudflare — Keyless delegation
- Mozilla — التحقق في Firefox
- BoringSSL — اختبارات بيانات الاعتماد المفوّضة
- Mozilla NSS — تنفيذ TLS 1.3
- Heng Lu — Running-Code Primacy
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
