اینتل در رمزنگاری کامل حافظه از AMD پیروی میکند
اینتل در رمزنگاری حافظه، راه رقیب خود AMD را خواهد پیمود. این شرکت در راستای کاهش و دفع حملات برای سرقت اطلاعات، امکان رمزنگاری جدیدی را معرفی کرده است.
اینتل از مجموعه پچ (patchset) جدیدی برای نسخهی جدید لینوکس کرنل (Linux kernel) رونمایی کرد که امکان رمزنگاری چندکلیدی کل حافظه (Multi-Key Total Memory Encryption) را فراهم میکند. این ویژگی افزونهی رمزنگاری کل حافظهی اینتل است که از رمزنگاری چند صفحه در حافظه، با کلیدهای رمزنگاری متفاوت پشتیبانی میکند (در کل تا ۶۴ حالت).
اینتل از AMD پیروی میکند
تا همین چند سال پیش، اینتل، AMD را در زمینهی امکانات امنیتی کاربرپسند رهبری میکرد؛ سپس AMD با معرفی معماری Zen، شروع به معرفی امکانات رمزنگاری حافظهی جدیدی کرد که چیپهای اینتل، حداقل برای سیپییوهای (CPU) سمت سرور، فاقد آن بودند.
رمزنگار ایمن حافظهی AMD (SME)، حافظه را با تنها یک کلید ذخیرهشده در سختافزار به منظور محافظت از دادهها دربرابر حملات فیزیکی رمزنگاری میکند (دربرابر دستیابی غیرمجاز شخص ثالث به دادههای لپتاپ های دزدیدهشده). در حالیکه رمزنگار ایمن مجازیساز AMD (SEV)، برای هر ماشین مجازی (virtual machine) یک کلید رمزنگاریشدهی منفرد ارائه میکند؛ بنابراین، از محتوای ماشین مجازی دربرابر هایپروایزرهای (Hypervisor) خرابکار محافظت میکند. این امکان مورد علاقهی مراکز داده است.
امروزه، اینتل ویژگی افزونهی محافظت نرمافزار (SGX) را در چیپهای معمولی و صنعتی استفاده میکند که با ایجاد «محدودهی امن» در هر بخش حافظه، برای مقادیر اندک داده مانند یک کلید رمزنگاری عمل میکند؛ اما SGX توان رمزنگاری کل حافظه یا ماشین مجازی (VM) را ندارد.
بهدنبال عرضهی SME و SEV توسط AMD، اینتل نیز کار روی رمزنگاری کل حافظه (TME) و اخیرا روی MKTME را شروع کرد. اینتل گفته است که در هر دو روش، کل حافظه در حالت خاموش، اجرا و انتقال داده محافظت میشود. به عبارت دیگر، اینتل تلاش میکند به AMD برسد و در صورت امکان از آن پیشی بگیرد. این ویژگیها هنوز فقط در چیپهای اینتل ممکن میشوند، بنابراین، AMD فرصت کافی برای واکنش دارد.
MKTME اینتل
برای اولینبار پلتفرم چیپهای جدید اینتل به پردازنده های این شرکت اجازه میدهند تا از MKTME برای رمزنگاری کامل حافظه استفاده کنند. برنامههای مختلف قادر خواهند بود دادههایشان را با کلیدهای جدید تولیدشده در سیستمعامل کرنل، رمزنگاری کنند؛ به این معنی که دادهها محرمانه میمانند و از دسترس برنامههای دیگر یا دیگر بخشهای سیستمعامل خارج میشوند.
معماری رمزنگاری جدید از رمزنگاری عادی حافظه، DRAM فرار (حافظهای است که با قطع شدن تغذیه، اطلاعات آن از دست خواهد رفت) و حافظهی غیر فرار (non-volatile memory) مثل حافظهی ۳D Xpoint نیز پشتیبانی میکند؛ در حالیکه مجموعه پچ لینوکس کرنل کنونی از حافظهی غیر فرار پشتیبانی نمیکند. این ویژگی در مجموعه پچهای جدید اضافه خواهد شد.
MKTME از الگوریتم رمزنگاری AES در حالت AES-XTS استفاده میکند؛ همان حالتی که توسط بسیاری از برنامههای رمزنگاری ذخیرهی داده شامل بیتلاکر (BitLocker) مایکروسافت استفاده میشود. این حالت، آدرس دستیابی فیزیکی به دادهها را هنگام رمزنگاری هر بلوک میگیرد تا اطمینان حاصل کند که همهی بلوکهای حافظه یک کلید متفاوت دریافت میکنند. این ویژگی از حملههای جابجایی بلوک (block-relocation)، که حمل کننده نیازمند دسترسی به صفحهی فیزیکی به اشتراک گذاشته شده قبل از هرگونه خرابکاری است، جلوگیری میکند.
پیشنهادها MKTME برای جلوگیری از حملات
ویژگی رمزنگاری MKTME، چند محدودکنندهی حمله نرمافزاری، شامل موارد زیر پیشنهاد میکند:
- حملهی نقشهی کرنل: افشاکنندههای اطلاعات که به نقشه مستقیم کرنل نفوذ میکنند، در مقابل افشای اطلاعات کاربر محدود شدهاند.
- حملهی نشت اطلاعات آزاد: خارج کردن یک کلید رمزنگاریشده از سختافزار، از افشای اطلاعات کاربر در آینده جلوگیری میکند.
دیگر محدودکنندههای مرتبط با حملات منحصر به سختافزار خاص، مثل evil DIMM یا DDR interposer:
- حملهی تکرار دامنهی متقاطع: دادهها از یک دامنه (مهمان) گرفته شده و در زمان دیگری تکرار میشوند.
- حملهی گرفتن دامنهی متقاطع و مقایسهی با تأخیر: دادهها گرفته شده و بعدا برای کشف اطلاعات محرمانه تحلیل میشوند.
- حملهی ازبینبردن کلید: دادهها گرفته شده و بهمنظور تضعیف خود رمزنگاری AES تحلیل میشوند.
حملات MDS / Spectre چه میشوند؟
آیا این امکانات رمزنگاری دربرابر حملات سایدچنل (side-channel) مثل Spectre یا خانوادهی MDS نیز مقاوم هستند؟ پاسخ خیر است. محققان همواره هشدار میدهند که رمزنگاری حافظه روش مناسبی برای متوقف کردن حملات سایدچنل نیست و درعوض، بلوکبندی یا محدود کردن دسترسی حافظه به بخشهای مشخصی از سیستم روش بسیار مناسبتری برای جلوگیری از چنین حملاتی است.
محققان همچنین چندین نقص نیز در SEV شرکت AMD پیدا کردهاند که به کاربران اجازهای سرقت اطلاعات را میدهد. حتی اگر امکانات اینتل با اصلاحات جدیدی عرضه شوند، دیگر نیازی نیست منتظر آزمونشان در طول زمان باشیم. چراکه به نظر میرسد چیپهای اینتل دربرابر حملات سایدچنل بسیار آسیبپذیرتر از چیپهای AMD باشند.
رمزنگاری حافظه مخصوصا زمانی اهمیت پیدا میکند که رایانهها شروع به استفاده از حافظهی غیر فرار میکنند؛ زیرا در این حالت میتوانند دادههای حساستری که در حالت عادی روی RAM دیسک هستند را ذخیره کنند. رمزگذاری نکردن این اطلاعات در حالت خاموش یا انتقال اطلاعات موجب خواهد شد تا حملهکنندگان بتوانند بهراحتی به آنها دسترسی پیدا کنند. به همین جهت، ارائهی رمزنگاری حافظه توسط هر دو شرکت اینتل و AMD باید بهعنوان ویژگی امنیتی مناسبی در نسل جدید CPUها تلقی شود.