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

الآلية صغيرة، ويسهل الخلط بين أنماط فشلها وفقدان الحزم.

النص المشفر الصالح ليس نصاً حديثاً

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

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

قراءة إسقاط إعادة البث كفشل في فك التشفير تدفعك إلى النظام الفرعي الخطأ تماماً.

رقم تسلسل ونافذة

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

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

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

nstat -az | grep -i XfrmIn
ip -s xfrm state | head -n 30
wg show wg0 transfer

الحالة تنتمي إلى المفتاح، لا إلى المضيف

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

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

شخّص السبب قبل تعطيل أي شيء

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

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

ما لا يضمنه الفحص

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

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

مقالات ذات صلة