الخلاصة

  • يعبر Want-Content-Digest وWant-Repr-Digest عن ترتيب مفضل للخوارزميات، ولا ينشئان التزاما تفاوضيا. يجوز للطرف الآخر تجاهل التفضيل، أو اختيار خوارزمية أخرى، أو حذف حقل الملخص، من دون أن يصبح ذلك وحده خطأ في HTTP.
  • تحتاج واقعة السلامة إلى أربعة سجلات مستقلة: ما طلب، وما أعيد فعليا، وما هو كائن HTTP الذي يغطيه الحقل، وما انتهى إليه الحساب والقرار المحليان.
  • يقارن الملخص بايتات محددة. وهو لا يثبت هوية المرسل، ولا يمنح تفويضا، ولا يوفر السرية، ولا يحمي تلقائيا طريقة الطلب والعنوان ورمز الحالة وسائر البيانات الوصفية.

ترتيب الرغبات لا يعني قبول الطلب

تبدو واجهة الإعدادات حاسمة حين تضع SHA-512 في أعلى القائمة. لكن الحسم المرئي لا ينتقل وحده إلى الطرف المقابل. يعرّف RFC9530 لغة لإعلان الرغبة، لا مصافحة خفية تنشئ عقدا.

الحقلان Want-* قاموسان وفق Structured Fields. تسمّي المفاتيح الخوارزميات، وتعبر الأعداد الصحيحة عن ترتيب نسبي: 1 هو أدنى تفضيل، و10 أعلاه، و0 يعني أن الخيار غير مقبول. يتعلق Want-Content-Digest بمحتوى الرسالة، بينما يتعلق Want-Repr-Digest بالتمثيل المختار.

لا يمثل الوزن درجة قوة تشفيرية أو نتيجة فحص. وإسناد القيمة 10 لا يجبر الطرف الآخر على استخدامها. يمكن لمتلقي الحقل أن يهمله، أو يعيد خوارزمية غير مذكورة، أو يمتنع عن إرسال Content-Digest وRepr-Digest. ينص RFC9530 على أن عدم تلبية التفضيل ليس في ذاته خطأ بروتوكوليا.

يحق لتطبيق معين أن يضيف شرطا أشد: لا متابعة عند غياب خوارزمية مقبولة، أو رمز فشل محدد. لكن هذا الشرط ينتمي إلى عقد التطبيق. يعرض الملحق C احتمالات متعددة، منها اختيار بديل أقل تفضيلا، أو عدم دعم أي خيار، أو رد 4xx أو 5xx يحدده التطبيق؛ ولا يفرض حالة موحدة على الجميع.

ويختلف المعنى أيضا باختلاف اتجاه الرسالة. عندما يرسل الخادم Want-Content-Digest أو Want-Repr-Digest في استجابة، فهو يخبر العميل بما يريده في طلبات لاحقة. لا يقدم بذلك ملخصا لمحتوى الاستجابة الحالية. ظهور كلمة Digest في السجل لا يكفي لإثبات وصول دليل سلامة.

أربعة أوصاف لمعاملة واحدة

الوصف الأول هو التفضيل الصادر: اسم الحقل، الخوارزميات، وترتيبها. الثاني هو الدليل المشاهد: هل وصل Content-Digest أم Repr-Digest، وما الأعضاء التي احتواها، وهل كان في الرأس أم في المقطورة. الثالث يحدد النطاق: محتوى الرسالة أم التمثيل المختار. أما الرابع فيسجل قرار المتلقي: الخوارزمية المقبولة، والبايتات المحسوبة، والتطابق أو الاختلاف، وما فعله التطبيق.

يفصل هذا النموذج بين عبارات تبدو متشابهة. تفضيل SHA-512 لا يعني أن الخادم أعاده. وجود sha-256 لا يعني أن العميل أعاد حسابه. والتطابق لا يشرح ما الذي حُمي إن غاب اسم الحقل والكائن المغطى.

قد يكون قبول بديل أقل تفضيلا صحيحا تماما، وقد تسمح خدمة منخفضة المخاطر بالاستمرار من دون ملخص. المهم ألا تتحول المرونة إلى نجاح مبهم. عبارة «قُبل الغياب بموجب السياسة» أو «قُبل البديل» تحفظ القرار، في حين أن مؤشر «صالح» يمحو مستوى الضمان الحقيقي.

المحتوى والتمثيل ليسا الشيء نفسه

ترك مصطلح instance digest في RFC3230 قدرا من الغموض حول كائن الحساب. يفصل RFC9530 بين حقلين: يغطي Content-Digest المحتوى الفعلي لرسالة HTTP المحددة، ويغطي Repr-Digest كامل التمثيل المختار وفقا لدلالات HTTP.

يتضح الفرق في النقل الجزئي، لكنه لا يقتصر عليه. يمكن أن يملك المورد تمثيلات متعددة. يؤثر Content-Type وContent-Encoding في البايتات وفي تفسيرها، ولذلك لا يصبح ملف متاح على القرص هو الكائن الصحيح لمجرد سهولة الوصول إليه.

تحتاج أساليب تغيير الحالة إلى العناية نفسها. قد يحمل طلب PATCH وثيقة التعديل نفسها، بينما تتعلق الاستجابة بالتمثيل المختار للمورد بعد التغيير. ولا يمكن استخدام Content-Location وLocation كاسمين متبادلين لتعيين ما جرى تلخيصه.

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

ما تستطيع المكتبة حسابه ليس بالضرورة مقبولا

يسجل جدول IANA الحالي SHA-512 وSHA-256 كخوارزميتين Active. أما MD5 وSHA ونسخ UNIX sum وAdler-32 وCRC32C فتندرج ضمن Deprecated. يترك RFC9530 مجالا لبعض الخوارزميات المهملة في كشف التلف العارض عندما لا يوجد خصم، لكنه يمنعها في السياقات العدائية أو سياق التوقيع الرقمي.

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

من المفيد الفصل بين قائمة الخوارزميات المفهومة وقائمة الخوارزميات المقبولة. إذا ضمت الرسالة عضوا قويا وآخر مهملا، فقد يفحص مكون الخيار الأسهل بينما يفترض مكون آخر أن أعلى تفضيل قد احترم. لا تمنع المرونة الخوارزمية وحدها التخفيض أو الاستبدال؛ يتحدد الضمان بالعضو الذي تختاره السياسة المحلية فعليا.

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

توقيت المقطورة جزء من الدليل

يمكن وضع حقلي الملخص في الرؤوس أو المقطورات. تفيد المقطورة عندما يحسب المرسل القيمة أثناء البث، لكنها قد تسقط لدى وسيط، وقد تصل بعد أن يكون التطبيق قد استخدم المحتوى.

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

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

الملخص لا يوقع رسالة HTTP كاملة

يحصر RFC9530 الخاصية عمدا. لا يرتبط الملخص تلقائيا بطريقة الطلب أو URI الهدف أو رمز الحالة أو كل بيانات التمثيل. ولا يثبت هوية المرسل، ولا يجيز المعاملة، ولا يخفي المحتوى.

يسمح RFC9421 لتوقيع رسائل HTTP بتغطية حقل الملخص، لكن يجب اختياره صراحة ضمن قاعدة التوقيع، مع البيانات الوصفية ذات الصلة. وجود التوقيع والملخص جنبا إلى جنب لا يربطهما. كما يحتاج التوقيع إلى سياسة مستقلة للمفاتيح والزمن ومنع الإعادة.

يثبت عدم التطابق أن البايتات المحسوبة تختلف عن القيمة المقدمة، لكنه لا يحدد من غيّرها أو لماذا أو هل كانت العملية مأذونة. يحافظ هذا الحد على وضوح الأدوار: سلامة البايتات، وحماية النقل، والهوية، والتفويض، والتخزين ضوابط يمكن تركيبها حسب التهديد الفعلي.

المصادر وحدود الاستدلال

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