حمله راه‌اندازی سرد

در رمزنگاری، حملهٔ راه‌اندازی سرد (به انگلیسی: Cold boot attack) یا در مقیاس کوچکتر، حملهٔ راه‌اندازی مجدد صفحه نوعی از جمله کانال یک‌طرفه می‌باشد که در آن شخص حمله‌کننده با دسترسی فیزیکی به یک کامپیوتر قادر به بازیافتن کلید رمز از سیستم عامل در حال اجرا بعد از استفاده از cold report برای راه‌اندازی مجدد ماشین.

این حمله به مقدار پسماند داده‌های DRAM و SRAM برای بازیابی محتوای حافظه‌ای که به صورت قابل خواندن از چند ثانیه تا چند دقیقه پس از قطع منبع انرژی باقی می‌ماند، بستگی دارد.

شرح[ویرایش]

برای اجرای این حمله، ماشین راه‌اندازی سرد شده‌است، راه‌اندازی سرد، اشاره به وقتی دارد که منبع انرژی به صورت چرخه‌ای بدون این که به کامپیوتر اجازهٔ خاموش شدن کامل را بدهد، قطع و وصل می‌شود، و یا، در صورت امکان، فشار دادن دکمهٔ reset می‌باشد. سپس یک سیستم عامل سبک وزن به صورت بلافاصله بوت می‌شود، (مثلاً از یک فلش)، و محتوای پیش‌راه‌انداز حافظه (pre-boot memory) در یک فایل نسخه بردای می‌شود. به‌طور متناوب، تکه‌های حافظه از سیستم اولیه پاک شده و سریعاً در یک ماشین دیگر که تحت کنترل فرد حمله‌کننده‌است جایگزین می‌شود که این ماشین بعداً برای دسترسی به حافظه بوت خواهد شد. سپس تحلیل‌ها و بررسی‌های بیشتر می‌تواند در اطلاعات نسخه برداری شده از حافظه به منظور پیدا کردن داده‌های حساس مختلف مانند کلیدهای مشمول در آن انجام گیرد (بسیاری از ابزارها هم‌اکنون این کار را به صورت خودکار انجام می‌دهند). ثابت شده‌است که این حمله در مقابل طرح full disk encryption فروشنده‌های مختلف و سیستم عامل‌های گوناگون بسیار مؤثر می‌باشد، حتی وقتی که یک (Trusted Platform Module) TPM رمزپرداز امن مورد استفاده قرار گرفته باشد و این به این دلیل می‌باشد که مشکل اساساً به سخت‌افزار مرتبط می‌باشد (در واقع به یک حافظهٔ ناامن) و نه به یک ایدهٔ نرم‌افزاری. از آن‌جایی که تمرکز تحقیقات اخیر بر روی رمزنگاری دیسک می‌باشد، هر دادهٔ حساسی که در حافظه نگهداری می‌شود در مقابل حمله آسیب‌پذیر می‌باشد.

پنچرهٔ زمانی برای یک حمله می‌تواند به وسیلهٔ خنک‌سازی قطعه‌های حافظه تا چند ساعت هم بسط داده شود. علاوه بر این، همین که یک بیت در حافظه در طول مدت ناپدید شود، می‌تواند بازسازی گردد، همان‌طور هم اگر که آن‌ها در یک طریقهٔ قابل پیش‌بینی ناپدید گردند

در مورد برنامه‌های رمز نگاری دیسک سخت که می‌توانند به منظور اجازه دادن به سیستم عامل برای بوت شدن بدون یک pre-boot PIN شکل گرفته باشد یا کلیدهای سخت‌افزاری موجودند. (برای مثال BitLocker در حالت ساده اش که از TPM بدون PIN با احراز هویت ۲ مرحله‌ای یا کلید USB استفاده می‌کند) در مورد قاب زمانی برای یک حمله هیچ گونه محدودیتی وجود ندارد.

این تنها حمله‌ای نیست که به کلیدهای رمزنگاری اجازهٔ خوانده شدن از از حافظه را می‌دهد، برای مثال، یک DMA attack به حافظهٔ فیزیکی اجازهٔ دسترسی از طریق کانال 1394 DMAرا می‌دهد. در صورتی که این موضوع به صورت یک تهدید خود نمایی کند مایکروسافت تغییراتی را در تنظیمات پیش‌فرض ویندوز برای جلوگیری از این مورد اعمال می‌کند.

سبک‌سازی[ویرایش]

پیاده‌سازی دیسک‌های رمزنگاری شده[ویرایش]

بسیاری از سیستم‌های رمزنگاری‌های دیسک سخت، کلیدهای رمزنگاری کش شده در خودشان را به عنوان دیسک‌های رمزنگاری شده‌ای که پیاده‌سازی شده‌اند بازنویسی می‌کنند. بنابر این، اطمینان از این که همهٔ دیسک‌های رمزنگاری شده هنگامی که کامپیوتر در حالتی است که امکان دزدیده شدن وجود دارد، پیاده‌سازی شده‌اند (ایمن اند)، ممکن است این خطر را رفع کند و همچنین نشانگر بهترین حالت آن باشد.

حالت‌های رمزنگاری پیشرفته[ویرایش]

تنظیمات پیش‌فرض بیت لوکر از یک TPM بدون bootPIN یا کلید خارجی استفاده می‌کند. در این تنظیمات، کلید رمزنگاری دیسک، از شفافیت TPM در طول مراحل متوالی بالا آمدن سیستم عامل، بدون هیچ گونه دخالت کاربر؛ بازیابی می‌شود.

در نتیجه حملهٔ راه‌اندازی سرد می‌تواند هنوز در برابر ماشین‌هایی با این پیکربندی اجرا شود، حتی جایی که خاموش باشد و ظاهراً با تنها کلیدش در TPM امن شده باشد، همین که ماشین بتواند قبل از آغاز یک حمله به سادگی روشن شود.

تصدیق هویت ۲ مرحله‌ای، مانند pre-boot PIN و/یا USB قابل پاک شدن شامل یک کلید راه‌اندازی به همراه یک TPM می‌شود، که می‌تواند برای کار پیرامون این آسیب‌پذیری در پیاده‌سازی پیش‌فرض بیت لاکر استفاده شود. در این حالت؛ یک PIN یا کلید راه‌اندازی وقتی که ماشین روشن می‌شود یا وقتی که در حالت هایبرنت کار می‌کند (حالت قطع منبع انرژی) مورد نیاز است. نتیجه چنین خواهد بود که همین که کامپیوتر برای چند دقیقه خاموش شود، داده‌های درون RAM دیگر بدون کلید محرمانه قابل دسترسی نخواهد بود؛ این حمله تنها در صورتی می‌تواند کامل شود که وسیله مادامی که روشن است به دست گرفته شود. هیچ حفاظت اضافه‌ای در طول حالت sleep (حالت کم مصرف انرژی) پیشنهاد نشده‌است؛ بدین صورت که کلید نوعاً در حافظه با رمزنگاری کامل دیسک باقی می‌ماند و لازم به مجدداً وارد کردن آن به هنگامهٔ ادامهٔ کار سیستم نمی‌باشد.

مدیریت منبع انرژی[ویرایش]

خاموش کردن یک کامپیوتر باعث تعدادی از بسته‌های نرم‌افزاری معروف رمزنگاری برای پیاده‌سازی داده‌های رمز شده و پاک کردن کلیدهای رمزنگاری از حافظه می‌گردد. هنگامی که یک ماشین خاموش می‌شود یا منبع انرژی خود را از دست می‌دهد در حالی که رمزنگاری هنوز پایان نپذیرفته‌است (اتفاقاتی مانند فقدان اتفاقی منبع انرژی) داده‌ها ممکن است از چند ده ثانیه تا چندین دقیقه قابل خواندن باقی بمانند که این مدت زمان به حافظهٔ RAM فیزیکی در ماشین بستگی خواهد داشت. اطمینان از این که کامپیوتر به هنگامهٔ احتمال سرقت خاموش است می‌تواند از مقدار خطرات بکاهد.

برای سیستم‌هایی که از ویژگی‌های خواب زمستانی سیستم (hibernation feature (ACPI state S4),) استفاده می‌کنند، در سیستم رمزنگاری باید هم همهٔ دیسک‌های رمزنگاری شده را به هنگامهٔ ورود به حالت خواب زمستانی پیاده‌سازی شود و هم فایل یا قسمت خواب زمستانی نیاز به رمزنگاری به عنوان قسمتی از سیستم رمزنگاری دیسک خواهد داشت.

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

سامانه‌های سازگار با تی‌سی‌جی[ویرایش]

یک روش کاهش دیگر استفاده از سخت‌افزار و یک سیستم عامل است که هر دو با "TCG Platform Reset Attack Mitigation Specification", مطابقت داشته باشند. یک واکنش صنعتی به این حملهٔ خاص.

این خصوصیات bios را مجبور به بازنویسی حافظه در طول POST در صورت خاموش نشدن کامل و صریح کامپیوتر خواهد کرد.

هر چند این اندازه‌ها هنوز می‌تواند با پاک کردن عناصر حافظه از سیستم و خواندن مجدد آن در یک سیستم دیگر تحت کنترل حمله‌کننده که این اندازه‌ها را حمایت نمی‌کند مورد دستکاری قرار داده شود (همانطوری‌که در صفحهٔ اصلی شرح داده شد)

بوت شدن[ویرایش]

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

ذخیره‌سازی کلید در ثبات‌های سی‌پی‌یو[ویرایش]

هسته‌های مرکزی مانند TRESOR (در لینوکس)، ارائه شده در USENIX Security 2011، شالودهٔ سیستم عامل را اصلاح می‌کند، بنابراین ثبات‌های واحد مرکزی پردازش (CPU) یا در مورد لینوکس و TRESORs, x86 debug registers، می‌تواند به جای RAM برای ذخیرهٔ کلید رمزنگاری مورد استفاده قرار گیرد، کلیدهایی که در اینجا ذخیره می‌شوند نمی‌توانند به آسانی از منطقهٔ کاربر قابل خواندن باشند و هنگامی هم که کامپیوتر به هر دلیل ی RESTART شود از بین خواهند رفت.
TRESOR از یک کلید معلق نزدیک به کلید اصلی استفاده می‌کند، و از دسترسی معمولی برای اشکال زدایی ثبات‌ها به وسیلهٔ ptrace برای امنیت ممانعت به عمل می‌آورد. تنها AES واحد مرکزی پردازش را به عنوان یک روال رمزنگاری اضافه، اضافه می‌کند.

توسعه دهندگان سعی در اجرای TRESOR در یک واحد مرکزی پرداش ۶۴ بیتی که از AES-NI پشتیبانی می‌کند دارند، در این صورت هیچ خطای عملکردی ای در مقایسه با پیاده‌سازی عمومی و عادی AES وجود نخواهد داشت، و حتی با وجود نیاز به تجدید محاسبهٔ کلید اندکی سریعتر از رمزنگاری استاندارد می‌باشد.

منابع[ویرایش]