آقای بنیامینی، محقق امنیتی مستقل، اخیرا متوجه آسیبپذیری اندروید در رمزگذاری کامل دیسک (FDE) بر روی دستگاههایی با چیپست کوالکام شده است و این مشکل حتی در پرچمداران جدید با تراشه اسنپدراگون نیز وجود دارد. بنیامینی روز پنجشنبه طی پستی در وبلاگ خود نحوه استخراج کلیدهای رمزگذاری شده از یک دستگاه قفل را به کمک روش خاصی را توضیح داده است.
اندروید در رمزگذاری کامل دیسک آسیبپذیر است.
این مشکل مربوط به هر دو بخش سخت افزاری و نرم افزاری محصولاتی اندرویدی است. این سیستم عامل کلید رمزگذاری کامل دیسک را در بخش نرم افزاری ذخیره میکند. به همین دلیل این کلیدهای رمزگذاری در دستگاههایی با تراشه ساخت کوالکام آسیبپذیر هستند. این مشکل به دلیل دو سهل انگاری مختلف به وجود آمده است: مهندسان کوالکام امنیت مبتنی بر سخت افزار را به کمک تراشههای نیمههادی به SoC متصل کردهاند. در این وبلاگ، کد بهره برداری مربوط به اجرای این روش نیز در اختیار مخاطبان قرار داده شده است تا به راحتی بتوان کلیدهای کدگذاری شده را استخراج کرده و سپس به روشهای مختلف آن را کرک کرد.
این فرد در ادامه توضیحاتی را در رابطه با عملکرد کمپانی اپل در رمزگذاری کامل دیسک در اختیار مخاطبان قرار داده است؛ کاربران این کمپانی میتوانند از امنیت اطلاعات و دیتای خود مطمئن باشند. در ادامه این مطلب میخواهیم به بررسی نحوه کارکرد دستگاههای اندرویدی و iOS در بخش رمزگذاری کامل دیسک بپردازیم.
هر دستگاه ساخته شده توسط کمپانی اپل با یک کلید 256 بیتی همراه است که امکان تغییر دادن آن وجود ندارد. این کد UID نام دارد. این کد به صورت رندمی در کارخانه اهالی کوپرتینو به سخت افزار هر آیفون و آیپد نسبت داده میشود. کلید مربوطه به سخت افزار دستگاه وابسته بوده و امکان دسترسی به آن از بخش نرم افزاری و سخت افزاری وجود ندارد؛ حتی خود اپل نیز پس از ثبت یک کد برای دستگاهی نمیتواند به UID دسترسی داشته باشد. کد UID در نهایت با پسورد کاربران ترکیب شده تا در نهایت کلید رمزگذاری کامل دیسک مختص آن کاربر تولید شود. چنین راهکاری، سد محکمی برای مهاجمان به سیستم عامل به شمار میآید و اوضاع را برای آنان بهشدت پیچیده خواهد کرد؛ بدینصورت که در مراحل مختلف، فرد باید حتما با دستگاه در حال کار کردن باشد. در این مراحل، پس از هر حدس اشتباه پسورد، کمپانی اپل مدت زمان بین مرحلههای بعد را بیشتر میکند.
در طرف مقابل، رمزگذاری کامل دیسک در سیستم عامل اندروید مبتنی بر یک کرنل زیر دسته لینوکس با نام dm-crypt است که به صورت گسترده مورد بررسی و پژوهش طراحان قرار گرفته بود و این یک نکته مثبت در زمینه امنیتی تلقی میشود. طرح کدگذاری این سیستم به استحکام امنیتی آن کمک شایانی کرده است اما متاسفانه این سیستم تا زمانی قدرتمند است که کلید رمزگذاری کامل دیسک منتشر نشده باشد. به عبارت سادهتر، هر دستگاه اندرویدی با سیستم عامل اندروید 5.0 به بالا به صورت رندم دو کد 128 بیتی تولید میکند. کلید اصلی بهوسیله یک طرح خاص و پیچیده محافظت میشود؛ استخراج این کلید شامل آنلاک شدن بخشهای مختلف توسط کاربر است. در نهایت کلید اصلی (Master Key) در دستگاه ذخیره میشود؛ در درون یک ساختار خاص (اما کدگذاری نشده) به نام Crypto Footer. امکان استخراج این کد به روشهای مختلف وجود دارد. البته این کار آنچنان ساده نیست، اما غیر ممکن هم نخواهد بود، چراکه این کلید مبتنی بر سخت افزار محصول نیست.
اما خبر بد برای کاربران اندرویدی این است که طبق ادعای بنیامینی، پچ کردن بخش TrustZone نیز نمیتواند مشکل امنیتی کاربران را رفع کند، چراکه حتی در دستگاههای پچ شده کاربران، هکرها میتوانند به فایل ایمیج کدگذاری دیسک دسترسی پیدا کرده و دستگاه را به حالتهای آسیبپذیر گذشته (قبل از پچ شدن) برگردانده، به کمک Trustzone کلید مربوطه را استخراج کرده و سپس آن را کرک کنند.
بااینکه هر دو آسیبپذیری مربوطه در اندروید در سال جاری رفع شدهاند، برخی منابع مستقل طی گزارشهایی از آسیبپذیر بودن بسیاری از دستگاههای کاربران خبر دادهاند؛ به هر حال افراد زیادی هماکنون این پچهای امنیتی گوگل را دریافت نکردهاند.
با تمام این موارد، آقای بنیامینی ادعا کرده است که کاربران عادی معمولا قربانی چنین حملاتی نخواهند شد، چراکه مراحل طولانی و پیچیده استخراج و هک این کلید کدگذاری شده بسیاری از مهاجمان را ناامید میکند. با این حال کاربران حرفهای سیستم عامل اندروید هنوز هم در خطر هستند. بنیامینی در حال حاضر سعی دارد تا به کمک کمپانی گوگل و کوالکام به راهکاری مناسب در این زمینه برسد. نظر شما در مورد این مقاله چیست؟