لماذا يتفوق Encrypt-Then-MAC على MAC-Then-Encrypt؟
افهم الحجة التشفيرية وراء الجمع بين التشفير والمصادقة بالترتيب الصحيح
لماذا يتفوق Encrypt-Then-MAC على MAC-Then-Encrypt؟ درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
الترتيبات الثلاثة للتركيب
عند الجمع بين التشفير وMAC، توجد ثلاثة ترتيبات: Encrypt-then-MAC (EtM)، وMAC-then-Encrypt (MtE)، وEncrypt-and-MAC (E&M). ولكل ترتيب خصائص أمنية مختلفة جوهريًا، ولا يثبت أمانه في جميع الحالات إلا ترتيب واحد.
تعريف Encrypt-then-MAC
في Encrypt-then-MAC، يُشفَّر النص الصريح أولًا لإنتاج النص المشفّر، ثم تُحسب MAC على ذلك النص المشفّر. ويستطيع المستلم التحقق من MAC قبل محاولة فك التشفير، ما يعني رفض الرسالة التي جرى العبث بها فورًا دون كشف أي معلومات.
تعريف MAC-then-Encrypt
في MAC-then-Encrypt، تُحسب MAC على النص الصريح، ثم يُشفَّر النص الصريح وMAC معًا. ويجب على المستلم فك تشفير الرسالة قبل أن يتمكن من التحقق من MAC، مما يفتح المجال لهجمات مستشار الحشو ومستشار فك التشفير.
عيب SSL 3.0 وTLS 1.0
استخدم SSL 3.0 وTLS 1.0 ترتيب MAC-then-Encrypt مع شفرات الكتل في نمط CBC. وقد استُغل هذا العيب في التصميم بواسطة هجوم BEAST عام 2011 وهجوم POODLE عام 2014، إذ استفاد كلاهما من المستشار الموجود عندما يحدث فك التشفير قبل التحقق من MAC.
إثبات Bellare-Namprempre
في عام 2000، أثبت Bellare وNamprempre رسميًا أنه من بين ترتيبات التركيب الثلاثة، يحقق Encrypt-then-MAC وحده أمان IND-CCA2، أي الأمان ضد النصوص المشفرة المختارة، لجميع مجموعات بدائيات التشفير وMAC الآمنة. ويمكن أن يفشل كل من MtE وE&M في بعض عمليات التركيب.
Encrypt-and-MAC في SSH
يستخدم SSH ترتيب Encrypt-and-MAC: تُحسب MAC على النص الصريح، وتُرسل إلى جانب النص المشفّر في صورة نص صريح. ومع أن SSH لم يتعرض للاستغلالات نفسها التي تعرض لها MtE في SSL/TLS، فإن هذا التركيب معيب نظريًا أيضًا، إذ يمكن أن يسرّب معلومات عن النص الصريح من خلال MAC غير المشفّرة.
AEAD بوصفه التجريد الآمن
التشفير الموثَّق مع البيانات المرتبطة (AEAD) هو التجريد الحديث الذي يحل مشكلة التركيب بحكم تصميمه. إذ يدمج AEAD التشفير والمصادقة في بدائية واحدة، ويضمن دمجهما دائمًا بطريقة صحيحة دون مطالبة المطور باختيار ترتيب للتركيب.
AES-GCM: معيار AEAD
يُعد AES-GCM (نمط غالوا/العداد) أكثر مجموعات شفرات AEAD انتشارًا. فهو يوفر تشفيرًا موثَّقًا من خلال الجمع بين التشفير بنمط CTR والمصادقة باستخدام GHASH، كما تدعمه العتاديات عبر تعليمات AES-NI وCLMUL في وحدات المعالجة المركزية الحديثة.
TLS 1.3 يفرض استخدام AEAD فقط
أحدث TLS 1.3 قطيعة حاسمة مع الماضي بإزالة جميع مجموعات الشفرات غير المعتمدة على AEAD. وتستخدم كل مجموعة شفرات في TLS 1.3 تقنية AEAD، مما يلغي فئات كاملة من الثغرات التي سببها الدمج اليدوي غير الصحيح لبدائيات التشفير وMAC، والتي عانت منها إصدارات TLS السابقة.
لا تُركِّب بدائيات التشفير يدويًا
يتمثل الدرس الأساسي المستخلص من عقود من الهجمات التشفيرية في أن تركيب بدائيات التشفير وبدائيات MAC يدويًا عرضة للأخطاء، حتى على يد الخبراء. وتوفّر مكتبات التشفير الحديثة واجهات AEAD تحديدًا لمنع المطورين من ارتكاب أخطاء في التركيب تؤدي إلى ثغرات حقيقية في العالم الواقعي.
إرشادات عملية
عند بناء الأنظمة اليوم، استخدم دائمًا بدائية AEAD مثل AES-GCM أو ChaCha20-Poly1305. وإذا اضطررت إلى التوافق مع أنظمة قديمة تستخدم MAC والتشفير بشكل منفصل، فتأكد من استخدام ترتيب Encrypt-then-MAC، ولا تستخدم أبدًا MtE أو E&M.
اختبار EtM مقابل MtE
أي عبارة تصف بشكل صحيح الفرق الأمني بين Encrypt-then-MAC وMAC-then-Encrypt؟
مراجعة الدرس: ترتيب التركيب مهم
يُعد EtM ترتيب التركيب الوحيد الذي ثبت أمانه عند استخدام بدائيات تشفير وMAC منفصلة. ويزيل TLS 1.3 المشكلة بالكامل من خلال فرض مجموعات تشفير تستخدم AEAD فقط. وعند الشك، استخدم بدائية AEAD مثل AES-GCM أو ChaCha20-Poly1305، ودَع المكتبة تتولى التركيب بشكل صحيح.
الأسئلة الشائعة
هل درس «لماذا يتفوق Encrypt-Then-MAC على MAC-Then-Encrypt؟» مجاني؟
نعم — نص درس «لماذا يتفوق Encrypt-Then-MAC على MAC-Then-Encrypt؟» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «لماذا يتفوق Encrypt-Then-MAC على MAC-Then-Encrypt؟»؟
افهم الحجة التشفيرية وراء الجمع بين التشفير والمصادقة بالترتيب الصحيح تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «لماذا يتفوق Encrypt-Then-MAC على MAC-Then-Encrypt؟»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- لماذا يتفوق Encrypt-Then-MAC على MAC-Then-Encrypt؟
- وضع SIV: تشفير AEAD مقاوم لسوء استخدام nonce
- AEGIS: تشفير موثّق عالي السرعة
- اختيار AEAD لأنظمة الإنتاج