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

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در رمزنگاری، حملهٔ راه‌اندازی سرد (به انگلیسی: 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 وجود نخواهد داشت، و حتی با وجود نیاز به تجدید محاسبهٔ کلید اندکی سریعتر از رمزنگاری استاندارد می‌باشد.

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

Wikipedia contributors, "Cold boot attack," Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=Cold_boot_attack&oldid=499585800 (accessed July 16, 2012).