هجمات التوقيت: استخراج المفاتيح من زمن التنفيذ
وضّح هجوم توقيت ذاكرة التخزين المؤقت على تنفيذ لا يضمن زمنًا ثابتًا
هجمات التوقيت: استخراج المفاتيح من زمن التنفيذ درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ما هجوم التوقيت؟
هجوم التوقيت هو هجوم قناة جانبية يقيس فيه الخصم المدة التي تستغرقها العمليات التشفيرية لاستنتاج بيانات سرية. وحتى الفروق التي تبلغ نانوثوانٍ قد تكشف بتات من المفتاح.
لماذا يكشف زمن التنفيذ الأسرار؟
غالبًا ما تعتمد التفرعات وعمليات الوصول إلى الذاكرة داخل شيفرة التشفير على قيم سرية. فالحلقة التي تخرج مبكرًا عند مواجهة بت صفري تعمل بسرعة أكبر، ويقيس المهاجم هذا الفرق.
هجمات توقيت ذاكرة التخزين المؤقت على AES
تصل عمليات البحث الكلاسيكية في جداول AES إلى أسطر من ذاكرة التخزين المؤقت للمعالج، وتعتمد عناوين هذه الأسطر على بايتات المفتاح. وتتيح أدوات مثل Flush+Reload للمهاجم معرفة أسطر ذاكرة التخزين المؤقت التي جرى الوصول إليها.
مستتر توقيت RSA لدى Bleichenbacher
استغل هجوم Bleichenbacher لعام 1998 الفروق في التوقيت أثناء التحقق من حشو PKCS#1 v1.5. وكان من الممكن لملايين النصوص المشفرة المختارة استعادة مفتاح RSA خاص بطول 1024 بتًا.
هجمات التوقيت عن بُعد
حتى عبر الشبكة، يمكن قياس فروق التوقيت التي تقل عن ميلي ثانية عند جمع عدد كافٍ من العينات. وقد استغل هجوم Lucky13 توقيت MAC في نمط CBC ضمن TLS عبر الإنترنت.
قياس الوقت في Python
استخدم time.perf_counter_ns() للحصول على دقة بالنانوثانية. ولعرض مقارنة معرّضة للخطر:
import time
def vulnerable_compare(a, b):
for x, y in zip(a, b):
if x != y:
return False
return len(a) == len(b)
start = time.perf_counter_ns()
vulnerable_compare(b"secret_key_here", b"wrong_key_xxxxx")
elapsed = time.perf_counter_ns() - start
print(f"Elapsed: {elapsed} ns")محاكاة مستتر توقيت
يعيد مستتر التوقيت ما إذا كان التخمين صحيحًا، كما يسرّب معلومات عبر التوقيت. ويمكننا استعادة سر بايتًا تلو الآخر من خلال قياس التخمين الذي يستغرق أطول وقت قبل أن يعيد False.
التحليل الإحصائي لبيانات التوقيت
تكون القياسات المفردة مشوشة. يجمع المهاجمون آلاف العينات لكل مرشح ويستخدمون اختبارات إحصائية (اختبار t واختبار Welch) للتمييز بين الإشارة والضوضاء.
هجوم Manger على OAEP
في عام 2001، أوضح Manger أنه حتى RSA المحشو بـ OAEP يسرّب معلومات إذا كان التطبيق يميز بين حالة "البايت الأول صفري" والأخطاء الأخرى باستخدام فروق في التوقيت.
أمثلة من العالم الحقيقي
شهدت OpenSSL وGnuTLS وNSS جميعًا ثغرات CVE مرتبطة بهجمات التوقيت. وقد أثر هجوم Lucky13 على TLS (CVE-2013-0169) في كل مكتبات TLS تقريبًا وقت الكشف عنه.
اختبار المعرفة
ما التقنية الإحصائية التي تساعد المهاجمين على التمييز بين إشارة التوقيت وضوضاء القياس؟
مراجعة الدرس
تستخرج هجمات التوقيت الأسرار التشفيرية من خلال قياس الفروق في زمن التنفيذ. وهي تعمل محليًا (عبر ذاكرة التخزين المؤقت) أو عن بُعد (عبر الشبكة). ويفصل التحليل الإحصائي بين الإشارة والضوضاء. والحل هو شيفرة بزمن ثابت، وسيتناولها درس التدابير المضادة.
الأسئلة الشائعة
هل درس «هجمات التوقيت: استخراج المفاتيح من زمن التنفيذ» مجاني؟
نعم — نص درس «هجمات التوقيت: استخراج المفاتيح من زمن التنفيذ» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «هجمات التوقيت: استخراج المفاتيح من زمن التنفيذ»؟
وضّح هجوم توقيت ذاكرة التخزين المؤقت على تنفيذ لا يضمن زمنًا ثابتًا تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «هجمات التوقيت: استخراج المفاتيح من زمن التنفيذ»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- هجمات التوقيت: استخراج المفاتيح من زمن التنفيذ
- تحليل الطاقة: SPA وDPA
- القنوات الجانبية الكهرومغناطيسية والصوتية
- إجراءات الحماية: الإخفاء والتعمية وكود الزمن الثابت