اعتماد وقت تنفيذ التعليمات على البيانات الموجودة على وحدات المعالجة المركزية ARM وIntel

إريك بيغرز، أحد مطوري تشفير Adiantum ومشرف النظام الفرعي Linux kernel fscrypt، اقترح مجموعة من التصحيحات لمنع المشاكل الأمنية الناشئة عن ميزة معالجات Intel التي لا تضمن أوقات تنفيذ ثابتة للبيانات المعالجة المختلفة. تظهر المشكلة في معالجات Intel بدءًا من عائلة Ice Lake. لوحظت مشكلة مماثلة في معالجات ARM.

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

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

لتعطيل هذا السلوك، اقترحت Intel وARM إشارات جديدة: PSTATE bit DIT (توقيت مستقل عن البيانات) لوحدات المعالجة المركزية ARM وبت MSR DOITM (وضع التوقيت المستقل لمعامل البيانات) لوحدات المعالجة المركزية Intel، مما يعيد السلوك القديم مع وقت تنفيذ ثابت. توصي Intel وARM بتمكين الحماية حسب الحاجة للتعليمات البرمجية المهمة، ولكن في الواقع، يمكن أن تحدث العمليات الحسابية المهمة في أي مكان في النواة ومساحة المستخدم، لذلك نحن نفكر في تمكين أوضاع DOITM وDIT للنواة بأكملها في جميع الأوقات.

بالنسبة لمعالجات ARM، اعتمد فرع Linux 6.2 kernel بالفعل تصحيحات تغير سلوك النواة، لكن هذه التصحيحات تعتبر غير كافية لأنها تغطي كود النواة فقط ولا تغير سلوك مساحة المستخدم. بالنسبة لمعالجات إنتل، فإن إدراج الحماية لا يزال في مرحلة المراجعة. لم يتم قياس تأثير التصحيح على الأداء بعد، ولكن وفقًا لوثائق Intel، فإن تمكين وضع DOITM يقلل من الأداء (على سبيل المثال، عن طريق تعطيل بعض التحسينات، مثل التحميل المسبق الخاص بالبيانات) وفي نماذج المعالجات المستقبلية قد يزيد انخفاض الأداء .

المصدر: opennet.ru

إضافة تعليق