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

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

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

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

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

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

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

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

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

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

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

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

توضح التعليمات البرمجية التالية لـ Visual Basic مقارنة سلسلة غير آمنة نموذجية والتي تتوقف عن الاختبار بمجرد عدم تطابق حرف. على سبيل المثال، عند مقارنة "ABCDE" بـ "ABxDE"، فإن الدالة ستعود بالتوقف بعد تكرار 3 دورات: Function InsecureCompare(StrA As String, StrB As String, length As Integer) As Boolean
 Dim result As Boolean
 For i = 1 To length
 If Mid(StrA, i, 1) <> Mid(StrB, i, 1) Then Exit For
 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
 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

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

المراجع

قراءات أخرى 

 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)
 

ترميز
في علوم التشفير ، يمثل هجوم التوقيت هجومًا على قناة جانبية يحاول في ه المهاجم اختراق نظام تشفير عن طريق تحليل الوقت المستغرق ل تنفيذ خوارزميات التشفير . كل عملية منطقية في الكمبيوتر تستغرق وقتًا ل التنفيذ ، و يمكن أن يختلف الوقت بناءً على المدخلات ؛ مع قياسات دقيقة ل الوقت ل كل عملية ، يمكن للمهاجم العمل ب عمليات عكسية و في الإتجاه الخلفي من عمليات الإدخال . يمكن أن تتسرب المعلومات من النظام من خلال قياس الوقت المستغرق ل الرد على استفسارات معينة . يعتمد مقدار هذه المعلومات التي يمكن أن تساعد المهاجم على معرفة العديد من المتغيرات النظامية مثل : تصميم نظام التشفير ، وحدة ا المعالجة المركزية التي تدير النظام ، الخوارزميات المستخدمة ، تفاصيل التنفيذ المتنوعة ، إجراءات توقيت الهجوم ، دقة قياسات التوقيت ، إلخ . غالبًا ما يتم التغاضي عن هجمات التوقيت في مرحلة التصميم لأن ها تعتمد على التنفيذ و يمكن تقديم ها عن غير قصد مع تحسينات برنامج ا التحويل البرمجي . يتضمن تجنب هجمات التوقيت تصميم وظائف وقت ثابت و اختبار دقيق للكود القابل ل التنفيذ النهائي . المفهوم هجوم التوقيت هو مثال على الهجوم الذي يستغل الخصائص السلوكية المعتمدة على البيانات ل تنفيذ الخوارزمية بدلاً من الخصائص الرياضية الأخرى للخوارزميات . يمكن تنفيذ العديد من خوارزميات التشفير ( أو حجب ها ب واسطة وكيل ) ب طريقة تقلل أو تقضي على معلومات التوقيت التي تعتمد على البيانات : ضع في اعتبارك عملية تنفيذ يتم من خلال ها إرجاع كل مكالمة إلى روتين فرعي دائمًا في ثوانٍ ب قيمة ( x ) ب الضبط ، حيث يكون x هو الحد الأقصى ل الوقت على الإطلاق ، حيث سيأخذ ل تنفيذ هذا الروتين على كل المدخلات المسموح ب ها . في مثل هذا التطبيق ، لا يسرب توقيت الخوارزمية أي معلومات حول البيانات المقدمة ل هٰذا الاحتجاج . الجانب السلبي ل هٰذا ال نهج هو أن الوقت المستخدم ل جميع عمليات التنفيذ يصبح وقت أداء الدالة والعملية الأسوأ . هجمات التوقيت هي في كثير من الحالات عمليات يمكن النظر إلي ها على أن ها : يمكن تطبيق هجمات التوقيت على أي خوارزمية ب ها تباين توقيت معتمد على البيانات . س تعرض البرامج التي يتم تشغيل ها على وحدة ا المعالجة المركزية مع ذاكرة تخزين مؤقت للبيانات اختلافات توقيت تعتمد على البيانات نتيجة ظهور الذاكرة في ذاكرة التخزين المؤقت . قد يكون ل بعض العمليات ، مثل عمليات ا الضرب ، وقت تنفيذ متباين حسب المدخلات . تعد إزالة التبعيات الزمنية أمرًا صعبًا في بعض الخوارزميات التي تستخدم عمليات منخفضة المستوى تظهر علي ها كثيرًا وقت تنفيذ متنوع . قد يكون العثور على الأسرار من خلال معلومات التوقيت أسهل كثيرًا من استخدام تحليل الشفرة لأزواج النص المشفر المعروفة . في بعض الأحيان يتم دمج معلومات التوقيت مع تحليل الشفرات ل زيادة معدل تسرب المعلومات . أمثلة يعتمد وقت التنفيذ لخوارزمية المربعات وا الضرب المستخدمة في الأسية المعيارية خطيًا على عدد البتات '1 ' في المفتاح . على الرغم من أن عدد البتات " 1 " وحد ها لا يكاد يكون معلومات كافية ل جعل العثور على المفتاح أمرًا سهلاً ، حيث يمكن استخدام عمليات التنفيذ المتكررة ب استخدام نفس المفتاح ومدخلات مختلفة ل إجراء تحليل الارتباط الإحصائي ل معلومات التوقيت ل استعادة المفتاح تمامًا ، حتى من خلال المهاجم الغير نشط . غالبًا ما تتضمن قياسات التوقيت الملاحظة ضوضاء ( من مصادر مثل اختفاء الشبكة ، أو اختلافات الوصول إلى محرك الأقراص من الوصول إلى المصادر ، وتقنيات تصحيح الأخطاء المستخدمة في ال استرداد من أخطاء ال إرسال ) . و مع ذلك ، تعتبر هجمات التوقيت عملية ضد عدد من خوارزميات التشفير ، ب ما في ذلك R S A و ElGa m al وخوارزمية التوقيع الرقمي . في عام أظهر Boneh و Brum ley هجومًا عمليًا قائمًا على الشبكة على خوادم الويب التي تدعم SSL ، استنادًا إلى ثغرة أمنية مختلفة تتعلق ب استخدام R S A مع تحسينات في نظرية « ال نظرية الباقية الصينية » . كانت المسافة الفعلية ل الشبكة صغيرة في تجارب ها ، لكن الهجوم نجح في استعادة مفتاح الخادم الخاص في غضون ساعات . أدى هذا العرض التوضيحي إلى نشر و استخدام تقنيات التعمية / التشفير على نطاق واسع في تطبيقات SSL . في هذا السياق ، تهدف عمليات التشفير / التعمية إلى إزالة الارتباطات بين المفتاح ووقت التشفير . بعض إصدارات يونكس تستخدم عمليات تنفيذ مكلفة نسبياً ، على سبيل المثال عند استخدام دوال التجزئة ( مثل دالة crypt ) لكلمات مرور مكونة منأحرف إلىحرفاً . و على الأجهزة القديمة ، استغرق هذا الحساب وقتًا طويلاً ومتعمدًا : يصل إلى ثانيتين أو ثلاث ثوانٍ في بعض الحالات . قام برنامج تسجيل الدخول في الإصدارات القديمة من Unix ب تنفيذ وظيفة ودالة crypt فقط عندما تم التعرف على اسم تسجيل الدخول من قبل النظام . هذا يُعتبر ب مثابة « تسرب المعلومات » خلال توقيت معين يدور حول صحة اسم تسجيل الدخول . حتى عندما كانت كلمة المرور غير صحيحة كان تسرب المعلومات المسبق موجود أيضاً كقيمة توقيتية . يمكن للمهاجم استغلال مثل هذه التسريبات من خلال تطبيق هجوم « القوة الغاشمة / العمياء » أولاً ل إنتاج قائمة بأسماء تسجيل الدخول المعروفة ب أن ها صالحة ، ثم محاولة الوصول عن طريق الجمع بين هذه الأسماء فقط مع مجموعة كبيرة من كلمات المرور المعروفة ب الاستخدام المتكرر . ب دون أي معلومات حول صحة أسماء تسجيل الدخول ، ف إن الوقت اللازم ل تنفيذ مثل هذا ال نهج س يزيد بأوامر مهمة من الحجم الثقيل ، مما يجعل ه عديم الفائدة ب شكل فعال . قامت الإصدارات ال أحدث من Unix ب إصلاح هذا التسرب من خلال تنفيذ وظيفة التشفير دائمًا ، ب غض النظر عن صلاحية اسم تسجيل الدخول . يمكن إجراء عمليتين منفصلتين ب شكل آمن يتم تشغيل هما على نظام واحد مع ذاكرة التخزين المؤقت أو الذاكرة الظاهرية عن طريق التسبب الم تعمد في أخطاء الصفحة و / أو تفويت ذاكرة التخزين المؤقت في عملية واحدة ، ثم مراقبة التغييرات الناتجة في أوقات الوصول من جهة أخرى . وب المثل ، إذا كان أحد التطبيقات موثوقًا ب ه ، و لٰكن تخزين الصفحات في عمليات التخزين المؤقت متأثرة ب منطق التفريع ، ف قد يكون من الممكن ل التطبيق الثاني تحديد قيم البيانات مقارنة ب حالة الفرع من خلال مراقبة تغييرات وقت الوصول ؛ و في ال أمثلة القصوى ، يمكن أن يسمح هذا ب استرداد البتات الخاصة بمفتاح التشفير . تعتمد هجمات Meltdown وSpecter لعام التي أجبرت مصنعي وحدة ا المعالجة المركزية ( ب ما في ذلك Intel و AMD و ARM و IBM ) على إعادة تصميم وحدات ا المعالجة المركزية الخاصة ب هم على هجمات التوقيت . اعتبارًا من أوائل عام تُأثر هجمات Specter تقريبًا ب كل نظام كمبيوتر في العالم ، مما يجعل ها أقوى مثال على توقيت الهجوم و على مدار التاريخ . توضح ال تعليمات البرمجية التالية لـ Visual Basic مقارنة سلسلة غير آمنة نموذجية و التي تتوقف عن ال اختبار ب مجرد عدم تطابق حرف . على سبيل المثال ، عند مقارنة " ABC DE " بـ " AB x D E " ، ف إن الدالة س تعود بالتوقف بعد تكراردورات : Function Insecure Compare ( Str A As String , StrB As String , length As Integer ) As Boolean Dim result As Boolean For i = To length If Mid ( S t r A , i,< > Mid ( StrB , i , Then Exit For Next result = ( i > length ) Insecure Compare = result End Function ب المقارنة ، يتم تشغيل ال إصدار التالي في وقت ثابت عن طريق اختبار جميع الأحرف و استخدام عمليات bitwise لل اختبار دون القفزات الشرطية : Function Secure Compare ( Str A As String , StrB As String , length As Integer ) As Boolean Dim result As Boolean For i = To length result = result Or ( Asc ( Mid ( S t r A , i , Xor Asc ( Mid ( StrB , i , ) Next Secure Compare = Not result End Function ملاحظات من السهل تصاعد هجمات التوقيت إذا كان المهاجم يعرف الحدود الداخلية لتطبيقات الأجهزة ، و حتى أكثر من ذلك ب نظام التشفير المستخدم . نظرًا لأن أمان التشفير لا يجب أن يعتمد أبدًا على الغموض ( انظر الأمان من خلال الغموض ، و تحديدا مبدأ شانون ومكسيم كيركهوفز ) ، ف إن مقاومة هجمات التوقيت يجب أن لا تكون كذلك . إذا لم يكن هناك شيء آخر يمكن ك فعل ه ، ف يمكن شراء نموذج مثالي لهندسة عكسية مختصة ب هجمات التوقيت . قد تكون هجمات التوقيت و غير ها من هجمات القنوات الجانبية مفيدة أيضًا في تحديد خوارزمية التشفير التي تستخدم ها بعض الأجهزة ، أو ربما ل تحديد الهندسة العكسية . المراجع قراءات أخرى Paul C . Kocher : توقيت الهجمات على تطبيقات Diffie - H ellm an و RS A و DSS والأنظمة الأخرى . CRYP TO ( https://www.paulkocher.com/TimingAttacks.pdf pdf file ] ) ديفيد برومل ي ودان بونيه : هجمات التوقيت البعيد عملية . U SENIX Security Symposium ، A ugust pdf file Colin Percival : ذاكرة التخزين المؤقت مفقود للمتعة والأرباح ، مايو ( ملف pdf ) ترميز