الخلاصة
- يعرّف مشروع مجموعة عمل CBOR النشط ثلاثة نطاقات للتسلسل: العام، وpreferred-plus، والحتمي. يضيف الحتمي إلى preferred-plus ترتيب عناصر الخريطة معجميًا، بايتًا فبايت، وفق الترميز الحتمي للمفاتيح؛ فيجعل الناتج قابلاً للتكرار من دون أن يمنح الخريطة ترتيبًا تجاريًا أو تنفيذيًا.
- تلزم الحتمية عندما تبني أطراف مستقلة بايتات التوقيع أو التجزئة أو عنوان المحتوى أو مفتاح الذاكرة المؤقتة. أما إذا انتقلت البايتات المحمية نفسها فلا حاجة عادة إلى إعادة بنائها، ولا يثبت تطابقها اكتمال المعنى أو حداثته أو الإذن به أو وقوع أثره.
بدأ العطل برسالة مقتضبة: «التوقيع غير صالح». أظهرت السجلات في الطرفين الكائن المفكوك نفسه. لكن المقارنة السداسية كشفت أن مكتبة استخدمت صيغة قانونية أطول لإحدى الوسائط وحافظت على ترتيب الإدراج، بينما استخدمت الأخرى أقصر الصيغ ورتبت المفاتيح. كان الناتجان CBOR صالحين، إلا أن التشفير رأى سلسلتين مختلفتين.
هذه هي فجوة التنسيق التي يعالجها draft-ietf-cbor-serialization-08. يحمل النص تاريخ 29 يوليو 2026، وما زال Internet-Draft نشطًا في مجموعة عمل CBOR وفي مرحلة Working Group Last Call، بينما تسجل صفحة Datatracker حالة IESG على أنها I-D Exists. ليس RFC نهائيًا ولا شهادة على التزام منتج بعينه. قيمته أنه يسمي ثلاثة عقود مختلفة كي يحدد البروتوكول أين تبقى حرية التمثيل وأين يجب أن تختفي.
يفصل CBOR بين نموذج البيانات والتمثيل الثنائي. قد تكون للقيمة الواحدة عدة ترميزات جائزة. تفيد هذه المرونة البث التدريجي والأجهزة المحدودة والتوافق مع منتجين مختلفين. ولا تتحول إلى خلل إلا حين تستخدم طبقة لاحقة البايتات كهوية أو مدخل تشفير، مع أن الأطراف لم تتفق إلا على القيمة.
ثلاثة عقود لا سلم فضائل
التسلسل العام هو الخيار النظري الافتراضي حين لا يذكر البروتوكول المبني على CBOR غير ذلك. لكل نوع يدعمه، يفترض أن يقبل المفكك جميع الترميزات المسموحة، ومنها الأطوال المحددة وغير المحددة. لكن المشروع يلاحظ أن هذا الاتساع غير مطبق على نطاق واسع. ولذلك لا تكفي عبارة «يدعم CBOR» لتوقع ما يقبله البرنامج العامل.
يضيّق preferred-plus حرية المُرمِّز: تستخدم الوسائط أقصر شكل، وتستخدم الأعداد العائمة أقصر تمثيل يحفظ القيمة بدقة، وتكون الأطوال محددة، ويطبق تمثيل NaN المبين، وتطبّع الأعداد الصحيحة والأعداد الكبيرة. وهو خيار عملي لمعظم البروتوكولات من دون فرض ترتيب الخرائط.
يبدأ التسلسل الحتمي من preferred-plus ويضيف قاعدة مركزية: ترتب عناصر الخريطة حسب الترتيب المعجمي للبايتات في الترميز الحتمي لمفاتيحها. إذا كان نموذج البيانات والقواعد المحيطة محددين، تستطيع مُرمِّزات مستقلة الوصول إلى البايتات نفسها.
هذه ليست درجات جودة متصاعدة. يحتفظ التسلسل العام بقدرات تحتاجها بعض التطبيقات، مثل الإخراج المتدرج بطول غير محدد، أو التمييز الدلالي بين عدد صحيح وbignum، أو حمل NaN غير تافه. تزيل الحتمية هذه الخيارات عمدًا مقابل قابلية التكرار. ينبغي اختيارها لحاجة قابلة للشرح، لا باعتبار كل تمثيل آخر عيبًا.
كما يختلف الإرسال عن القبول. لا تفرض عملية الفك الحتمي متطلبات إضافية على preferred-plus. يمكن للنظام أن ينتج صيغة ضيقة ويقبل صيغًا أوسع. أما رفض كل إدخال غير حتمي فهو سياسة أخرى تحتاج إلى نص واختبار وسبب من طرف إلى طرف، ولا تستنتج من قول المنتج إنه يصدر CBOR حتميًا.
هل تنتقل البايتات أم يعاد بناؤها؟
إذا وقّع المرسل بايتات حمولة CBOR ثم أرسل تلك البايتات نفسها مع التوقيع، يستطيع المستقبل التحقق مما استلمه. لا يحتاج إلى فك القيمة ثم ترميزها من جديد. تستخدم المسودة حمولة COSE مثالًا على هذا النمط. يحتاج التوقيع إلى اتفاق على السلسلة التي حماها، لا إلى جعل كل CBOR في المنظومة حتميًا.
يتغير الأمر عندما يبني الطرفان السلسلة كل على حدة. تُنشأ Sig_structure في COSE لدى الموقّع ثم يعيد المدقق إنشاءها. يكفي اختلاف عرض وسيطة أو تمثيل عدد عائم أو ترتيب مفتاح كي تفشل المطابقة رغم تساوي النموذج. يظهر الاحتياج نفسه في عناوين المحتوى ومفاتيح التخزين المؤقت وإزالة التكرار والبيانات القابلة لإعادة الإنتاج والمقارنات الثنائية.
لذلك تكون الحتمية محلية. اشتراطها لـSig_structure لا يجعل الحمولة المضمنة أو الغلاف الخارجي أو كل كائن مستقبلي حتميًا تلقائيًا. توسيع قاعدة صغيرة إلى سياسة منصة قد يلغي البث التدريجي ويكسر بيانات قديمة من دون فائدة.
يكشف رسم بسيط كثيرًا من الأخطاء: ما البايتات التي تعبر كما هي؟ ما القيم التي تفك ثم ترمز قبل عملية حساسة؟ قد يعيد وسيط أو بوابة ترميز حمولة موقعة، فيحافظ على القيم المرئية لكنه لا يبقى شفافًا عند الحد الذي يهم التوقيع.
ترتيب المفاتيح لا ينشئ أولوية
خريطة CBOR غير مرتبة في نموذج البيانات العام. يختار الترتيب الحتمي وضعًا ثنائيًا قابلاً للتكرار، لكنه لا يحدد أولوية العمل أو ترتيب التنفيذ أو العرض.
تغري أدوات الفحص بهذا الخطأ لأنها تعرض المفاتيح في قائمة. قد تحفظ لغة ترتيب الإدراج، وتعيد مكتبة ترتيب الاستلام، وتسلك بنية تجزئة ترتيبًا آخر؛ ومع ذلك تمثل كلها الخريطة ذاتها. إذا احتاج التطبيق إلى تسلسل، فعليه تمثيله بمصفوفة أو حقل أولوية أو قاعدة صريحة.
لا يحسم الفرز المفاتيح المكررة أو الوسوم المسموحة أو الحقول المجهولة أو تطور المخطط أو التكافؤ. قد ينتج preferred-plus ناتجًا حتميًا عندما لا توجد خرائط، لكن ذلك لا يجيب عما إذا كان وسم ما مأذونًا أو إذا كان غياب حقل يغير القرار.
قد تكون مساواة البايتات أشد من المساواة الدلالية، فيرفض التجزئة قيمتين يعدهما العمل متكافئتين. والعكس أن البايتات المتطابقة قد تحمل قيمة قديمة أو ضارة أو ناقصة. تطبيع النص والمجال العددي والقيم الافتراضية وتفسير الوسوم أجزاء من بروتوكول التطبيق.
ينبغي كذلك تجنب وصف «CBOR قياسي» من دون تحديد. يفرض الملف التطبيقي المنفصل في draft-mcnally-deterministic-cbor-17 قيودًا إضافية. لا يجوز نسبها ضمنيًا إلى مشروع مجموعة العمل. يحتاج التدقيق إلى اسم الملف ومراجعته.
التوقيع إيصال بايتات لا قرار سلطة
حين تتطابق إعادة البناء الحتمية وينجح التوقيع، نحصل على دليل مهم: خوارزمية ومفتاح محددان حميا سلسلة بعينها. لكنه لا يثبت أن السلسلة حملت كل الوقائع اللازمة للقرار.
لا يثبت التوقيع أن المخطط كامل، أو أن الوسم جائز في السياق، أو أن الزمن ما زال صالحًا، أو أن الموقّع ما زال مخولًا، أو أن حقلًا اختياريًا مهمًا لم يحذف، أو أن السياسة تسمح بالفعل. ولا يراقب ما إذا كان الفعل قد وقع.
ينبغي فصل نموذج المعلومات، ونموذج CBOR، والبايتات المسلسلة، والتحقق التشفيري، والتحقق الدلالي، والسياسة، والتفويض، ومحاولة التنفيذ، والأثر المرصود. لكل طبقة إيصال ومالك ومدة صلاحية. لا يجوز لمؤشر أخضر أن يستعير سلطة الطبقة التالية.
تصف CDDL أشكال بيانات CBOR، ويمكن لآلية التحكم في التسلسل التي تناقشها المسودة أن تلحق شرط ترميز بالشكل. لكن المخطط ليس كودًا عاملًا ولا تفويضًا. لا تكشف مطابقة CDDL نسخة المحلل التي عملت، أو سياسة التكرار، أو مرساة الثقة، أو نجاح معاملة الحالة.
توضح أطر COSE وCWT توزيع السلطة. يحمل الإطار بروتوكولات نهائية كثيرة ولا يعرف كل حاجاتها إلى البناء أو البث. حين لا يفرض الإطار مجموعة، توصي المسودة بـpreferred-plus، ثم تترك للبروتوكول المضمّن تحديد المطلوب. الإعداد الافتراضي للمكتبة لا يصلح عقدًا لأنه يتغير بين الإصدارات واللغات.
اختبار المفكك الموجود فعلًا
هناك فجوة قابلة للقياس بين السعة النظرية للتسلسل العام والممارسة. قد يرفض مكوّن سلاسل غير محددة الطول، ويقبل آخر عروضًا بديلة لم تختبر، ويحوّل ثالث bignum، مع أن الجميع يعلن دعم CBOR.
يجب أن تسجل الأدلة اسم المكتبة وإصدارها وبناءها وخياراتها، ووضع الترميز، ومجموعة الفك المقبولة، ومراجعة المخطط، وقيمة الإدخال، والبايتات الناتجة، والمتغيرات المقبولة والمرفوضة، والنتيجة اللاحقة. ينبغي للمتجهات الذهبية أن تعبر تطبيقات مستقلة.
ترسم الاختبارات السلبية الحد: ترميز عام قانوني لمستقبل يدعي القبول العام؛ صيغة غير قصيرة أمام بوابة preferred-plus؛ ترتيبات إدراج مختلفة؛ حدود الصحيح وbignum؛ الأطوال المحددة وغير المحددة؛ عروض الأعداد العائمة وNaN. لا يكفي «تم التحليل»؛ نسجل القيمة الناتجة ومسار السياسة.
اختبار المُرمِّز لا يثبت سعة المفكك، واختبار القبول لا يثبت حتمية المخرج. تخفي الدورة داخل مكتبة واحدة المشكلتين لأنها تكرر افتراضاتها. يبدأ دليل التشغيل البيني عندما تتبادل مسارات مستقلة أثرًا دقيقًا.
القيم الخاصة تكشف النموذج الخفي
يختار preferred-plus أقصر تمثيل دقيق للأعداد العائمة وquiet NaN التافه المحدد. لكن بعض المجالات تحفظ حمولة NaN أو تمنحها معنى. إذا كانت تلك البتات جزءًا من المعلومات، يحتاج البروتوكول إلى عقد تسلسل آخر.
وينطبق الأمر على نموذج يميز bignum عن الصحيح العادي، أو منتج يبدأ الإرسال قبل أن يعرف الطول النهائي. قد يكون general أو ملف خاص هو الصحيح. الخطر ليس الاستثناء بل بقاؤه خيارًا سريًا في مكتبة بدل أن يكون اتفاقًا نهائيًا.
تدعو قاعدة الحد الأدنى للمواصفة الأولية إلى أصغر سطح مشترك: حتمية حيث تعاد البايتات، وpreferred-plus للتبادل المعتاد حين تلائمه القيود، وgeneral أو ملف مسمى حيث تحتاجه التطبيقات. لا داعي لتجميد كل الخيارات المستقبلية لتثبيت مدخل توقيع واحد.
تضييق قناة خفية واحدة
يمكن للتمثيلات البديلة أن تحمل معلومات تختفي عند الفك. قد يغير مكوّن مخترق عروض الوسائط أو تقسيم العناصر غير محددة الطول. تقلل preferred-plus والحتمية هذا المجال وتجعلان الاختلاف غير المتوقع مرئيًا.
لكنها لا تمنع كل التسريب. يستطيع المهاجم اختيار قيم مسموحة أو أوقات أو وسوم، واستغلال الحشو في طبقة أخرى أو حجم المرور وتوقيته. النتيجة المنضبطة هي أن هذا البناء أصدر البايتات المتوقعة لمجموعة نماذج ثابتة، لا أن النظام خال من القنوات الخفية.
يمكن حفظ تجزئة البايتات والنموذج المطبع عند حدود حساسة مع ضوابط الخصوصية والاحتفاظ. إذا غير منتج حتمي تجزئته لنفس عينة الاختبار، نفحص الإدخال والإصدار والخيارات والبيئة. الاختلاف دليل للتحقيق لا حكم آلي بالاختراق.
إيصال يصمد أمام تغيير المكتبة
يربط السجل المفيد البروتوكول ومراجعته، والمجموعة المطلوبة عند كل حد، وملف نموذج CBOR، والوسوم وأنواع المفاتيح، وسياسة التكرار، والمكتبات وخياراتها، والمخطط، والإدخال، والبايتات أو تجزئة قابلة للاسترجاع، والمدخل التشفيري، ومصدر المفتاح، والتحقق، والمعنى، والسياسة، والتفويض، والمحاولة، والأثر.
كما يحدد أين تنتقل البايتات وأين تعاد. تكشف هذه الخريطة غالبًا بوابة تعيد ترميز حمولة موقعة، أو ذاكرة تخزن تجزئة كائن مفكوك، أو خدمتين تستخدمان قيمًا افتراضية مختلفة.
تبقى المسؤولية موزعة: مصمم البروتوكول يحدد الحد الثنائي؛ والهندسة تثبت الإرسال والقبول؛ والأمن يثبت المحلل والتشفير؛ وصاحب التطبيق يحدد المعنى؛ وصاحب السياسة يمنح الإذن؛ والتشغيل يثبت الأثر. يربط معرف معاملة محدود الإيصالات من دون دمج ادعاءاتها.
تسأل أولوية الكود العامل عند Lu Heng عن الإصدار والخيار اللذين عملا فعلًا. وتمنع طبقات الواقع البايتات الحتمية من استعارة سلطة المخطط، كما تمنع التوقيع من استعارة التفويض. تحل حتمية CBOR مسألة دقيقة: وصول مُرمِّزات مستقلة إلى السلسلة نفسها. لا أكثر.
المصادر
- CBOR Serialization Considerations، المراجعة 08
- سجل Datatracker لـCBOR Serialization Considerations
- تاريخ مراجعات CBOR Serialization Considerations
- CBOR Serialization Considerations، المراجعة 07
- RFC 8949: Concise Binary Object Representation
- RFC 9052: CBOR Object Signing and Encryption
- RFC 8392: CBOR Web Token
- RFC 8610: Concise Data Definition Language
- RFC 9413: Maintaining Robust Protocols
- ملف تطبيق Deterministic CBOR، المراجعة 17
- Lu Heng: Running-Code Primacy
- Lu Heng: Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
- Lu Heng: On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
