الخلاصة

  • كان حقل Replay Prevention ذي 64 بت اختيارياً لكل SA؛ وكان SPI يختار حالة معالجة يوجد فيها الحقل أو يغيب.
  • يبدأ العداد من 1 ولا يجوز أن يلتف تحت المفتاح نفسه، ويختار كل مستقبِل نافذة محدودة مع ضمان ألا يقبل القيمة نفسها مرتين.
  • يثبت HMAC صحيح ورقم غير مشاهد قابلية القبول محلياً تحت SA مشتركة، لا هوية مرسِل multicast أو زمناً عالمياً أو تسليماً أو تفويضاً أو نتيجة تطبيق.

قد تكون حزمة IP ذات مصادقة صحيحة نسخة كاملة من حزمة قديمة. يظل MAC صحيحاً لأن البايتات لم تتغير. قدّم RFC 2085 حلاً ضيقاً: إدخال عداد في المادة المصادَق عليها وحفظ المستقبِل ما يكفي من التاريخ لرفض قيمة سبق قبولها.

كان SPI يحدد وجود العداد

وُضع الحقل الاختياري بين SPI وAuthentication Data. عند تعطيل replay prevention تأتي بيانات المصادقة بعد SPI مباشرة. وفي RFC 1826 يستخدم المستقبِل SPI للعثور على SA أحادية الاتجاه وخوارزميتها ومفتاحها ونمطها وحالتها. إنه محدد لعقد معالجة، لا هوية بشرية.

يبدأ العداد من 1 ويتصاعد، ويجب استبدال المفتاح المشترك قبل الالتفاف عند 2^64. وإذا حضر الحقل دخل في HMAC؛ فلا يستطيع من لا يملك المفتاح تغيير رقم قديم إلى جديد مع إبقاء المصادقة. ومع ذلك تبقى المصادقة والجِدّة اختبارين: يربط HMAC الحزمة والرقم بالسر، بينما يقرر تاريخ المستقبِل إن كانت القيمة المصادَق عليها ما تزال مقبولة.

التصاعد لا يعني الوصول بالترتيب

سمح RFC بالحزم الخارجة عن الترتيب وترك عمق النافذة للتنفيذ. أما الشرط الثابت فهو ألا تكون أي قيمة مقبولة قد قُبلت من قبل.

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

النافذة سياسة محلية للمستقبِل وليست ساعة عالمية. يمكن لمستقبِلَين رؤية ترتيب مختلف واختيار عمق مختلف. الفجوة لا تثبت الفقد، والتأخر لا يثبت الهجوم، وقبول A لا يثبت قبول B. الإيصال الدقيق يقول فقط: في هذه SA وهذه الحالة لم تُقبل هذه القيمة المصادَق عليها من قبل.

أزالت SA المشتركة في multicast نسب المرسِل

ذكر RFC 2085 حدّه صراحة: إذا شارك عدة مرسلين SA واحدة إلى وجهة multicast فلا ينبغي تفعيل replay protection. وإذا كانت مطلوبة فينبغي أن تكون لكل مرسِل SA مستقلة.

لا يتوقف HMAC عن العمل؛ يستطيع كل حامل للسر حسابه. المفقود هو مالك العداد. المرسلون المستقلون الذين يبدأون من 1 يتصادمون فوراً. قد يكون كل عداد محلي سليماً بينما يكرر التدفق المجمع القيم. لم تحدد الوثيقة منسقاً متعدد المرسلين.

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

حافظ RFC 4302 لاحقاً على هذا الحد، مع جعل Sequence Number إلزامياً وإضافة ESN منطقي من 64 بت. يوضح ذلك التطور ولا يعيد كتابة صيغة RFC 2085 التي كانت ترسل الحقل الاختياري ذي 64 بت مباشرة.

أثبت MAC المشترك حيازة السر لا المتحدث الوحيد

حذر RFC 1826 من أن حامل المفتاح المتماثل يستطيع أيضاً تزوير مرور يبدو صادراً عن مشارك شرعي آخر. يثبت HMAC الناجح حيازة السر وسلامة البيانات المغطاة، لكنه لا يميز أعضاء المجموعة.

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

يجب أن يفصل التدقيق بين البحث عن SA، وجود الحقل، الرقم، موضع النافذة، حالة seen، نتيجة HMAC، القبول، استلام الطبقة العليا، التفويض والأثر المثبت. لم يسمِّ العداد المرسِل؛ بل سمّى موضعاً في تاريخ قبول مستقبِل واحد.

المصادر