الخلاصة
- كانت المراجعة 03 توقع تجزئة سياق سابق يمكن إعداده قبل أي توقيع، ولذلك أمكن للمنسق جمع التوقيعات بترتيب عكسي.
- تلخص المراجعة 04 سجل التوقيع السابق كاملاً، بما فيه التوقيع الفعلي، وترفض الصيغ القديمة والمختلطة في الملف القوي.
- يثبت الرابط الجديد اعتماد دليل على دليل مكتمل، ولا يثبت ساعة موثوقة أو قراءة واعية أو تفويضاً نهائياً أو تنفيذاً أو أثراً.
ليست المشكلة أن التوقيعات مزورة. قد تكون كلها صحيحة، ثم تُرتب لتروي زمناً لم يحدث. هذه هي الثغرة التي اعترفت بها draft-schrock-ep-quorum-04 عند تقديمها في 6 سبتمبر كمسودة معلوماتية فردية.
في المراجعة 03 كان سياق كل موافق لاحق يتضمن prev_context_hash، أي تجزئة سياق الموافق السابق. واستنتج النص أن التوقيع اللاحق يثبت وقوعه بعد الموافقة السابقة ومع العلم بها.
لكن السياق ليس الدليل المكتمل. كان بوسع المنسق إنشاء السلسلة كلها، والحصول على توقيع آخر شخص أولاً، ثم الرجوع إلى البداية، وأخيراً عرض الحزمة وفق ترتيب القائمة. تبقى الحسابات صحيحة، بينما تبقى قصة الترتيب غير مثبتة.
نقل الاعتماد إلى التوقيع المكتمل
يأخذ الملف EP-QUORUM-SIGNOFF-CHAIN-v1 كائن JSON الكامل للتوقيع السابق، بما فيه السياق وحقول الإثبات والتوقيع الفعلي. ويضيف فاصل نطاق وبايتاً صفرياً إلى تمثيل JCS بترميز UTF-8، ثم يحسب SHA-256. تدخل النتيجة باسم prev_signoff_hash في السياق الذي يوقعه الشخص التالي.
يجب أن يخلو السياق الأول من الحقل. ويفشل الوضع القوي إذا كان الرابط الأول null، أو كان الملف مفقوداً أو مجهولاً، أو ظهر prev_context_hash القديم، أو اختلطت الصيغ، أو استبدل توقيع سابق بتوقيع صالح آخر. حتى التوقيع الصالح المختلف على السياق نفسه يغير التجزئة ويستوجب توقيعاً جديداً من الخلف.
النتيجة محددة: وفق افتراضات عدم تزوير التوقيع ومقاومة التجزئة، يعتمد الدليل اللاحق على دليل سابق كان قد اكتمل. لكنها لا تمنح وقتاً موثوقاً؛ فقيم issued_at بيانات مُدعاة. ولا تثبت أن الإنسان رأى قرار السابق أو العرض نفسه، أو فهم العمل، أو وافق بحرية، أو امتنع عن الختم الآلي.
لا يحق للحزمة اختيار السلطة التي تصدقها
تفحص البوابة شكل السياسة والتوقيعات والعمل المحدد والأدوار وتميز الأشخاص والمفاتيح والعتبة والترتيب والسلسلة والمهلة. لا يكفي توقيع شخص حقيقي مسجل إذا كان خارج الدور المطلوب. ولا يصنع مفتاح واحد مسجل باسمين شخصين. والمسار الناقص لا يمنح سلطة جزئية.
مع ذلك، يجب على الجهة المعتمدة أن تحصل على السياسة المتوقعة ودليل الموافقين من مصدر موثق خارج الحزمة. وإلا أصبحت البينة هي التي تعيّن قانونها. كما تقيد مسودة الإيصالات الأساسية معنى الهوية: يثبت التشفير أن مفتاحاً مسجلاً وقع، أما صلته بإنسان طبيعي فتأتي من التسجيل والتحقق من الهوية.
القبول التدريجي وسيلة لرفض الأخطاء مبكراً فقط. يعيد المنفذ حساب البوابة كاملة لأنه لا يثق بأن المنسق طبقها بأمانة. وحتى عند تحقق النصاب، تبقى النتيجة دليل موافقة لا قرار AUTHORIZED كاملاً. يليها قرار محلي وتنفيذ وقياس للأثر واستهلاك ذري يمنع إعادة الاستخدام.
ثلاث لغات برمجية ليست ثلاثة مدققين مستقلين
تتفق مراجع JavaScript وPython وGo على مجموعة اختبار واحدة في مستودع واحد. تشمل الحالات سلاسل قديمة وُقعت بالعكس واستبدال توقيع السابق. هذا دليل اتساق مفيد للفريق نفسه، لكنه ليس تطبيقاً مستقلاً ولا برهاناً شكلياً ولا اختبار تشغيل بيني ولا نشرًا فعلياً.
لا تطلب المسودة إجراء من IANA، ووجودها في Datatracker لا يعني إجماع IETF. قيمتها في التواضع: تصلح الحد الأدنى المشترك الذي يمكن للبايتات إثباته، وتترك سلطة المؤسسة وإدراك الإنسان وواقع التنفيذ في طبقات منفصلة قابلة للمراجعة.
المصادر
- سجل الوثيقة في IETF Datatracker
- EP-QUORUM، المراجعة 04
- EP-QUORUM، المراجعة 03
- EP Authorization Receipts، المراجعة 12
- RFC 8785: JSON Canonicalization Scheme
- Web Authentication، المستوى الثاني
- RFC 2119: كلمات المتطلبات
- RFC 8174: نطاق الأحرف الكبيرة والصغيرة
- Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
- On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
- Running-Code Primacy
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
