رموز مصادقة الرسائل
يستخدم رمز مصادقة الرسالة (MAC) مفتاحًا سريًا مشتركًا لإنتاج علامة قصيرة تتيح للمستقبل التحقق من سلامة الرسالة وأصالتها، وكشف أي عبث أو تزوير.
Definition
رمز مصادقة الرسالة هو بدائية متماثلة تنتج، عند إعطائها مفتاحًا سريًا ورسالة، علامة ذات طول ثابت بحيث لا يمكن لأي شخص لا يمتلك المفتاح تزوير علامة صالحة لأي رسالة جديدة، حتى بعد رؤية علامات على رسائل مختارة.
Scope
يغطي هذا الموضوع المصادقة المتماثلة: الهدف الأمني المتمثل في عدم القابلية للتزوير الوجودي تحت هجوم الرسائل المختارة، وبناء رموز مصادقة الرسائل من دوال التجزئة (HMAC) وتشفير الكتل (CMAC, GMAC)، ودمجها مع التشفير لتشكيل التشفير المصادق عليه (التشفير ثم المصادقة، AES-GCM). ويتناول المخاطر مثل تمديد الطول والحاجة إلى مقارنة العلامات في وقت ثابت. ويستبعد التوقيعات الرقمية، التي توفر إمكانية التحقق العام وعدم التنصل باستخدام تشفير المفتاح العام.
Core questions
- كيف يتيح المفتاح المشترك للمستقبل اكتشاف أي تعديل على الرسالة؟
- ماذا يتطلب عدم القابلية للتزوير الوجودي تحت هجوم الرسائل المختارة من رمز مصادقة رسالة آمن؟
- كيف تُبنى رموز مصادقة الرسائل الآمنة من دوال التجزئة (HMAC) ومن تشفير الكتل (CMAC)؟
- كيف يجب دمج التشفير والمصادقة لحماية السرية والسلامة معًا؟
- لماذا يجب أن تكون مقارنة العلامات في وقت ثابت، وما هي الهجمات التي تستغل تسربات التوقيت؟
Key concepts
- علامة المصادقة
- عدم القابلية للتزوير الوجودي
- هجوم الرسائل المختارة
- HMAC
- CMAC و GMAC
- التشفير المصادق عليه (AEAD)
- التشفير ثم المصادقة
- مقارنة الوقت الثابت
- حماية إعادة التشغيل
Key theories
- عدم القابلية للتزوير الوجودي تحت هجوم الرسائل المختارة
- التعريف القياسي لأمان رمز مصادقة الرسالة: لا يزال الخصم الذي يمكنه طلب علامات على رسائل من اختياره لا يستطيع إنتاج علامة صالحة على أي رسالة لم يستعلم عنها، مما يجعل التزوير غير ممكن.
- HMAC والتشفير المصادق عليه
- تُدمج HMAC دالة تجزئة بمفتاح مرتين لإنتاج رمز مصادقة رسالة آمن بشكل مثبت من أي تجزئة قياسية؛ يؤدي دمج رمز مصادقة الرسالة مع التشفير عبر التشفير ثم المصادقة (أو باستخدام AES-GCM) إلى تشفير مصادق عليه يحمي السرية والسلامة معًا.
Mechanisms
تحسب HMAC الدالة H((K xor opad) || H((K xor ipad) || message))، حيث H هي دالة تجزئة و ipad/opad هما حشوتان ثابتتان؛ يهزم الهيكل المتداخل تمديد الطول ويثبت أمانه إذا كانت دالة الضغط دالة شبه عشوائية. تقوم رموز مصادقة الرسائل المستندة إلى تشفير الكتل مثل CMAC بربط تشفيرات كتل الرسائل مع تعديل نهائي بمفتاح. تحسب أوضاع التشفير المصادق عليه مثل AES-GCM رمز مصادقة رسالة حقل غالوا (GMAC) على النص المشفر لربط السرية والسلامة في تمريرة واحدة.
Clinical relevance
تصادق رموز مصادقة الرسائل على جميع حركة مرور الشبكة الآمنة تقريبًا: تدعم HMAC سلامة سجلات TLS، و IPsec، ورموز JSON Web، وتوقيع طلبات واجهة برمجة التطبيقات على غرار AWS، بينما يوفر AES-GCM تشفيرًا مصادقًا عليه في TLS 1.3 وتشفير القرص. التحقق من رمز مصادقة الرسالة هو ما يمنع المهاجم من تغيير النص المشفر بصمت أو إعادة تشغيل الرسائل الملتقطة.
Evidence & guidelines
تم توحيد HMAC في FIPS 198-1 و RFC 2104؛ و CMAC في NIST SP 800-38B؛ و GCM/GMAC في NIST SP 800-38D. تفضل أفضل الممارسات بناءات التشفير المصادق عليه (AEAD) وترتيب التشفير ثم المصادقة؛ ساهم ترتيب المصادقة ثم التشفير المستخدم في TLS القديم في هجمات أوراكل الحشو.
History
تم بناء رموز مصادقة الرسائل المبكرة من DES في وضع CBC-MAC. أدى اكتشاف أن رموز مصادقة الرسائل التجزئة بمفتاح الساذجة كانت عرضة لتمديد الطول إلى تحفيز HMAC، التي قدمها بيلار وكانتي وكراوزيك في عام 1996 وتم توحيدها بعد فترة وجيزة. جلبت الألفية الثانية إضفاء الطابع الرسمي على التشفير المصادق عليه وأوضاع AEAD المخصصة مثل GCM و CCM، والتي أصبحت الآن الافتراضية لحماية البيانات أثناء النقل.
Key figures
- Mihir Bellare
- Ran Canetti
- Hugo Krawczyk
- Phillip Rogaway
Related topics
Seminal works
- bellare1996hmac
- katz2020
- menezes1996
Frequently asked questions
- ما الفرق بين رمز مصادقة الرسالة والتوقيع الرقمي؟
- كلاهما يصادق على رسالة، لكن رمز مصادقة الرسالة يستخدم مفتاحًا سريًا مشتركًا، لذا فإن أي طرف يمكنه التحقق من العلامة يمكنه أيضًا إنتاجها — لا يوجد عدم تنصل. يستخدم التوقيع الرقمي مفتاحًا خاصًا للتوقيع ومفتاحًا عامًا للتحقق، لذا لا يمكن لأحد سوى الموقّع إنشاؤه ويمكن لأي شخص التحقق منه.
- هل يجب أن أقوم بالتشفير أولاً أم المصادقة أولاً؟
- الترتيب الموصى به هو التشفير ثم المصادقة: تشفير النص العادي، ثم حساب رمز مصادقة الرسالة على النص المشفر. يتيح ذلك للمستقبل رفض النصوص المشفرة المزورة قبل فك تشفيرها ويتجنب هجمات أوراكل الحشو وغيرها من الهجمات التي تنشأ من ترتيبات المصادقة ثم التشفير.