Cryptology Academy · درس

مفاهيم MAC وهجمات تمديد الطول

اشرح لماذا يكون إلحاق البيانات ببادئة سرية غير آمن أمام تمديد الطول

الدرس 1 من 413 خطوة

مفاهيم MAC وهجمات تمديد الطول درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

مرحبًا

توفر رموز مصادقة الرسائل (MACs) سلامة الرسالة وأصالتها باستخدام مفتاح سري مشترك. في هذا الدرس سنفهم MACs وخصائصها وثغرة خطيرة في تجزئات المفاتيح الساذجة.

ما هي MAC؟

‏MAC هو رمز مصادقة قصير يُحسب من رسالة ومفتاح سري. يعيد المستقبِل الذي يملك المفتاح نفسه حساب MAC ويتحقق منه. وهذا يمنع التزوير من دون المفتاح.

MAC مقابل التجزئة مقابل التوقيع

التجزئة: بلا مفتاح، عامة، وتوفر سلامة الرسالة فقط. MAC: سر مشترك، متماثلة، وتوفر سلامة الرسالة والأصالة. التوقيع الرقمي: مفتاح خاص، غير متماثل، ويضيف عدم التنصل. التوقيعات وحدها توفر عدم التنصل.

عدم القابلية للتزوير

يجب أن تكون MAC الآمنة غير قابلة للتزوير وجوديًا في مواجهة هجوم الرسائل المختارة (EUF-CMA): فلا يستطيع المهاجم الذي يمكنه طلب MAC لأي رسالة تزوير MAC صالح لرسالة جديدة لم يطلبها سابقًا.

تجزئة مفتاح ساذجة: MAC بالبادئة

المحاولة الساذجة: ‏MAC(K, M) = H(K || M). تبدو آمنة، لكنها عرضة لهجمات تمديد الطول في دوال التجزئة Merkle-Damgård ‏(SHA-256 وSHA-512 وMD5).

هجوم تمديد الطول

تكون حالة SHA-256 بعد تجزئة M هي H(M) فحسب. وبمعرفة H(K || M)، يستطيع المهاجم حساب H(K || M || padding || extra) لأي «extra» من دون معرفة K. وبذلك يمدد الرسالة لإلحاق بيانات جديدة بها.

الأثر العملي للهجوم

Flickr (2009): استخدمت واجهة API ‏H(K || params). فألحق المهاجمون ‎&api_sig=forgery‎ بالطلبات الموثقة. ونتيجة لذلك بدت استدعاءات API غير المصرح بها صالحة. وكان ذلك استغلالًا خالصًا لتمديد الطول.

تفشل MAC باللاحقة أيضًا

‏MAC(K, M) = H(M || K): تكون عرضة لهجمات خارجية. يحسب المهاجم H(message) من دون K، ثم يستخدم هجوم أعياد الميلاد للعثور على M' لها التجزئة نفسها. ويُلحَق المفتاح بعد حدوث التصادم.

لماذا تعالج HMAC هذه المشكلة

تغلّف HMAC التجزئة مرتين باستخدام حشوتين مختلفتين للمفتاح: HMAC(K, M) = H((K⊕opad) || H((K⊕ipad) || M)) تنتج التجزئة الداخلية H(ipad_key || M). ثم تغلّفها التجزئة الخارجية باستخدام opad_key. ويفشل تمديد الطول لأن المهاجم لا يستطيع ضبط الحالة الابتدائية للتجزئة الخارجية.

SHA-3 وتمديد الطول

يستخدم SHA-3 بنية الإسفنجة، وهي محصّنة بطبيعتها ضد هجمات تمديد الطول. ويُعد H_SHA3(K || M) إنشاءً صالحًا وبسيطًا لـMAC. أما SHA-2 فليس كذلك — استخدموا HMAC دائمًا مع SHA-2.

هجمات التوقيت على التحقق من MAC

تسرّب مقارنة MAC التي تتوقف مبكرًا (==) معلومات عن التوقيت. إذ يستغرق البايت الأول «الصحيح» وقتًا أطول قليلًا من البايت الأول «الخاطئ». بعد 256 طلبًا: يُعثر على البايت 1. وبعد 256 طلبًا إضافيًا: يُعثر على البايت 2. وتُستعاد MAC كاملةً في 16×256 طلبًا.

اختبار سريع

لماذا تكون MAC(K, M) = SHA256(K || M) غير آمنة؟

مراجعة

توضح هجمات تمديد الطول سبب فشل تجزئات المفاتيح الساذجة. سندرس بعد ذلك بنية HMAC وبرهان أمانها.
البدء مجانًا

تعلم Cryptology Academy مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
67
الدروس
261

الأسئلة الشائعة

هل درس «مفاهيم MAC وهجمات تمديد الطول» مجاني؟

نعم — نص درس «مفاهيم MAC وهجمات تمديد الطول» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

ماذا ستتعلم في «مفاهيم MAC وهجمات تمديد الطول»؟

اشرح لماذا يكون إلحاق البيانات ببادئة سرية غير آمن أمام تمديد الطول تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟

لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «مفاهيم MAC وهجمات تمديد الطول»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟

نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مفاهيم MAC وهجمات تمديد الطول
  2. بنية HMAC وبرهان الأمان
  3. HMAC في واجهات API: توقيع الطلبات
  4. CMAC وPoly1305: رموز MAC المعتمدة على تشفير الكتل
← العودة إلى Cryptology Academy