الخلاصة
- تسجل RFC 9596 المعلمة المحمية
typذات الوسم 16 لتعلن نوع كائن COSE بكامله، بخلاف content type الذي يصف الحمولة أو النص المشفر. - لا تفسر مكتبة COSE معنى
typ، بل تمرره إلى التطبيق؛ ولا يصبح دفاعاً إلا عندما يربطه التطبيق بقواعد رفض وتحقق ومفاتيح وتفويض متمايزة.
يصل كائن COSE إلى الخدمة. التوقيع صحيح، وقيمة typ داخل الترويس المحمي هي القيمة التي توقعتها نقطة الدخول. أصبح من الممكن اختيار المعالج، لكن لم يثبت بعد أن الحمولة توافق العقد أو أن الموقّع مخول أو أن الأثر المطلوب مسموح.
تعالج RFC 9596 هذه اللحظة الضيقة. فهي تضيف إلى COSE وسيلة للتصريح بنوع الكائن الكامل، كي يميز التطبيق بين أصناف قد تظهر في البنية نفسها. لكنها لا تمنح مكتبة التشفير سلطة تفسير المعنى التطبيقي. المكتبة تسلم القيمة، والتطبيق يقرر ما يتوقعه وما يرفضه.
النوع إشارة إلى مسار، وليس تصريحاً بتجاوز بقية البوابات.
نوع الغلاف غير نوع ما يحمله
عرّفت RFC 9052 سلفاً ترويس content type ليصف البيانات الموجودة في payload أو ciphertext. أما typ في RFC 9596 فيصف كائن COSE الكامل. قد يستخدمان صيغة القيمة نفسها، لكنهما يتحدثان عن طبقتين مختلفتين.
يمكن لإيصال موقع ونتيجة إثبات وحالة أمنية أن تحمل كلها بيانات CBOR. معرفة صيغة الحمولة لا تقول أي عقد خارجي يجب تطبيقه. لكل فئة حقول إلزامية ومفاتيح وجمهور وآثار مختلفة.
تقبل typ عدداً صحيحاً غير سالب من سجل CoAP Content-Formats أو سلسلة نوع وسائط قد تتضمن معاملات. ينبغي حفظ التمثيل كما وصل. قد تعد السياسة رقماً واسماً نصياً مترادفين، بينما يسلكان في الشفرة مسارين مختلفين أو يثيران قاعدة توافق قديمة.
إذا حفظ التدقيق خانة واحدة اسمها «النوع»، فلن يستطيع لاحقاً إثبات هل فُحص الغلاف أم الحمولة أم كلاهما. الموقع والبايتات المحمية والسياق المتوقع أجزاء من الواقعة.
الحماية من التعديل لا تعني صدق الادعاء
تحظر RFC 9596 وجود typ في الترويسات غير المحمية. عندما تصادق بنية COSE على وعاء الترويس المحمي، فإن تغيير النوع في الطريق يبطل التحقق. وبذلك يرتبط التصريح بالكائن الذي وقّعه المرسل.
لكن المرسل يستطيع توقيع تصريح خاطئ. قد يختار اسماً قديماً، أو نوعاً صالحاً لمسار آخر، أو معاملات غير مقبولة، أو حمولة لا تطابق النوع. التوقيع يحفظ الخطأ بأمانة ولا يحوله إلى حقيقة.
لهذا تقول المواصفة إن تطبيقات COSE تتجاهل المعلمة، عدا تمريرها إلى التطبيق. وعلى التطبيق الذي يستخدم النوع الصريح أن يرفض القيمة غير المتوقعة، وأن يرفض غيابها عندما يوجبها السياق.
إذن معيار النجاح هو الرفض. إذا عرض النظام typ ثم استخدم معالجاً عاماً عند الخطأ، فقد وثّق رمزاً محمياً ولم ينفذ عزلاً.
لا تكفي أسماء مختلفة مع قواعد مشتركة
تستند RFC 9596 إلى حجة النوع الصريح في RFC 8725. يمكن الخلط بين نوعين من JWT، ووضع قيمة typ مميزة يقلل هذا الخطر. لكن الوثيقة نفسها تطلب أيضاً أن تكون قواعد التحقق للأنواع المختلفة متنافية.
لو استخدم نوعان من COSE المفاتيح نفسها بلا قيد غرض، والجمهور الافتراضي نفسه، ومجموعة claims واسعة اختيارية، ثم وصلا إلى التفويض العام نفسه، فقد تختلف التسمية وتبقى مساحة القبول مشتركة. يكفي مسار قديم يتجاهل النوع لنجاح الاستبدال.
ينبغي أن يختار النوع عقداً كاملاً: بنية COSE المسموحة، الترويسات المحمية المطلوبة، نوع الحمولة، claims الإلزامية، المصدر، الجمهور، غرض المفتاح، الصلاحية، منع الإعادة، نقطة الدخول والعمل المسموح. يجب أن يفشل الكائن الخاطئ قبل أن تمحو الشفرة المشتركة هويته.
وتحذر RFC 8725 من أن أنواعاً قديمة قد لا تنظر إلى typ. لذلك لا تثبت نسبة المرسلين الذين أضافوا الحقل أن الانتقال اكتمل. الدليل هو نسخة قاعدة الاستقبال ونجاح الاختبارات السلبية في إيقاف الكائن.
السجل ينسق الأسماء ولا يمنح الثقة
يسجل IANA المعلمة typ في سجل COSE بالوسم 16، وترتبط قيمها بسجلي Media Types وCoAP Content-Formats. هذه طبقة تنسيق تمنع التصادم وتمنح التطبيقات المستقلة معنى مشتركاً.
لا يعرف السجل هل فعّل تطبيق معين هذا النوع، ولا هل يجوز للمفتاح توقيعه، ولا هل المعاملات مقبولة أو الحمولة مطابقة. التسجيل يثبت حقيقة اسمية، لا قرار ثقة.
ينبغي فصل السجل العام عن سياسة القبول المحلية ذات النسخة، وعن إيصال معالجة الكائن بعينه. إذا تحولت قائمة «الأنواع المعروفة» إلى «الأنواع الموثوقة»، صار مسؤول الدليل صاحب سلطة لم تمنحه التطبيقات.
ذلك هو الحد الأدنى للمواصفة في موضعه الصحيح: الطبقة المشتركة تحدد المكان المحمي والصيغة، بينما يبقى القرار المستقبلي لمن يشغل المدقق. لا يصبح التبني واقعاً إلا حين تنفذ الشفرة القبول والرفض.
سجل قرار متعدد المالكين
ينبغي حفظ بصمة البايتات المستلمة، وبنية COSE، وبايتات الترويس المحمي، وقيمة typ وتمثيلها، ونوع الحمولة، ونقطة الدخول، والعمل، ومجموعة الأنواع المتوقعة، ونسخة السياسة، ونتيجة التشفير، وهوية المفتاح وغرضه، ونتيجة التحليل، وclaims اللازمة، والمصدر، والجمهور، والحداثة، ومنع الإعادة، وقرار التفويض، والمعالج والأثر.
التوقيع يثبت علاقة مفتاح ببايتات. النوع المطابق يثبت أن التصريح وقع في المجموعة المتوقعة. التحليل يثبت الشكل. الملف التطبيقي يثبت شروطاً دلالية. سياسة المفتاح تثبت اختصاص الموقّع. التفويض المحلي يسمح أو يمنع العمل. والنتيجة وحدها تصف ما حدث.
لا يحق لمكتبة COSE أن تتكلم باسم قرار الأعمال، ولا لسجل الوسائط أن يتكلم باسم المفتاح. حين يصدر كل مكوّن الإيصال الذي يملكه فقط، يبقى موضع الفشل مرئياً.
تنسجم هذه القاعدة مع طبقات الواقع في docs/heng-lu-note.md: الرمز لا يصنع المرحلة التالية بمجرد هيبته. تقدم RFC 9596 إشارة دقيقة، ويثبت الكود العامل أن الحدود المرتبطة بها نُفذت.
المصادر
- RFC 9596: معلمة
typفي COSE، وسجل RFC Editor، وسجل IETF Datatracker - RFC 8725: أفضل ممارسات JWT، وRFC 7515: JWS، وRFC 7519: JWT
- RFC 9052: بنى COSE، وRFC 8392: CWT، وRFC 8949: CBOR
- IANA، سجلات COSE، وسجل أنواع الوسائط، ومعلمات CoRE / صيغ CoAP
- Lu Heng، Running-Code Primacy، وMinimum Initial Specification، وReality Layers
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات

