الخلاصة

  • بينت RFC 3385 أن عبارة «قيمة فحص 32 بت» ناقصة؛ فكثير الحدود وطول الكتلة وتوزيع الخطأ وانحياز البيانات تغير احتمال مرور التلف من دون كشف.
  • اعتُبر CRC32C أساساً جيداً لـ iSCSI ضمن نموذج معلن للفساد العرضي، لا ضماناً تشفيرياً ولا احتمالاً صالحاً لكل بيئة.

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

صدرت الوثيقة في سبتمبر 2002 بصفتها Informational. قدرت الأخطاء غير المكتشفة لتوجيه اختيار iSCSI، ولم تكن البروتوكول الكامل أو شهادة منتج أو تقرير انتشار. أرقامها تنتمي إلى نماذج محددة، لا إلى كل الشبكات.

نقل iSCSI أوامر SCSI وبيانات التخزين فوق IP. كان يمكن لتلف صامت أن يصل إلى الجهاز كمحتوى يبدو صالحاً. وزاد الحجم من أهمية الخطر؛ ناقشت الوثيقة نقل بيتابايتات وطلبت أداء جيداً حتى كتل 8 KiB على الأقل.

كانت RFC 3347 قد شرحت لماذا لا تكفي قيمة فحص TCP. بعض الأخطاء يمكن أن تمر، والوكيل قد ينهي TCP ويعيد بناء رؤوس iSCSI ثم يعيد الحساب. احتاجت البيانات والأوامر والحالة إلى حد digest يخص iSCSI.

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

يحسب CRC زيادة بواسطة كثير حدود مولد. لا تمر كلمة خاطئة إلا إذا كان نمط الخطأ نفسه يملك بنية كلمة من الكود. لذلك تشكل المسافة الدنيا وتوزيع الأوزان المنطقة العمياء. اثنان وثلاثون بتاً تصف الكمية لا الهندسة.

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

كان CRC الخاص بـ IEEE 802 وCRC32C بعرض واحد، لكن CRC32C استخدم 0x11EDC6F41. يغير المولد قابلية قسمة الأخطاء والمسافة وسطح عدم الكشف، وليس مجرد تفصيل في التنفيذ.

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

قدرت الوثيقة CRC، في الشروط المدروسة، أفضل بنحو 12 ألف مرة من Fletcher و22 ألفاً من Adler للأخطاء المستقلة. ويمكن لأنماط قصيرة أن تتعادل داخل المجاميع الإضافية. أما البيانات الحقيقية المنحازة فتزيد نقاط الضعف.

وضعت الخلاصة Fletcher32 وAdler32 وIEEE-802 وCRC32C معاً: العرض نفسه، لكن المسافات والاحتمالات النموذجية مختلفة. الحماية وقلة الحساسية لانحياز البيانات والكتل الطويلة بررت اختيار CRC32C.

قيس ثمن العتاد أيضاً. استهلك CRC32C خلايا أكثر من CCITT-CRC32 في التركيب المذكور، لكنه بقي أقل من واحد في المئة من شريحة صغيرة نموذجية بمليون خلية. لم يختف الثمن؛ وُضع في حجمه الصحيح.

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

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

جمعت RFC 7143 بروتوكول iSCSI لاحقاً. القيمة الافتراضية لـ HeaderDigest وDataDigest هي None، لكن البادئ والهدف ينفذان CRC32C وNone. بعد التفاوض يغطي digest وحدات المرحلة الكاملة، وتسميه المواصفة غير تشفيري.

التنفيذ والعرض والاختيار والتغطية والنجاح واستمرار الحماية بعد iSCSI حقائق منفصلة. التوافق لا يثبت أن كل جلسة فعّلت الحماية.

كان حد الأمن واضحاً: من يستطيع تغيير البيانات يستطيع إعادة حساب الكود. يكشف CRC المصادفة، ولا يصادق المصدر أو الصلاحية. اجتياز الفحص ليس دليلاً ضد مهاجم نشط.

استخدمت RFC 3309 ثم RFC 4960 وRFC 9260 CRC32C في SCTP. يثبت ذلك إعادة الاستخدام، لا تطابق النموذج. تغير الأطوال والحقول والطبقات والاسترداد قيمة الدليل.

وثقت RFC 1071 قيمة فحص الإنترنت، وتناولت RFC 1141 وRFC 1624 التحديث التدريجي وصححت اللاحقة مشكلة. وصفت RFC 2151 Fletcher لـ UDP، وRFC 1950 Adler-32 لـ zlib. كلمة checksum عائلة، لا مستوى واحداً.

وحذرت الوثيقة من أن القنوات الأسرع تجعل الدفعة الزمنية أطول بالبتات. لا يثبت CRC أفضل الخطر منفرداً؛ يبقى ترميز الطبقات الدنيا ومعدل خطئها في سطح التحكم.

تحدد المواصفة الأولية الدنيا لدى Lu Heng القرار المشترك في كثير الحدود والتمثيل والتغطية. بعد ذلك تحسن التطبيقات عتادها وبرمجياتها. تبدأ الحرية حين تعني «تم التحقق» الشيء نفسه للجميع.

تفصل طبقات الواقع بين وجود الحقل وتنفيذ الخوارزمية والتفاوض والتغطية والنجاح واستبعاد الفساد العرضي وإثبات السلامة ضد الخصم. تختزل عبارة «قيمة فحص 32 بت» سبع حقائق ولا تثبتها.

لم تكن مساهمة RFC 3385 مجرد توصية بـ CRC32C. لقد حولت شعار السلامة إلى دليل محدود. كانت البتات غلافاً؛ وأعطاه كثير الحدود والكتلة والحمل والمسار والتهديد معناه.

المصادر