الخلاصة
- نشرت في 5 سبتمبر 2026 مسودة Internet-Draft فردية تختبر كل تركيبات ست حريات ثنائية في ترميز CBOR على كائن COSE_Sign1 طوله 165 بايتاً.
- أنتجت التركيبات 64 سلسلة بايتات و64 قيمة
data-hashمختلفة من دون تصادم، بينما بقيتSig_structureواحدة بطول 109 بايتات وظل التوقيع صالحاً في جميع الحالات. - لم يرفض محلل CBOR المستخدم أي إدخال. وعند فك الترميز ثم إعادته، تحولت 31 صيغة بصمت إلى بايتات الشكل الابتدائي A.
- أعاد تشغيل مستقل للبرنامج المنشور، باستخدام نسخ مطابقة في البصمة للملفات المصدرية، إنتاج A والأرقام 64 و0 و31 نفسها.
- لا يثبت القياس تزوير توقيع أو حادثة تشغيلية أو قراراً من IETF. إنه يفرض تحديد البايتات التي يشير إليها المعرّف والاحتفاظ بالقدرة على إعادة إنتاجها.
التوقيع والاسم لا ينظران إلى الشيء نفسه
يتحقق توقيع COSE_Sign1 من بنية محددة. فوفق RFC 9052، تُبنى Sig_structure من السياق والرأس المحمي والبيانات الخارجية الموثّقة والحمولة. ولا تدخل كل خيارات تمثيل حاوية CBOR الخارجية في هذه البنية.
أما data-hash الذي تتناوله مسودة القياس فيحسب على سلسلة البايتات المنقولة كاملة. ويمكن استخدامه عنواناً دقيقاً للبيان أو مفتاحاً للبحث عنه. لذلك قد يتفق نظامان على القيم المفكوكة وعلى صحة التوقيع، ويختلفان مع ذلك في المعرّف إذا احتفظ كل منهما بتمثيل مختلف.
لا يوجد تناقض تقني. التوقيع يضمن ما يقع داخل نطاقه، والتجزئة تميّز البايتات التي قُدمت لها. ويبدأ خلل الحوكمة عندما تُستخدم مساواة المعنى دليلاً ضمنياً على مساواة البايتات.
ستة مفاتيح تفتح 64 تمثيلاً
تبدأ التجربة بالكائن A ذي 165 بايتاً ولا تغيّر أي قيمة داخله. يتبدل وجود وسم CBOR رقم 18، ويصبح طول المصفوفة الخارجية محدداً أو غير محدد، وكذلك خريطة الرأس غير المحمي. ثم يُخرج كل من الرأس المحمي والحمولة والتوقيع كسلسلة واحدة أو على أجزاء.
تعطي الخيارات الثنائية الستة 64 تركيباً. يسجل ملف النتائج المنشور سلاسل يتراوح طولها بين 164 و170 بايتاً، ولكل منها SHA-256 مختلف ولا توجد تصادمات. ومع ذلك لا توجد إلا Sig_structure واحدة من 109 بايتات، ولهذا ينجح التوقيع نفسه في كل تركيب.
والعدد 64 ليس حداً أعلى. لم تختبر التجربة أطوالاً بديلة لترميز الأعداد الصحيحة ولا ترتيبات مختلفة لمفاتيح الخرائط. يبيّن RFC 8949 أن فضاء تمثيل CBOR أوسع. ومن ثم لا تكفي قائمة تحظر الأشكال المكتشفة كي تثبت أنها أغلقت الفئة كلها.
نجاح المحلل قد يمحو نسخة الاستلام
قُبلت المدخلات الـ64 جميعاً. وفي 31 حالة أعطت دورة القراءة ثم الكتابة بايتات A تماماً. حصل التطبيق على كائن صالح ولم تصله إشارة تخبره بأن الصيغة التي وصلت عبر الشبكة لم تعد موجودة.
يمكن عندئذ لخدمة أن تستقبل B، وتنشر hash(B)، ثم تفك B ولا تخزن إلا A الذي أعادته المكتبة. تظل قادرة على التحقق من التوقيع لاحقاً، لكنها لا تستطيع حساب hash(B) من نسختها. وإذا كانت التجزئة فهرساً أو مفتاح إزالة تكرار أو موضوع تصديق آخر، ينفصل الاسم العام عن الدليل المحفوظ.
لا تعني كلمة «بصمت» أن المحلل خبيث؛ فقد يكون الإخراج المنظم سلوكه المقصود. كما لم تفحص التجربة أي Transparency Service عامل. ما تثبته فقط هو أن نجاح التحليل ليس إيصالاً بحفظ بايتات الإدخال.
إعادة إنتاج مستقلة مع حدود معلنة
نشر صاحب المسودة المتجه الابتدائي والنتائج وبرنامج التوليد. وبعد تعذر الوصول إلى عنوان GitHub الخام، جُلب الملف نفسه عبر Contents API وشُغّل في بيئة Python مؤقتة على نسختين من JSON تطابقت بصماتهما مع المصدر المنشور.
أعيد بناء A بايتاً ببايت عند SHA-256 8595e4a4c8b93e7b1b7b798dc302a2b7d2890021f7eff372d79b32f78867e4ac، وعاد البرنامج بـ64 تجزئة مختلفة وصفر رفض و31 عملية تطبيع. استخدمت الإعادة cbor2 5.7.1، بينما تسجل المسودة 6.1.3 على CPython 3.13 وmacOS arm64. يساند التطابق النتيجة المركزية، لكنه ليس مسحاً شاملاً لقابلية التشغيل البيني.
ويصنف Datatracker الوثيقة مسودة فردية من دون تأييد IETF أو مكانة رسمية أو مسار RFC أو Area Director مسؤول. وتقول المسودة إنها لا تحدد حكماً معيارياً. لا توقيع مزوراً ولا تصادم تجزئة ولا بدائية تشفير مكسورة ولا حادثة منشورة في نظام حي.
عبارة «كما سُجلت» ما زالت رأياً في النقاش
وصل القياس إلى Last Call الخاصة بـملف CCF لإيصالات COSE. وفي رسالة بتاريخ 5 سبتمبر، أيد Nicholas Templeman تقدم الملف واقترح ربط data-hash بالبايتات كما سُجلت، لا بأي إعادة تسلسل. ووصف الملاحظة صراحة بأنها غير معطِّلة.
هذه مساهمة مشارك وليست صياغة معتمدة أو إجماعاً من IETF. وما زالت مسودة SCITT Reference APIs وملف CCF وثيقتي عمل. أما RFC 9943 فيحدد بنية SCITT المنشورة وأدوار البيانات الموقعة والتسجيل والإيصالات، لكنه لا يحسم تلقائياً مدخل هذه التجزئة اللاحقة.
وتوجد أيضاً مسودة فردية أسبق هي Canonical Payload Binding تصف خيار as-transmitted: لا تطبيع، وسلسلة البايتات الدقيقة هي المدخل. أما jcs-n وcde-n فموسومان Withdrawn. يقيس العمل الجديد فئة تتعامل معها تلك الفكرة، لكنه لا يجعلها معياراً.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات

