الخلاصة

  • تربط المراجعة 07 مفتاح cnf.jwk في Workload Identity Token بالطريقة والمسار والاستعلام والجمهور والرؤوس المختارة وملخص المحتوى ومعلمات التوقيع. إنها تصادق تمثيلاً محدداً للطلب ولا تمنح الإذن بالعملية.
  • عدم وجود nonce في مخزن محلي لا يثبت الجدة على مستوى العنقود. ولا يمكن للعميل اكتشاف حذف توقيع الرد إلا إذا طلبه داخل طلبه الموقع. الهوية والتوقيع والإعادة والتفويض والالتزام والنتيجة أدلة منفصلة.

طلب واحد وذاكرتان

يستقبل المدقق A طلباً صالحاً. الـWIT ضمن مدته، والمفتاح في cnf.jwk يتحقق من التوقيع، وContent-Digest يطابق جسم الرسالة، وwimse-aud يحدد الحمولة المستقبلة، والـnonce غير موجود في الذاكرة المحلية. يقبل A الطلب ويسجل القيمة.

بعد ثوان تصل البتات نفسها إلى المدقق B قبل انقضاء expires. لا يشارك B مخزن A، فيرى توقيعاً صحيحاً وnonce جديداً. النتيجتان صادقتان لأن كلاً منهما يصف نطاق ذاكرة مختلفاً.

تبقى مسألتان: هل يحق لهذا الأصل تنفيذ الفعل على هذا المورد؟ وهل التزم التطبيق فعلاً بتغيير الحالة؟ اختزال الإجابات كلها في authenticated=true يحول برهاناً محدوداً إلى سلطة لم يمنحها البروتوكول.

قُدمت draft-ietf-wimse-http-signature-07 في 20 سبتمبر 2026. يذكر رأسها أن المقصود Standards Track وأنها تنتهي في 24 مارس 2027. ليست RFC، بل Internet-Draft نشطة ضمن مجموعة عمل IETF؛ لا تثبت انتشاراً أو التزاماً إنتاجياً أو توافق منتج بعينه. وقائمة التنفيذ في الملحق دليل على تجارب جارية، لا تعداد لاعتماد حقيقي.

ما يدخل فعلاً في التوقيع

يبني WIMSE ملفاً فوق RFC 9421. يغطي الطلب بالضرورة @method و@path و@query. وعند وجود Content-Type أو Content-Digest أو Authorization أو Txn-Token أو Workload-Identity-Token يجب تغطيتها أيضاً. إذا وُجد جسم، يعيد المستقبل حساب Content-Digest على البتات المستلمة.

فالتوقيع على نص الملخص وحده لا يربط البرهان بالمحتوى. تمنح RFC 9530 الحقل معناه، ثم يغلق الحساب الجديد الحلقة. لذلك يجب أن يحفظ الإيصال قاعدة التوقيع المعاد بناؤها، وقائمة المكونات، ونتيجة حساب الملخص، لا مجرد عبارة أن التوقيع صالح.

تتضمن المعلمات created وexpires قصيراً وnonce عشوائياً والوسم wimse-workload-to-workload، ويضيف الطلب wimse-aud. لا يستخدم الملف معاملي keyid وalg المعتادين؛ فالمفتاح والخوارزمية يأتيان من cnf.jwk في الـWIT. ومع ذلك تبقى للسياسة المحلية سلطة رفض الخوارزمية في نطاق الثقة المعني.

إذا حملت الرسالة أكثر من توقيع بوسم WIMSE نفسه، يجب رفضها. الاختيار الصامت يسمح للمرسل والوسيط والتطبيق بالاستناد إلى تمثيلات مختلفة مع الادعاء بأن «التوقيع» اجتاز.

الحقل غير المغطى يظل قابلاً للتغيير. وإذا أعاد الوسيط التوقيع فإنه ينشئ ادعاء جديداً باسم أصل جديد، ولا يوسع بأثر رجعي تغطية التوقيع الأول.

الجمهور المنطقي بدل authority المتغيرة

لا يدخل @authority ضمن المجموعة الإلزامية لأن الوكلاء وموازنات الحمل التي تنهي TLS قد تعيد كتابته. ينقل WIMSE ربط المستقبِل إلى المعامل الموقع wimse-aud.

وهذا يفصل ثلاثة سجلات: هوية خدمة TLS وفق RFC 9525، وauthority التي تراها قفزة HTTP، والجمهور المنطقي للحمولة. قد تنجح القناة ويكون تعريف الجمهور واسعاً أكثر من اللازم. وقد يصح التوقيع ويرفضه المستقبِل بسبب الجمهور.

ينبغي أن يحفظ السجل اسم الخدمة المتوقع والهوية المقدمة ونقطة إنهاء TLS والجمهور المرسل وكيف فسره المستقبِل والوجهة النهائية. كلمة واحدة مثل «موثّق» تمحو المكان الذي تغير فيه المعنى.

إثبات حيازة المفتاح ليس تفويضاً

يتحقق المستقبل أولاً من الـWIT ثم من التوقيع بالمفتاح المرتبط. تثبت النتيجة أن حائز المفتاح الخاص الموافق كوّن المكونات المغطاة ضمن الشروط الزمنية والسياسية المقبولة.

لا تثبت النية، ولا الحيازة الحصرية داخل نسخة تشغيل واحدة، ولا تمنح دوراً تجارياً. والأهم أنها لا تأذن بالفعل. تضع المراجعة 07 نظام التفويض كله خارج النطاق وتفترضه شرطاً موثوقاً.

هذا يستدعي حداً عملياً. تسلّم طبقة المصادقة أصلاً وطلباً. أما أول مكوّن يعرف الفعل والمورد بعد كل التحويلات ويستطيع منع الأثر، فعليه مقارنة الأصل والفعل والمورد والسياق وإصدار السياسة.

يحفظ إيصال التفويض القاعدة والقرار والالتزامات والاستثناء والوقت. وإذا حولت البوابة كل WIT من نطاق ثقة إلى دور واسع، فقد أنشأ إعداد البوابة هذه السلطة. هو الذي يحتاج موافقة وسجل تغيير.

منع الإعادة له شكل شبكي

يقيدان created وexpires نافذة القبول، لكنهما لا يمنعان التقديم مرتين داخلها. يفيد الـnonce فقط إذا احتفظت ذاكرة بظهوره الأول. يسمح المشروع بمخزن إعادة ويوصي برفض القيمة التي شوهدت، لكنه لا يفرض مشاركة المخازن بين المدققين. كما لا يجعل المنع الصارم هدفاً مضموناً بسبب صعوبة مزامنة الحالة الموزعة.

إذن تعني «غير موجود» أنه غير موجود في هذه الذاكرة وضمن مدة احتفاظها. لا يعني أن عقدة أخرى أو إقليماً احتياطياً لم يقبله، أو أن سجلاً أقدم لم ينته، أو أن التطبيق لم ينفذ فعلاً مكافئاً بمعرف آخر.

قد يكون ذلك مقبولاً لقراءة idempotent. أما الخصم أو الإصدار أو الحذف فيحتاج حاجزاً تطبيقياً إضافياً: مفتاح idempotency أو قيداً فريداً أو سجل التزام. عبارة «حماية replay مفعلة» بلا نطاق المخزن ومدة الاحتفاظ وسلوك الاستعادة وصف ناقص.

قوة توقيع الرد تبدأ من العميل

يمكن للخادم توقيع الردود. لكن الضمان القوي يظهر عندما يضع العميل wimse-sign-response=true في معلمات طلبه الموقعة. إذا تعذر التوقيع، فلا يجوز للخادم أن يرسل نجاحاً عادياً غير موقع، وعلى العميل رفض الرد غير الموقع.

يحمل كل رد موقع wimse-req-nonce مطابقاً لـnonce الطلب. بذلك يرتبط التمثيل المغطى بهذا الطلب تحديداً، لا بمجرد مفتاح خادم ووقت قريب.

إذا لم يطلب العميل التوقيع، فلا تنتج سياسة الخادم الداخلية المقاومة نفسها للحذف. يستطيع وسيط إزالة التوقيع، وعلى العميل قبول الرد العادي. «الخادم يوقع» ادعاء قدرة؛ أما «العميل طلب وتحقق من رد مربوط بالـnonce» فهو إيصال معاملة.

حتى هذا لا يثبت النتيجة النهائية. قد يؤكد الرد استلام مهمة غير متزامنة تفشل لاحقاً. النتيجة تحتاج رصداً مستقلاً.

التفويض يأتي بعد آخر تحويل ذي معنى

تنهي الوسائط TLS، وتطبع الحقول، وتوجّه، وقد تعيد التوقيع. تغيير حقل مغطى يبطل التوقيع؛ أما غير المغطى فيمكن تغييره. إذا أجازت البوابة POST إلى مسار بينما يختار التطبيق الحساب من رأس غير موقع لاحقاً، وقع القرار مبكراً.

يربط الأثر الجيد نتيجة التوقيع الداخل، وسياسة التحويل، وهوية المعيد للتوقيع، وفروق التغطية، وقرار التفويض النهائي. ليس المطلوب تجميد HTTP كله، بل تحديد من يستطيع تغيير القيم التي تحدد الأثر.

تتكون السلسلة من ستة إيصالات: WIT وبصمة المفتاح؛ قاعدة التوقيع وملخص الجسم؛ nonce وهوية المدقق ونطاق الذاكرة؛ الأصل والفعل والمورد والسياسة؛ idempotency والتزام التطبيق؛ ثم رصد النتيجة. يمكن أن تختلف: توقيع صالح قد يكون إعادة، وطلب جديد قد يكون ممنوعاً، وفعل مأذون قد يفشل، والتزام قد يُعكس.

هذا الاختلاف يجعل المسؤولية قابلة للتحديد. الملحق أو ادعاء التوافق دليل قدرة. تقييم الكود العامل يتطلب طلباً ملتقطاً وقاعدة معاد بناؤها وقرار WIT وخريطة مخازن وسجل تفويض وانتقال حالة. وقد تتغير المسودة، لذا يجب تثبيت المراجعة وتوثيق الانحرافات المحلية.

المصادر