الخلاصة
- في CTT يوقّع COSE أولاً ثم تُرسل بايتات حقل التوقيع المرمّزة إلى TSA؛ وفي TTC تُختم بايتات الحمولة أولاً ثم يأتي توقيع COSE ليغطي الحمولة والرمز معاً.
- الرمز
3161-ttcالمحمي يربط الختم بالحمولة داخل توقيع لاحق، لكنه لا يحوّل ختم الحمولة إلى دليل على وقت إنشاء ذلك التوقيع.
أظهر سجل المراجعة تاريخين وعلامة قبول. رمز زمني صادر يوم الأحد، وإلغاء لشهادة الموقّع يوم الاثنين، وتوقيع COSE سليم عند الفحص. صيغت النتيجة سريعاً: «التوقيع سابق للإلغاء». كان كل عنصر منفرد في السجل صحيحاً، أما الجملة الجامعة فلم تكن كذلك.
فقد يكون الموقّع قد طلب يوم الأحد من Time Stamping Authority، أو TSA، ختم هاش حمولة فقط. وبعد إلغاء الشهادة يوم الاثنين، يستطيع يوم الثلاثاء أن يضع الرمز القديم في ترويسة محمية وينشئ توقيع COSE جديداً فوق الترويسة والحمولة. يحمي التوقيع الجديد الرمز من التعديل، وتبقى استجابة TSA سليمة. لكن TSA لم تتلق يوم الأحد بايتات توقيع الثلاثاء. الدليل الأول يتعلق بوجود البيانات؛ أما الدليل الثاني فيتعلق بفعل توقيع وقع لاحقاً.
هذا هو الحد الذي يجعله RFC 9921 صريحاً عند إدخال TimeStampToken من RFC 3161 في COSE_Sign وCOSE_Sign1. لا يضيف المعيار تاريخاً عاماً إلى «الوثيقة». بل يعرّف ترتيبين مختلفين، ومدخلين مختلفين لـ MessageImprint، وخلاصتين مختلفتين لا يجوز استبدال إحداهما بالأخرى. وتحذر اعتبارات الأمن فيه من قبول توقيع أُنشئ بعد إلغاء المفتاح اعتماداً على ختم قديم للحمولة وحدها.
ما الذي رأته جهة الختم بالفعل؟
في COSE, Then Timestamp أو CTT، يُنشأ توقيع COSE أولاً. بعد ذلك يُهشَّر حقل signature المرمّز بـ CBOR في COSE_Sign1، أو حقل signatures المرمّز بـ CBOR في COSE_Sign، ويُرسل الهاش إلى TSA. يوضع الرمز العائد في معامل الترويسة غير المحمي 3161-ctt.
وبذلك تكون المادة التي تحملها TSA هي تمثيل بايتات التوقيع، ضمن نطاق الترميز الذي حدده RFC 9921. إذا تحققت الجهة المعتمدة من توقيع COSE والرمز وثقة TSA وسياستها، فلديها دليل محدود على أن التوقيع كان موجوداً عند وقت TSA. لهذا يستخدم المعيار CTT في التواقيع طويلة الأجل، عندما لا ينبغي لانتهاء الشهادة أو إلغائها لاحقاً أن يمحو واقعة توقيع أقدم ثبتت شروطها.
أما Timestamp, Then COSE أو TTC فيبدأ بالحمولة. يُرسل إلى TSA هاش بايتات حمولة COSE، لا غلاف bstr في CBOR ولا توقيع لم ينشأ بعد. يعود الرمز في معامل الترويسة المحمي 3161-ttc، ثم يوقّع COSE الترويسة المحمية والحمولة.
هذه بنية مفيدة وليست نسخة ناقصة من CTT. ففي استخدام الشفافية/التوثيق لدى RFC 9921 يمكن حفظ الرمز داخل البيان الموقّع قبل تسجيل الأجزاء الموقعة في سجل append-only؛ فلا يضيع الختم أثناء التسجيل. لكنه يظل دليلاً على الوجود السابق للحمولة. أما إدراج البيان في السجل، واتساق السجل، وهوية مصدر البيان، وتسلسل معلومات الإلغاء، وقبول الطرف المعتمد، فهي حقائق مستقلة لا تدخل تلقائياً مع الرمز.
كلمة «محمي» لا تقلب ترتيب الوقائع
تمنع الترويسة المحمية في TTC تغيير الرمز بعد توقيع COSE من دون كشف ذلك. وهي لا تعني أن الرمز السابق كان يغطي توقيعاً لم يكن قد وُجد بعد. الخلط بين الحماية اللاحقة والزمن السابق هو بالضبط ما يمنع RFC 9921 المدقق من فعله.
في CTT لا تكون 3161-ctt محمية، لأن الرمز لا يصل إلا بعد إنشاء التوقيع الذي يراد ختمه. لا يستطيع ذلك التوقيع السابق أن يحمي الرمز بأثر رجعي. لذلك ينبه المعيار إلى إمكان إزالة الترويسة أو استبدالها، ويطلب حماية سلامة رسالة COSE الموقعة كاملة أثناء النقل وفي التخزين.
هذه ليست تفصيلة تنسيق. يجب أن يستطيع سجل الحفظ إظهار هاش الكائن الكامل، ونمط CTT أو TTC، والبايتات الدقيقة المستعملة في البصمة، وشهادة TSA وسياستها، ودليل حالة الشهادة، ووسيلة صون الارتباط بين التوقيع والرمز. إذا فُقد رمز CTT في ترحيل أرشيفي، فالمعلومة الصحيحة هي فقدان دليل الوقت التاريخي، لا استمرار حالة قبول قديمة بلا أساس.
الختم جزء من سلسلة قرار لا بديل عنها
تختم TSA في RFC 3161 تمثيلاً مَهشوراً ولا تمنح حكماً على معنى البيانات. على العميل فحص حالة الرد، وهوية وشهادة TSA، والبصمة المطلوبة، وخوارزمية الهاش، وحداثة الرد عبر nonce أو مرجع محلي موثوق، وحالة شهادة TSA، وقبول السياسة. genTime هو وقت إصدار TSA للرمز؛ وتحد الدقة والكمون والسياسة من معنى ذلك الوقت.
ويضيف RFC 9921 فحص الربط الخاص بـ COSE: لا بد من إعادة حساب MessageImprint على البايتات التي يطلبها النمط بالضبط. CTT يطابق حقل التوقيع، وTTC يطابق الحمولة. وجود رمز CMS صحيح قرب الرسالة ليس نتيجة تحقق. ومن دون هذا الحساب لا يثبت ما الذي رأتْه TSA ولا أي ادعاء زمني يجوز أن تستخدمه السياسة.
تطبيق مبدأ Heng Lu عن الكود الجاري يغيّر موضع التدقيق من التاريخ المعروض إلى المسار المنفذ: أي نمط اختير، وما البايتات التي هُشرت، وأي دليل إلغاء وسياسة TSA استُخدما، ومن اتخذ قرار القبول، وما الأثر الذي شوهد. تحليل الصيغة، وصحة التشفير، وتفويض العملية، والنتيجة التشغيلية طبقات منفصلة.
Sources
- https://www.rfc-editor.org/rfc/rfc9921.html
- https://www.rfc-editor.org/info/rfc9921/
- https://www.rfc-editor.org/rfc/rfc3161.html
- https://www.rfc-editor.org/rfc/rfc9052.html
- https://www.rfc-editor.org/rfc/rfc5652.html
- https://www.rfc-editor.org/rfc/rfc5280.html
- https://www.iana.org/assignments/cose/cose.xhtml#header-parameters
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات

