مرجع
آخر الزيارات

هجوم التوقيت

1٬185 كلمة•0 مشاهدة•🗒️ منذ يوم
باختصار: في علوم التعمية، يمثل هجوم التوقيت هجومًا على قناة جانبية يحاول فيه المهاجم اختراق نظام تعمية عن طريق تحليل الوقت المستغرق لتنفيذ خوارزميات التعمية. في هذه المقالة 7 أقسام: «أمثلة»، «قراءات أخرى» و«For i = 1 To length» وغيرها.
المحتويات
  1. أمثلة
  2. قراءات أخرى
  3. For i = 1 To length
  4. Next
  5. InsecureCompare = result
  6. المفهوم
  7. For i = 1 To length

في البداية، في علوم التعمية، يمثل هجوم التوقيت هجومًا على قناة جانبية يحاول فيه المهاجم اختراق نظام تعمية عن طريق تحليل الوقت المستغرق لتنفيذ خوارزميات التعمية. كل عملية منطقية في الحاسوب تستغرق وقتًا للتنفيذ، ويمكن أن يختلف الوقت بناءً على المدخلات؛ مع قياسات دقيقة للوقت لكل عملية، يمكن للمهاجم العمل بعمليات عكسية وفي الاتجاه الخلفي من عمليات الإدخال. ونتناول فيما يلي مزيدًا من التفاصيل.

كذلك، يمكن أن تتسرب المعلومات من النظام من خلال قياس الوقت المستغرق للرد على استفسارات معينة. يعتمد مقدار هذه المعلومات التي يمكن أن تساعد المهاجم على معرفة الكثير من المتغيرات النظامية مثل: تصميم نظام التعمية، وحدة المعالجة المركزية التي تدير النظام، الخوارزميات المستعملة، تفاصيل التنفيذ المتنوعة، إجراءات توقيت الهجوم، دقة قياسات التوقيت، إلخ.

كذلك، غالبًا، يتم التغاضي عن هجمات التوقيت في مرحلة التصميم لأنها تعتمد على التنفيذ ويمكن تقديمها عن غير قصد مع تحسينات برنامج التحويل البرمجي. يتضمن تجنب هجمات التوقيت تصميم وظائف وقت ثابت واختبار دقيق للكود القابل للتنفيذ النهائي.

أمثلة

Dim result As Boolean

كذلك، تعتمد هجمات Meltdown وSpecter لعام 2017 التي أجبرت مصنعي وحدة المعالجة المركزية (بما في ذلك Intel و AMD و ARM و IBM) على إعادة تصميم وحدات المعالجة المركزية الخاصة بهم على هجمات التوقيت. اعتبارًا من أوائل عام 2018، تُأثر هجمات Specter على وجه التقريب بكل نظام حاسوب في العالم، مما يجعلها أقوى مثال على توقيت الهجوم وعلى مدار التاريخ.

وفي هذا الصدد، في عام 2003، أظهر Boneh و Brumley هجومًا عمليًا قائمًا على الشبكة على خوادم الويب التي تدعم SSL ، استنادًا إلى ثغرة أمنية مختلفة تتعلق باستخدام RSA مع تحسينات في نظرية «النظرية الباقية الصينية». كانت المسافة الفعلية للشبكة صغيرة في تجاربها، لكن الهجوم نجح في استعادة مفتاح الخادم الخاص في غضون ساعات. أدى هذا العرض التوضيحي إلى نشر واستخدام تقنيات التعمية على نطاق واسع في تطبيقات SSL. في هذا السياق، تهدف عمليات التشفير/التعمية إلى إزالة الارتباطات بين المفتاح ووقت التشفير.

في هذا الإطار، يعتمد وقت التنفيذ لخوارزمية المربعات والضرب المستعملة في الأسية المعيارية خطيًا على عدد البتات '1' في المفتاح. على الرغم من أن عدد البتات "1" وحدها لا يكاد يكون معلومات كافية لجعل العثور على المفتاح أمرًا سهلاً، حيث يمكن استخدام عمليات التنفيذ المتكررة باستخدام نفس المفتاح ومدخلات مختلفة لإجراء تحليل الارتباط الإحصائي لمعلومات التوقيت لاستعادة المفتاح تمامًا، حتى من خلال المهاجم الغير نشط. غالبًا ما تتضمن قياسات التوقيت الملاحظة ضوضاء (من مصادر مثل اختفاء الشبكة، أو اختلافات الوصول إلى محرك الأقراص من الوصول إلى المصادر، وتقنيات تصحيح الأخطاء المستعملة في الاسترداد من أخطاء الإرسال). ومع ذلك، تعتبر هجمات التوقيت عملية ضد عدد من خوارزميات التعمية، بما في ذلك RSA وElGamal وخوارزمية التوقيع الرقمي.

كذلك، بعض إصدارات يونكس تستعمل عمليات تنفيذ مكلفة نسبياً، مثلًا عند استخدام دوال التجزئة (مثل دالة crypt) لكلمات السر المكونة من 8 أحرف إلى 11 حرفاً. وعلى الأجهزة القديمة، استغرق هذا الحساب وقتًا طويلاً ومتعمدًا: يصل إلى ثانيتين أو ثلاث ثوانٍ في بعض الحالات. قام برنامج تسجيل الدخول في الإصدارات القديمة من Unix بتنفيذ وظيفة ودالة crypt فقط عندما تم التعرف على اسم تسجيل الدخول من قبل النظام. هذا يُعتبر بمثابة «تسرب المعلومات» خلال توقيت معين يدور حول صحة اسم تسجيل الدخول. حتى عندما كانت كلمة السر غير صحيحة كان تسرب المعلومات المسبق موجود كذلك كقيمة توقيتية. يمكن للمهاجم استغلال مثل هذه التسريبات من خلال تطبيق هجوم «القوة الغاشمة/العمياء» أولاً لإنتاج قائمة بأسماء تسجيل الدخول المعروفة بأنها صالحة، ثم محاولة الوصول عن طريق الجمع بين هذه الأسماء فقط مع مجموعة كبيرة من كلمات السر المعروفة بالاستخدام المتكرر. بدون أي معلومات حول صحة أسماء تسجيل الدخول، فإن الوقت اللازم لتنفيذ مثل هذا النهج سيزيد بأوامر مهمة من الحجم الثقيل، مما يجعله عديم الفائدة بشكل فعال. قامت الإصدارات الأحدث من Unix بإصلاح هذا التسرب من خلال تنفيذ وظيفة التعمية دائمًا، بغض النظر عن صلاحية اسم تسجيل الدخول.

ومن جهة أخرى، توضح التعليمات البرمجية التالية لـ Visual Basic مقارنة سلسلة غير آمنة نموذجية والتي تتوقف عن الاختبار بمجرد عدم تطابق حرف. مثلًا، عند مقارنة "ABCDE" بـ "ABxDE"، فإن الدالة ستعود بالتوقف بعد تكرار 3 دورات: Function InsecureCompare(StrA As String, StrB As String, length As Integer) As Boolean

من جهة ثانية، يمكن إجراء عمليتين منفصلتين بشكل آمن يتم تشغيلهما على نظام واحد مع ذاكرة التخزين المؤقت أو الذاكرة الظاهرية عن طريق التسبب المتعمد في أخطاء الصفحة و / أو تفويت ذاكرة التخزين المؤقت في عملية واحدة، ثم مراقبة التغييرات الناتجة في أوقات الوصول من جهة أخرى. وبالمثل، إذا كان أحد التطبيقات موثوقًا به، ولكن تخزين الصفحات في عمليات التخزين المؤقت متأثرة بمنطق التفريع، فقد يكون من الممكن للتطبيق الثاني تحديد قيم البيانات مقارنة بحالة الفرع من خلال مراقبة تغييرات وقت الوصول؛ وفي الأمثلة القصوى، يمكن أن يسمح هذا باسترداد البتات الخاصة بمفتاح التشفير.

قراءات أخرى

وفي السياق ذاته، Paul C. Kocher: توقيت الهجمات على تطبيقات Diffie-Hellman وRSA و DSS والأنظمة الأخرى. CRYPTO 1996: 104-113 (https://www.paulkocher.com/TimingAttacks.pdf pdf file])

وفي هذا السياق، ديفيد بروملي ودان بونيه: هجمات التوقيت البعيد عملية. USENIX Security Symposium، August 2003. pdf file

وفي هذا الصدد، Colin Percival: ذاكرة التخزين المؤقت مفقود للمتعة والأرباح، 13 مايو 2005 (ملف pdf)

For i = 1 To length

  • result = result Or (Asc(Mid(StrA, i, 1)) Xor Asc(Mid(StrB, i, 1)))
  • Next
  • SecureCompare = Not result
  • End Function

Next

result = (i > length)

InsecureCompare = result

وفي هذا الصدد، End Function بالمقارنة، يتم تشغيل الإصدار التالي في وقت ثابت عن طريق اختبار جميع الأحرف واستخدام عمليات bitwise للاختبار دون القفزات الشرطية: Function SecureCompare(StrA As String, StrB As String, length As Integer) As Boolean

Dim result As Boolean

المفهوم

من جهة ثانية، هجوم التوقيت هو مثال على الهجوم الذي يستغل الخصائص السلوكية المعتمدة على البيانات لتنفيذ الخوارزمية بدلاً من الخصائص الرياضية الأخرى للخوارزميات.

وفي هذا الصدد، هجمات التوقيت هي في كثير من الحالات عمليات يمكن النظر إليها على أنها:

وفي هذا الصدد، قد يكون العثور على الأسرار من خلال معلومات التوقيت أسهل كثيرًا من استخدام تحليل الشفرة لأزواج النص المُعمّى المعروفة. في بعض الأحيان يتم دمج معلومات التوقيت مع تحليل الشفرات لزيادة معدل تسرب المعلومات.

وفي هذا السياق، يمكن تطبيق هجمات التوقيت على أي خوارزمية بها تباين توقيت معتمد على البيانات. ستعرض البرامج التي يتم تشغيلها على وحدة المعالجة المركزية مع ذاكرة تخزين مؤقت للبيانات اختلافات توقيت تعتمد على البيانات نتيجة ظهور الذاكرة في ذاكرة التخزين المؤقت. قد يكون لبعض العمليات، مثل عمليات الضرب، وقت تنفيذ متباين حسب المدخلات. تعد إزالة التبعيات الزمنية أمرًا صعبًا في بعض الخوارزميات التي تستعمل عمليات منخفضة المستوى تظهر عليها كثيرًا وقت تنفيذ متنوع.

وفي هذا السياق، يمكن تنفيذ الكثير من خوارزميات التعمية (أو حجبها بواسطة وكيل) بطريقة تقلل أو تقضي على معلومات التوقيت التي تعتمد على البيانات: ضع في اعتبارك عملية تنفيذ يتم من خلالها إرجاع كل مكالمة إلى روتين فرعي دائمًا في ثوانٍ بقيمة (x) بالضبط، حيث يكون x هو الحد الأقصى للوقت على الإطلاق، حيث سيأخذ لتنفيذ هذا الروتين على كل المدخلات المسموح بها. في مثل هذا التطبيق، لا يسرب توقيت الخوارزمية أي معلومات حول البيانات المقدمة لهذا الاحتجاج. الجانب السلبي لهذا النهج هو أن الوقت المستعمل لجميع عمليات التنفيذ يصبح وقت أداء الدالة والعملية الأسوأ.

For i = 1 To length

If Mid(StrA, i, 1) Mid(StrB, i, 1) Then Exit For

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.