الخلاصة

  • يقترح draft-mittal-est-coap-ca-certs-00 أن يتحقق الجهاز، بواسطة مرتكز ثقة للمصنّع مثبت عند الإنتاج، من كائن CMS يضم شهادات سلطات تصديق تشغيلية. الوثيقة مسودة إنترنت فردية في نسختها 00، وليست RFC ولا إجماعاً من IETF ولا دليلاً على النشر.
  • قد يبقى خادم الاسترداد غير موثَّق. يوفر TLS أو DTLS النقل فقط، بينما يثبت توقيع المصنّع كائناً محدوداً يجب أيضاً فحص غرض موقّعه والاسم المستعار وتسلسله وصلاحيته والسياسة المحلية.
  • تثبيت المرتكزات لا يصادق الاتصال السابق بأثر رجعي ولا يجيز تسجيل الشهادة. يجب إنشاء جلسة جديدة والتحقق من هوية الخادم تحت المرتكزات الجديدة قبل أي عملية EST عادية.

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

تعالج المسودة الفردية draft-mittal-est-coap-ca-certs-00 هذه الدائرة بنقل الثقة مؤقتاً من القناة إلى الكائن. يختار المشغّل مجموعة CA التشغيلية، ثم يوقعها المصنّع أو جهة توقيع مفوضة منه داخل بنية CMS. ينشر خادم EST الحزمة تحت اسم مستعار خاص بمجال ثقة المصنع.

يمكن للعميل استردادها حتى إذا لم يستطع قبول شهادة الخادم الحالية. وقد تسمح حالة تعتبر الحزمة بيانات نشر عامة باستخدام HTTP أو CoAP بلا تشفير. مصدر سلامة الحزمة وأصلها هو توقيع CMS، لا هوية الناقل.

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

التوقيع يجيز البايتات ولا يجيز المقبس

تتضمن ManufacturerSignedCACerts إصداراً واسماً مستعاراً ورقم تسلسل متزايداً وnotBefore وnotAfter وشهادة CA واحدة أو أكثر. يغطي SignedData البنية بكاملها، ويحمل شهادة الموقّع والوسائط اللازمة لبناء مسار إلى مرتكز المصنع المحلي.

تجيب النتيجة الناجحة عن سؤال ضيق: هل حمى مفتاح مقبول، ومخوّل بهذا الغرض، هذه الحقول والشهادات بالضبط؟ لا تجيب عمن يدير اسم DNS أو عنوان IP أو خدمة CoAP التي أعادت الكائن. يستطيع مرآة خبيثة إعادة إرسال حزمة صحيحة دون أن تصبح جهة تسجيل مشروعة.

لهذا يُحصر الاتصال المؤقت في /cacerts أو /crts. لا يجوز إرسال CSR أو اعتماد عميل أو معرّف طويل الأجل أو طلب إعادة تسجيل أو معلومة حساسة. يستطيع DTLS حجب المحتوى عن المتنصت، لكنه لا يمنح الخادم سلطة EST إذا لم ينجح التحقق من هويته.

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

لكن السجلات يجب أن تبقى منفصلة. سجل التوزيع يثبت التسليم. سجل التوقيع يثبت إقرار الكائن. سجل الجهاز يثبت ما تحقّق منه وما ثبته. حدث واحد اسمه «مصدر موثوق» سيمحو المسؤوليات الثلاث.

الاسم المستعار عنوان، لا تفويض

يمكن أن يكون المسار /.well-known/est/{manufacturer-alias}/cacerts، بينما تستخدم EST-coaps المورد الأقصر /crts. وقد يُشتق الاسم من رقم مؤسسة خاصة لدى IANA، لكن النسخة 00 لا تفرض طريقة واحدة ولا تطلب سجلاً جديداً.

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

يمنع ذلك استبدال حزمة صالحة لمصنع داخل مسار مصنع آخر على خادم متعدد المستأجرين. القاعدة الأوسع هي أن المسار يختار السياق، والتوقيع يربط المحتوى، والسياسة المحلية تقرر التكافؤ. لا ينبغي لأي طبقة أن تتقمص سلطة الأخرى.

يجب أن يحتفظ الإيصال بالاسم المضبوط، وURI المطلوب، والاسم داخل التوقيع، وقاعدة التكافؤ، وبصمة CMS والقرار. لا يثبت 200 OK سلطة الحزمة، ولا يشرح «التوقيع صالح» وحده لماذا جاز تغيير هذا الجهاز.

الحزمة القديمة قد تكون أصلية وخطرة في آن

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

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

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

تضيف الذاكرة المخبئية ساعة أخرى. تقلل الحزمة الثابتة كلفة حجب الخدمة، لكن CDN قد يواصل توزيع جيل سُحب. النقل المطابق يثبت عدم التعديل ولا يثبت الحداثة.

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

السياسة المحلية هي حق المشغّل الأخير في الرفض

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

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

تقدم عقيدة Lu Heng حول الحد الأدنى للمواصفة الأولية اختباراً عملياً. ما يلزم أن يكون مشتركاً هو قواعد التحقق الحتمية: مسار الموقّع، الغرض المخصص، البايتات، الاسم، التسلسل والزمن. أما اختيار CA المستقبلية وموعد التدوير والاستجابة للاختراق فهي قرارات محلية.

إذا ثبت البرنامج كل حزمة ذات توقيع مصنع صالح، تحول bootstrap إلى مستوى تحكم بعيد في مخزن الثقة. لم يعد المفتاح يحل أول توزيع فقط؛ بل يقرر المؤسسات التي سيصدقها الجهاز طوال عمره.

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

الجلسة الجديدة هي موضع إثبات هوية الخادم

بعد قبول المرتكزات، ينشئ العميل اتصال TLS أو DTLS جديداً. هناك فقط تستخدم الجذور الجديدة للتحقق من اسم الخادم وسلسلته.

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

يسمح RFC 7030 أصلاً بإكمال TLS مؤقتاً للحصول على /cacerts، ثم إجازة البيانات خارج القناة وإنشاء اتصال موثق. تستبدل المسودة الإجازة اليدوية بتوقيع المصنع، ولا تلغي الاتصال الثاني.

يحوّل RFC 9148 EST إلى CoAP/DTLS ويقابل /cacerts بـ/crts. تيسير النقل للأجهزة المقيدة لا يجعل كل مستجيب مسجلاً تشغيلياً. ينبغي لإيصال الجلسة الجديدة أن يحتوي الاسم المتوقع وبصمات السلسلة والمرتكز المستخدم والسياسة والنتيجة.

التسجيل معاملة أخرى لا خاتمة تلقائية

حتى الخادم الموثق يستطيع رفض الطلب. يجب أن ينشئ الجهاز CSR ويثبت حيازة المفتاح ويلبي سياسة CA. وقد تصدر الشهادة بملف غير مناسب أو تفشل في التثبيت أو لا ينتج عنها تشغيل الخدمة.

تقول النسخة 00 إنها لا تغير دلالات EST ولا إثبات الحيازة ولا سياسة التصديق. إنها توزع CAs التشغيلية فقط. لا توثق الجهاز، ولا توافق على CSR، ولا تصدر الاعتماد، ولا تقيس النتيجة.

ينبغي أن يميز المنسق: استرداد الحزمة، تخويل الموقّع، نجاح الحداثة، قبول السياسة، تعديل المخزن، توثيق الجلسة الجديدة، قبول التسجيل، تثبيت الشهادة، وملاحظة الخدمة. لكل مرحلة مالك وفشل واستعادة.

يحمي المصنع موقّع bootstrap، ويملك المشغّل السياسة المحلية، ويثبت خادم EST هويته، وتقرر CA الإصدار، وينتج النظام العامل النتيجة. لا يمثل توقيع واحد إرادات الجميع.

مفتاح المصنع رافعة على كامل الأسطول

اختراق المفتاح يسمح بصنع حزم CA قد تثبتها كل الأجهزة التابعة للمرتكز. توصي المسودة بـHSM أو KMS، ومنع التصدير، وشهادة مخصصة لا يعاد استخدامها لمصادقة TLS أو إصدار CA أو توقيع البرامج الثابتة.

فصل الوظائف يوضح التخويل أيضاً. المسار الصحيح إلى «المصنع» لا يبين أي فعل مؤسسي يسمح به المفتاح. يجب أن تعرّف سياسة العميل دور توقيع حزم bootstrap صراحة.

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

يقدّم RFC 8995 وRFC 8366 مقارنة مع vouchers التي تربط جهازاً بنطاق. تختلف الموضوعات والادعاءات، ولا تجعل هذه المقارنة المسودة BRSKI أو معياراً أو واقعاً منشوراً.

نقطة عامة غير موثقة يجب أن تكون قليلة الكلفة

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

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

يبيّن النقل الواضح أيضاً أن السلامة ليست السرية. يحمي CMS من التعديل، لكنه يكشف الاسم والحزمة. إذا كشفا العميل أو المنطقة أو موعد الانتقال، يلزم TLS/DTLS لحجب المراقب حتى لو لم توثق هوية النظير بعد.

ثمانية إيصالات بدلاً من «نجح bootstrap»

الإيصال الحد الأدنى ما لا يثبته
التصنيع بصمة المرتكز، فئة الجهاز، التخزين، قاعدة الاسم السيطرة الحالية للمصنع
سلطة الكائن بصمة CMS، المسار، الغرض، النتيجة هوية الخادم أو الحداثة
النطاق والحداثة الأسماء، الرقم، التواريخ، ثقة الوقت القبول المحلي
التغيير المحلي السياسة، الفروق، البصمات قبل وبعد توثيق الخادم
نقل bootstrap URI، الشهادة المعروضة، التشفير، الكاش سلطة EST
الجلسة الجديدة الاسم، السلسلة، المرتكز، النتيجة قبول التسجيل
التسجيل CSR، الهوية، إثبات الحيازة، قرار CA جاهزية الخدمة
النتيجة اعتماد مثبت، صحة، ملاحظة مسماة مشروعية حزمة لاحقة

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

الحد الأكثر قيمة في النسخة 00 هو أن الكائن القابل للتحقق يستطيع عبور نقل غير موثوق، لكن ثقته لا تنتقل إلى الناقل. تبدأ هوية الخادم فقط عند نجاح المصافحة الجديدة تحت المرتكزات التي قبلتها السياسة المحلية.