الخلاصة

  • تصنف المراجعة 03 كل مرجع نمطي في واحدة من أربع حالات: Malformed أو Unresolved أو Failed أو Verified؛ فسلامة الصياغة ودخول المرجع ضمن نطاق التوقيع لا يثبتان ارتباطه بالمحتوى المشار إليه.
  • لا تتحقق حالة Verified إلا باختيار سياق بصمة واحد يجيزه الملف المستهلك، والحصول على القطعة، وتنفيذ طريقة الإنشاء المحددة، ثم المقارنة في التمثيل المطلوب.
  • تظل صحة التوقيع، وهوية المصدر وصلاحيته، وإيصال SCITT، وتقييم القطعة، وقرار السماح بالفعل طبقات إثبات مستقلة.

اقتراح جديد لا معيار مكتمل

نشر Steven Mih وAnton Sokolov في 5 سبتمبر/أيلول 2026 المراجعة 03 من مسودة Canonical Payload Binding: A Signed Statement Construction Profile. يسجلها Datatracker بوصفها Internet-Draft فردية نشطة. ويذكر المؤلفان SCITT باعتباره مجموعة العمل المستهدفة، لكن الصفحة لا تعرض مساراً رسمياً في IETF ولا مسؤول AD ولا قرار تبنٍّ ولا إجماعاً. ويمكن للنص أن يتغير أو تحل محله مراجعة لاحقة أو تنتهي صلاحيته.

هذه الحدود ليست هامشاً قانونياً، بل جزء من الخبر. فلا يوجد إعلان عن تشغيل خدمة أو اعتماد منتج. الجديد هو أن المراجعة تحول غموضاً متكرراً في أنظمة التحقق إلى عقد قابل للتدقيق. مقارنة بالإصدار -02، تفصل المراجعة آليات CPB المحايدة عن تنسيقات الحمولة، وتعرّف المرجع النمطي كنموذج معلومات من أربعة أعضاء، وتسمح لملف الحمولة بتحديد وسيلة النقل الخاصة به، مع إبقاء cpb-refs خياراً في رأس COSE المحمي.

كما تتخلى المراجعة عن سجل عالمي لأنواع القطع داخل CPB. على الملف المستهلك أن يحدد، بمرجع معياري ثابت، الأنواع وسياقات البصمات المقبولة. ويفصل النص بين نمط Full-Payload في RFC 9943 ونمط Hash Envelope في RFC 9995، ويحظر الجمع بين وسيلتي نقل للمرجع في البيان الموقّع نفسه، ويقدم أربع نتائج لا يجوز دمجها في حقل نجاح واحد.

أربع حالات لمسار إثبات واحد

Malformed تعني أن المرجع لم يجتز القبول البنيوي. ربما غاب عضو إلزامي، أو استُخدم نوع CBOR غير صحيح، أو تجاوز الحجم أو العدد الحد المسموح، أو تكررت مفتاح أو رباعية، أو ظهر مفتاح غير معروف في الخريطة المغلقة. في cpb-refs لا تعد المفاتيح خارج 1 إلى 4 امتدادات يمكن تجاهلها. وإذا كانت خانة واحدة مشوهة، فلا يصح إنقاذ خانة أخرى من الرأس نفسه وإعلانها Verified؛ ومع ذلك يمكن الإبلاغ عن نتيجة التوقيع بصورة منفصلة.

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

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

Verified تتطلب إغلاق المسار: سياق مسموح، وقطعة جرى الحصول عليها، وقواعد صحيحة لاختيار الحقول واستبعادها، وcanonicalization، وفصل للنطاق عند اشتراطه، وترميز للـ preimage، وحساب للبصمة، وتمثيل للناتج، ثم مساواة. والنتيجة محدودة عمداً: هذه القطعة مرتبطة بهذا المرجع ضمن هذا السياق. لا تقول إن القطعة صحيحة أو حديثة أو آمنة أو قابلة للاستخدام.

اسم الخوارزمية لا يحدد السياق

لا يكفي قول “SHA-256”. فسياق البصمة يشمل الحقول الداخلة والمستبعدة، وخوارزمية canonicalization، وفصل النطاق إن وجد، وترميز preimage، وتمثيل الناتج. وقد تبدو سلسلتان سداسيتا عشرياً متماثلتين، لكنهما لا تنشئان وصلة إثبات ما لم تتوافق بقية طريقة الإنشاء.

يبدأ اختيار السياق من type ومن purpose عند الحاجة. إذا سمح الملف بسياق واحد فقط لنوع معين، يمكن غياب purpose؛ وإذا حضر وجب أن يطابق. أما عند السماح بعدة سياقات، فيجب أن يحمل كل منها purpose مختلفاً وغير فارغ، وعلى المرجع أن يختار. غياب المطابقة أو وجود أكثر من مطابقة يقود إلى Unresolved.

لا يحق للمحقق أن يحسم الاختيار بأول عنصر في قائمة، أو بطول البصمة، أو بهيئة الحمولة، أو بعادة متوارثة في مكتبة، أو بلقطة لسجل لم يشر إليها الملف معيارياً. قد تعرف المكتبة كيف تنفذ JCS وفق RFC 8785، لكنها لا تعرف تلقائياً الحقول التي قررت المؤسسة استبعادها ولا نسخة الملف التي تمثل سلطتها الحالية.

وينطبق الأمر ذاته على معرف مشتق تحمله الحمولة. تصفه المسودة بأنه إرشادي. يجب إعادة حسابه بعد تطبيق مجموعة الاستبعاد المعيارية وكل التحويلات المطلوبة. نسخ قيمة المنتج إلى عمود محلي اسمه “verified” لا يضيف ملاحظة مستقلة؛ إنه يكرر الادعاء نفسه.

وسيلة نقل واحدة تمنع سلطتين متنافستين

يختار الملف إما cpb-refs في الرأس المحمي وإما وسيلة نقل يعرفها داخل الحمولة. ولا يجوز أن يظهرا معاً حتى إن أشارا إلى قطع مختلفة. عند العثور على الاثنين، يعلن المحقق العارف بالملف عدم المطابقة؛ ولا يجمع القائمتين ولا يفضل ما حلله البرنامج أولاً.

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

في صيغة الرأس، لا يوجد cpb-refs إلا في الرأس المحمي. تضم المصفوفة من مرجع واحد إلى 64 مرجعاً. وتربط كل خريطة مغلقة مفاتيح صحيحة بـ type وpurpose الاختياري وdigest_alg وdigest ضمن حدود للحجم والعدد. يجب اكتشاف المفاتيح المكررة قبل تحويل CBOR إلى نموذج قد يسقطها. ولا تقبل القواعد سياسات أول قيمة أو آخر قيمة أو نجاحاً جزئياً أو وزناً أعلى للتكرار.

يقيد CDDL نموذج البيانات ولا يفرض تسلسلاً واحداً لبايتات CBOR. قد يثبت متجه اختبار بايتات معينة من أجل إعادة الإنتاج، لكن المحقق المطابق لا يرفض ترميز CBOR صالحاً آخر لأنه يختلف عن الـ fixture. وهذه زاوية تختلف عن المقال السابق حول تعدد ترميزات CBOR: السؤال هنا هو ما الذي يلزم لتحويل مرجع مقبول إلى ربط خارجي مثبت.

الحصول على القطعة والتمثيل رقابتان منفصلتان

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

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

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

التوقيع والمصدر والإيصال لا يجيب بعضها عن بعض

وجود cpb-refs في الرأس المحمي يجعل سلامته ضمن ما يغطيه توقيع COSE الصحيح. لكنه لا يثبت أن المفتاح مخول للحديث باسم المصدر المزعوم. لذلك تفصل المراجعة بين Signature-Valid وIssuer-Authenticated؛ والثانية تعتمد على سياسة المؤسسة بشأن المفاتيح والهوية.

قد يكون البيان Signature-Valid بينما يحتوي مرجعاً Unresolved أو Failed. وفي الاتجاه الآخر، لا تصلح مساواة البصمة توقيعاً باطلاً ولا تثبت هوية الكاتب. ينبغي لواجهات API وسجلات التدقيق أن تعرض نتيجة التوقيع ونتيجة كل مرجع كحقول مستقلة، لا كلون موحد.

أما إيصال SCITT فيثبت واقعة أخرى. تتيح RFC 9943 لخدمة شفافية تسجيل البيان وإصدار receipt تحكمه بنية بيانات قابلة للتحقق. والاعتماد عليه يتطلب فحصه تحت مفتاح موثوق للخدمة وقراءة معرف VDS في رأس الإيصال المحمي. التسجيل لا يجلب القطعة المشار إليها ولا يحول Unresolved إلى Verified.

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

كلمة «محمي» لا تعني سرياً

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

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

طلب IANA ليس تخصيصاً

تطلب المراجعة 03 إنشاء سجل لخوارزميات canonicalization وتسجيل معامل COSE باسم cpb-refs. هذه طلبات في مسودة، وليست دليلاً على أن IANA أنشأت القيم. على أي تجربة أن تثبت المراجعة والقيم المؤقتة وخطة الانتقال.

يوفر مبدأ Heng Lu حول الحد الأدنى من المواصفة الأولية معياراً مناسباً هنا. لا تحتاج الطبقة المشتركة إلى أكثر من واقعة قابلة لإعادة الإنتاج: طُبق سياق معلن على قطعة جرى الحصول عليها، فأنتج نتيجة مقارنة محددة. يمكن للملفات اللاحقة والسلطات المحلية أن تقرر المعنى والحداثة والاستخدام. وتصبح الشفرة العاملة حجة حين تحفظ البايتات والاختيارات والإيصالات التي تمكّن طرفاً آخر من تكرار النتيجة.

الحدود وعدم اليقين

لا يدعي هذا التحليل تبني IETF للمسودة، ولا إجماع SCITT، ولا إجراءً من IANA، ولا دعماً منتجياً أو نشراً عملياً. أمثلة الملحق ليست برهاناً على التشغيل البيني العام. ولم نختبر خدمة أو مكتبة أو سجلاً أو حادثة أو استغلالاً أو أداء أو انتشاراً.

كما لا تجعل canonicalization الحمولة صحيحة أو آمنة. الحالات الأربع إثبات محدود. التوقيع والهوية والإيصال والربط والتقييم والقرار والأثر المشاهد تبقى منفصلة لأن لها سلطات وعواقب مختلفة.

المصادر