محققان از گروه NCC
به یاد بیاوریم که فناوری ARM TrustZone به شما امکان می دهد محیط های محافظت شده ایزوله سخت افزاری ایجاد کنید که به طور کامل از سیستم اصلی جدا شده و با استفاده از یک سیستم عامل تخصصی جداگانه روی یک پردازنده مجازی مجزا اجرا شوند. هدف اصلی TrustZone ارائه اجرای جداگانه پردازنده ها برای کلیدهای رمزگذاری، احراز هویت بیومتریک، داده های پرداخت و سایر اطلاعات محرمانه است. تعامل با سیستم عامل اصلی به طور غیر مستقیم از طریق رابط اعزام انجام می شود. کلیدهای رمزگذاری خصوصی در یک فروشگاه کلید جدا شده از سخت افزار ذخیره می شوند، که اگر به درستی اجرا شوند، در صورت به خطر افتادن سیستم اصلی، می توانند از نشت آنها جلوگیری کنند.
این آسیبپذیری به دلیل نقص در اجرای الگوریتم پردازش منحنی بیضوی است که منجر به نشت اطلاعات در مورد پیشرفت پردازش دادهها شد. محققان تکنیک حمله کانال جانبی را توسعه دادهاند که اجازه میدهد از نشتهای غیرمستقیم موجود برای بازیابی محتویات کلیدهای خصوصی واقع در یک سختافزار ایزوله استفاده شود.
علت اصلی مشکل اشتراک گذاری اجزای سخت افزاری مشترک و حافظه نهان برای محاسبات در TrustZone و در سیستم اصلی است - ایزوله در سطح جداسازی منطقی انجام می شود، اما با استفاده از واحدهای محاسباتی رایج و با ردپایی از محاسبات و اطلاعات مربوط به شاخه آدرسهایی که در حافظه پنهان پردازنده مشترک ذخیره میشوند. با استفاده از روش Prime+Probe، بر اساس ارزیابی تغییرات زمان دسترسی به اطلاعات ذخیرهشده، میتوان با بررسی وجود الگوهای خاص در حافظه پنهان، جریان دادهها و علائم اجرای کد مرتبط با محاسبات امضای دیجیتال در حافظه پنهان را بررسی کرد. TrustZone با دقت نسبتا بالا.
بیشتر زمان برای تولید یک امضای دیجیتال با استفاده از کلیدهای ECDSA در تراشه های کوالکام صرف انجام عملیات ضرب در یک حلقه با استفاده از یک بردار اولیه می شود که برای هر امضا بدون تغییر است.
در مورد Qualcomm، دو مکان که در آن چنین اطلاعاتی درز کرد در الگوریتم ضرب شناسایی شد: هنگام انجام عملیات جستجو در جداول و در کد بازیابی داده های شرطی بر اساس مقدار آخرین بیت در بردار "nonce". با وجود این واقعیت که کد Qualcomm شامل اقداماتی برای مقابله با نشت اطلاعات از طریق کانال های شخص ثالث است، روش حمله توسعه یافته به شما امکان می دهد این اقدامات را دور بزنید و چندین بیت از مقدار "nonce" را تعیین کنید، که برای بازیابی کلیدهای 256 بیتی ECDSA کافی است.
منبع: opennet.ru