A Note on the Influence of a Zero Length Nonce on GCM and GMAC
تقدم هذه الورقة هجوماً بسيطاً يستعيد مفتاح التجزئة (hash key) لـ GCM وGMAC عند استخدام نون (nonce) بطول صفر، مما يتيح التزوير التعسفي، وهي ثغرة أمنية خاصة بمعيار ISO/IEC الذي يسمح بمثل هذه الـ nonces ولكن ليس نسخة NIST التي تفرض حداً أدنى للطول.
تخيل العالم الرقمي كمدينة صاخبة حيث كل رسالة تُرسل تشبه رسالة مختومة. وللحفاظ على سلامة هذه الرسائل، نستخدم أقفالاً خاصة تسمى التشفير، وللتأكد من عدم عبث أي شخص بها، نرفق معها ختماً شمعياً فريداً يسمى "الوسم" (tag). أحد أكثر الطرق شيوعاً للقيام بذلك هو نظام يسمى GCM (نمط غالوا/العداد). فكر في GCM كمكتب بريد عالي التقنية لا يقوم فقط بقفل رسالتك، بل يختمها أيضاً ببصمة رياضية. يتم إنشاء هذه البصمة باستخدام "مفتاح هاش" سري، وهو رقم خاص يعرفه المرسل والمستقبل فقط. إذا تطابقت البصمة عند وصول الرسالة، يعلم الجميع أنها أصلية. أما إذا كانت البصمة خاطئة، فيتم رفض الرسالة. يُستخدم هذا النظام في كل مكان، من شبكة الواي فاي الخاصة بك إلى الخدمات المصرفية الآمنة، لذا فإن الحفاظ على سرية مفتاح الهاش أمر بالغ الأهمية. فإذا سرق شخص سيء هذا المفتاح، يمكنه تزوير رسائله الخاصة، وخداع مكتب البريد ليعتقد أنها حقيقية.
تستكشف ملاحظة حديثة للباحث ياوبين شين ثغرة محددة للغاية وغير معتادة نوعاً ما في كيفية إعداد هذا النظام أحياناً. تركز الورقة البحثية على تفصيل صغير: الـ "nonce". في عالم GCM، الـ nonce هو بمثابة رقم تسلسلي فريد أو كلمة مرور لمرة واحدة يجب أن تكون مختلفة لكل رسالة تُرسل. إنه يضمن أنه حتى لو أرسلت نفس الرسالة مرتين، فإن القفل والختم سيبدوان مختلفين تماماً. تبحث ورقة شين فيما يحدث إذا استخدم شخص ما عن طريق الخطأ — أو عن قصد — "nonce بطول صفر"، وهو في الأساس صندوق فارغ لا يوجد بداخله شيء. وبينما تسمح بعض الكتب الرسمية لهذا النظام (تحديداً إصدارات ISO/IEC) بهذا الصندوق الفارغ، فإن إصدارات أخرى (مثل إصدار NIST) تمنع ذلك بصرامة، وتتطلب قدراً ضئيلاً من البيانات على الأقل. وتوضح أعمال شين أنه إذا اتبعت القواعد التي تسمح بالصندوق الفارغ، يمكن لمهاجم ذكي استخدام هذا الصندوق الفارغ لكسر الرياضيات الكامنة وراء الختم.
تُظهر الورقة خدعة ذكية حيث يمكن للمهاجم، بمجرد مراقبة رسالة مشفرة باستخدام هذا الـ nonce الفارغ، حل لغز رياضي معقد لاستعادة مفتاح الهاش السري. الأمر يشبه لو لاحظ لص أنك عندما تغلق باباً بفتحة مفتاح فارغة، فإن القفل يصدر صوتاً يكشف عن شكل المفتاح الرئيسي. بمجرد حصول المهاجم على هذا المفتاح، يمكنه تزوير أي رسالة يريدها. يمكنه إنشاء رسائل مزيفة بأختام مثالية وسيقبلها النظام كرسائل حقيقية. ويشير المؤلف إلى أن هذا الهجوم يعمل تحديداً ضد الإصدارات التي تسمح بالـ nonce الفارغ، ولكنه يفشل تماماً ضد الإصدارات التي تتطلب nonce غير فارغ. لا تكتفي الورقة باقتراح احتمال حدوث ذلك فحسب؛ بل تقدم طريقة واضهة وخطوة بخطوة توضح بالضبط كيف تنهار الرياضيات في هذا السيناريو المحدد، مما يثبت أن "الصندوق الفارغ" هو نقطة ضعف خطيرة في بعض عمليات التنفيذ.
ملخص تقني: ملاحظة حول تأثير طول الـ Nonce الصفري على GCM و GMAC
بيان المشكلة تتناول الورقة ثغرة أمنية محددة في نمط "غالوا/العداد" (GCM) وتخصصه (GMAC)، تنشأ من التعامل مع الـ nonces ذات الطول الصفري. وبينما يُستخدم GCM و GMAC على نطاق واسع كأنظمة تشفير موثقة ورموز مصادقة رسائل، فإن مواصفاتهما الأمنية تختلف بين المعايير. يفرض إصدار NIST صراحةً أن يكون الـ nonce بطول لا يقل عن بت واحد. في المقابل، تسمح إصدارات ISO/IEC (تحديداً ISO/IEC 9797-3 و ISO/IEC 19772) بأن يكون الـ nonce سلسلة نصية متغيرة الطول دون فرض حد أدنى للطول، مما يسمح بسلسلة نصية ذات طول صفري (يُرمز لها بـ {}). يبحث المؤلف في التبعات الأمنية لاستخدام هذا الـ nonce صفري الطول ضمن إطار عمل ISO/IEC.
المنهجية تقدم الورقة هجوماً لاستعادة المفتاح يستغل الخصائص الرياضية لدالة GHASH عندما يكون الـ nonce فارغاً. يعمل الهجوم تحت سيناريوهين: إعداد النص الصريح المختار (حيث يمكن للمهاجم الاستعلام من أوراكل التشفير باستخدام nonce صفري الطول) أو إعداد النص المشفر المعروف المحدد (حيث يلاحظ المهاجم تشفيراً صالحاً يقابل nonce صفري الطول).
يسير الهجوم كما يلي:
التهيئة: عندما يكون الـ N سلسلة نصية ذات طول صفري، يتم حساب متجه التهيئة Y0 كـ GHASH(H,{},{}). وفقاً لتعريف GHASH، ينتج عن ذلك 0n⋅H، والذي يساوي 0n.
توليد الوسم (Tag): يتم توليد وسم المصادقة T كـ T=GHASH(H,A,C)⊕EK(Y0). وبما أن Y0=0n، فإن EK(Y0) يصبح EK(0n)، والذي يُعرف بأنه مفتاح الهاش H.
صياغة المعادلة: تتبسط معادلة الوسم إلى T=GHASH(H,A,C)⊕H. وبما أن A (البيانات المرتبطة) و C (النص المشفر) معلومان، و T مرصود، تصبح هذه المعادلة عبارة عن متعدد حدود تكعيبي بدلالة المتغير المجهول H (مفتاح الهاش).
استعادة المفتاح: من خلال حل هذا المتعدد الحدود التكعيبي، يمكن للمهاجم استعادة مفتاح الهاش H.
التزوير: بمجرد استعادة H، يمكن للمهاجم تزوير نصوص مشفرة وأوسمة عشوائية لأي أزواج من البيانات المرتبطة والرسائل، بشرط إعادة استخدام الـ nonce صفري الطول. علاوة على ذلك، يمكن للمهاجم تزوير الرسائل باستخدام أي nonce تم رصده مسبقاً من خلال استيفاء العلاقة الخطية GHASH(H,A′,C′)⊕T′=GHASH(H,A1,C1)⊕T1.
تشير الورقة أيضاً إلى تأثير محتمل على السرية. إذا سمح مفتاح الهاش المستعاد للمهاجم بحساب EK(Y0′) لاستعلام مزور، وإذا حدث تصادم في العداد بين Y0′ وعداد مستخدم في تشفير رسالة أخرى، فقد يتمكن المهاجم من استعادة كتلة النص الصريح المقابلة.
المساهمات والنتائج الرئيسية
ناقل الهجوم: توضح الورقة هجوماً بسيطاً وعملياً يستعيد مفتاح الهاش السري H لـ GCM/GMAC باستخدام استعلام تشفير واحد فقط مع nonce صفري الطوال.
التباين في المعايير: يسلط العمل الضوء على اختلاف حرج بين مواصفات NIST و ISO/IEC. هذا الهجوم فعال فقط ضد التنفيذات التي تلتزم بمعيار ISO/IEC، والتي تسمح بـ nonces ذات طول صفري، وغير فعال ضد التنفيذات المتوافقة مع NIST التي تفرض حداً أدنى لطول الـ nonce قدره 1 بت.
التبعات: تؤدي استعادة مفتاح الهاش إلى كسر كامل لآلية المصادقة، مما يسمح بتزوير نصوص مشفرة عشوائية (في GCM) أو رسائل (في GMAC).
الأهمية والادعاءات تدعي الورقة أنها تبين أن السماح بـ nonces ذات طول صفري في مواصفات ISO/IEC يخلق ثغرة أمنية تقوض أمن GCM و GMAC. تكمن الأهمية في أن هذا الهجوم يستعيد مفتاح الهاش الداخلي، وهو مكون أساسي لأمن المخطط، باستخدام الحد الأدنى من البيانات (استعلام واحد).
يحافظ المؤلف على نبرة متواضعة فيما يتعلق بنطاق الهجوم، حيث يذكر صراحةً أنه ينطبق فقط على نسخة ISO/IEC ولا يمكنه العمل مع نسخة NIST. لا تدعي الورقة كسر التشفير الكتلي الأساسي أو الأمن العام لـ GCM عند استخدامه مع nonces بطول ≥1 بت. بدلاً من ذلك، تعمل كتحذير بشأن خيارات محددة للمعاملات في معيار ISO/IEC. يشير المؤلف إلى أن العديد من التنفيذات الواقعية تبدو وكأنها تقبل nonces ذات طول صفري، لكنه يمتنع عن تحديدها علناً لتجنب الاستغلال الفوري، مفضلاً إخطار الأطراف المتضررة بشكل مستقل.