وابستگی زمان اجرای دستورالعمل به داده های پردازنده های ARM و اینتل

اریک بیگرز، یکی از توسعه دهندگان رمز Adiantum و نگهدارنده زیرسیستم fscrypt هسته لینوکس، مجموعه ای از وصله ها را برای جلوگیری از مشکلات امنیتی ناشی از ویژگی پردازنده های اینتل که زمان اجرای ثابت برای داده های پردازش شده مختلف را تضمین نمی کند، پیشنهاد کرد. این مشکل در پردازنده های اینتل ظاهر می شود که از خانواده Ice Lake شروع می شود. مشکل مشابهی در پردازنده های ARM مشاهده می شود.

وجود وابستگی زمان اجرای دستورالعمل ها به داده های پردازش شده در این دستورالعمل ها توسط نویسنده وصله ها به عنوان یک آسیب پذیری در پردازنده ها در نظر گرفته می شود، زیرا چنین رفتاری نمی تواند امنیت عملیات رمزنگاری انجام شده در سیستم را تضمین کند. بسیاری از پیاده‌سازی الگوریتم‌های رمزنگاری برای اطمینان از اینکه داده‌ها بر زمان اجرای دستورالعمل‌ها تأثیر نمی‌گذارند، طراحی شده‌اند و نقض این رفتار می‌تواند منجر به ایجاد حملات کانال جانبی شود که داده‌ها را بر اساس تجزیه و تحلیل زمان پردازش آن بازیابی می‌کند.

به طور بالقوه، وابستگی داده در زمان اجرا نیز می تواند برای راه اندازی حملات برای تعیین داده های هسته از فضای کاربر استفاده شود. به گفته اریک بیگرز، زمان اجرای ثابت به طور پیش‌فرض حتی برای دستورالعمل‌هایی که عملیات اضافه و XOR را انجام می‌دهند و همچنین برای دستورالعمل‌های تخصصی AES-NI ارائه نمی‌شود (اطلاعاتی که توسط آزمایش‌ها تأیید نشده است، طبق داده‌های دیگر، یک تأخیر وجود دارد. چرخه در طی ضرب برداری و شمارش بیت).

برای غیرفعال کردن این رفتار، اینتل و ARM پرچم‌های جدیدی را پیشنهاد کرده‌اند: PSTATE بیت DIT (زمان‌بندی مستقل از داده) برای CPUهای ARM و بیت MSR DOITM (حالت زمان‌بندی مستقل داده‌ها) برای CPUهای اینتل، که رفتار قدیمی را با زمان اجرای ثابت برمی‌گرداند. اینتل و ARM توصیه می‌کنند که حفاظت را در صورت نیاز برای کدهای حیاتی فعال کنید، اما در واقعیت، محاسبات بحرانی می‌تواند در هر نقطه از هسته و فضای کاربر رخ دهد، بنابراین ما در نظر داریم حالت‌های DOITM و DIT را برای کل هسته همیشه فعال کنیم.

برای پردازنده های ARM، شاخه هسته لینوکس 6.2 قبلاً وصله هایی را اتخاذ کرده است که رفتار هسته را تغییر می دهد، اما این وصله ها ناکافی در نظر گرفته می شوند زیرا فقط کد هسته را پوشش می دهند و رفتار فضای کاربر را تغییر نمی دهند. برای پردازنده های اینتل، گنجاندن حفاظت در حال حاضر فقط در مرحله بررسی است. تأثیر وصله بر روی عملکرد هنوز اندازه‌گیری نشده است، اما طبق مستندات اینتل، فعال کردن حالت DOITM عملکرد را کاهش می‌دهد (به عنوان مثال، با غیرفعال کردن برخی بهینه‌سازی‌ها، مانند پیش‌بارگذاری ویژه داده‌ها) و در مدل‌های پردازنده آینده، کاهش عملکرد ممکن است افزایش یابد. .

منبع: opennet.ru

اضافه کردن نظر