رفتن به محتوای اصلی
Koohestun
توضیح کوهستانامنیت سخت‌افزارکالبدشکافی· 4 دقیقه مطالعه· در فناوری

کالبدشکافی منطقه امن (Secure Enclave): گوشی شما واقعاً چگونه اثر انگشتتان را از خود سیستم‌عامل مخفی می‌کند؟

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

به قلم نیما موسوی

طراحان تراشه 40%پژوهشگران آسیب‌پذیری 40%تحلیلگران معماری سیستم 20%
طراحان تراشه
معتقدند جداسازی سخت‌افزاری تنها راه قطعی برای تامین امنیت در برابر بدافزارهای سطح سیستم‌عامل است.
پژوهشگران آسیب‌پذیری
تاکید دارند که هیچ سخت‌افزاری غیرقابل نفوذ نیست و حملات فیزیکی پیچیده می‌توانند این سدهای امنیتی را دور بزنند.
تحلیلگران معماری سیستم
این فناوری را یک مصالحه عمل‌گرایانه می‌دانند که امنیت داده‌های حیاتی را از پیچیدگی‌های نرم‌افزاری جدا می‌کند.

دیدگاه‌هایی که این گزارش پوشش نداده

  • توسعه‌دهندگان اپلیکیشن‌های شخص ثالث
  • تعمیرکاران مستقل سخت‌افزار

نکات کلیدی

  • منطقه امن (Secure Enclave) یک کامپیوتر مستقل درون پردازنده گوشی است که سیستم‌عامل خود را دارد.
  • داده‌های بیومتریک مانند اثر انگشت هرگز وارد سیستم‌عامل اصلی (اندروید یا iOS) نمی‌شوند.
  • امنیت این سیستم بر پایه یک کلید سخت‌افزاری (UID) استوار است که در کارخانه درون سیلیکون حک می‌شود.
  • پژوهشگران امنیتی با استفاده از نوسانات مصرف برق پردازنده (حملات کانال جانبی) تلاش می‌کنند این سدها را بشکنند.

در سپتامبر ۲۰۱۳، زمانی که مهندسان اپل در آزمایشگاه‌های کوپرتینو در حال نهایی کردن طراحی پردازنده A7 برای آیفون 5s بودند، با یک معمای فیزیکی روبه‌رو شدند. آن‌ها می‌خواستند حسگر اثر انگشت (Touch ID) را برای اولین بار به گوشی‌های هوشمند بیاورند، اما می‌دانستند که سیستم‌عامل iOS با میلیون‌ها خط کد، بیش از حد پیچیده است که بتواند یک گاوصندوق غیرقابل نفوذ باشد. راه‌حل آن‌ها نوشتن کدهای امنیتی پیچیده‌تر نبود؛ بلکه ساختن یک دیوار بتنی در مقیاس نانومتر بود.[2]

شرکت‌های فناوری در کمپین‌های بازاریابی خود همواره تکرار می‌کنند که «اطلاعات بیومتریک شما هرگز از دستگاه خارج نمی‌شود». اما این ادعا یک لایه پنهان و بدبینانه‌تر دارد: این داده‌ها نه تنها از گوشی خارج نمی‌شوند، بلکه حتی به سیستم‌عامل اصلی خود گوشی نیز اعتماد ندارند. اگر یک بدافزار موفق شود دسترسی ریشه (Root) به اندروید یا iOS پیدا کند، چرا نمی‌تواند به سادگی فایل حاوی اثر انگشت یا چهره شما را بخواند؟[5]

پاسخ این سوال در مفهومی به نام «محیط اجرای قابل‌اعتماد» (TEE) نهفته است. در دنیای اپل این بخش «منطقه امن» (Secure Enclave) و در معماری پردازنده‌های آرم «تراست‌زون» (TrustZone) نامیده می‌شود. این سیستم در واقع یک کامپیوتر مینیاتوری و کاملاً مستقل است که درون پردازنده اصلی (SoC) جوش خورده است. این کامپیوتر کوچک دارای پردازنده اختصاصی، حافظه رم جداگانه (معمولاً حدود ۴ مگابایت) و سیستم‌عامل بسیار ابتدایی و اختصاصی خود است.[1][2]

مستندات رسمی امنیت پلتفرم اپل این انزوا را به صراحت بیان می‌کنند: «منطقه امن یک زیرسیستم امنیتی اختصاصی است که... از پردازنده اصلی جدا شده است تا حتی در صورت به خطر افتادن هسته سیستم‌عامل، امنیت داده‌ها حفظ شود.» این یعنی سیستم‌عامل اصلی گوشی شما، از نظر معماری سخت‌افزاری، مانند یک شهروند عادی است که پشت درهای بسته یک پایگاه نظامی ایستاده و اجازه ورود ندارد.[2]

اما این دو سیستم چگونه با هم صحبت می‌کنند؟ وقتی انگشت خود را روی حسگر می‌گذارید یا به دوربین تشخیص چهره نگاه می‌کنید، داده‌های خام بیومتریک به سیستم‌عامل اندروید یا iOS ارسال نمی‌شوند. این داده‌ها از طریق یک گذرگاه سخت‌افزاری رمزنگاری‌شده مستقیماً به TEE می‌روند. سیستم‌عامل اصلی تنها می‌تواند یک درخواست به این منطقه امن بفرستد: «آیا این شخص صاحب گوشی است؟»[3]

این داده‌ها از طریق یک گذرگاه سخت‌افزاری رمزنگاری‌شده مستقیماً به TEE می‌روند.

محیط اجرای قابل‌اعتماد، داده‌های ورودی را با الگوهای ریاضی ذخیره شده در حافظه ایزوله خود مقایسه می‌کند. این فرآیند معمولاً کمتر از ۵۰ میلی‌ثانیه طول می‌کشد. سپس، TEE یک پاسخ ساده «بله» یا «خیر» (یک توکن رمزنگاری‌شده) را از زیر در به بیرون می‌فرستد. سیستم‌عامل اصلی هرگز نمی‌فهمد که اثر انگشت شما چه شکلی است؛ فقط می‌فهمد که نگهبان امنیتی داخل تراشه، هویت شما را تایید کرده است.[1][3]

فراتر از انزوای فیزیکی، پایه‌های این امنیت بر روی رمزنگاری در هم تنیده بنا شده است. در کارخانه سازنده، یک «شناسه یکتا» (UID) به صورت فیزیکی درون سیلیکون هر تراشه سوزانده می‌شود. این شناسه یک کلید رمزنگاری ۲۵۶ بیتی است که حتی خود شرکت سازنده (مانند اپل یا کوالکام) نیز آن را نمی‌داند و هیچ نرم‌افزاری نمی‌تواند آن را بخواند.[2]

تمام داده‌های حساس درون گوشی با استفاده از این کلید سخت‌افزاری رمزنگاری می‌شوند. به همین دلیل است که اگر یک هکر حافظه فلش گوشی شما را از روی مادربرد جدا کند و آن را به یک دستگاه خوانشگر متصل کند، تنها با کوهی از داده‌های بی‌معنی روبه‌رو می‌شود. بدون حضور فیزیکی همان پردازنده‌ای که داده‌ها را رمزنگاری کرده، باز کردن قفل اطلاعات از نظر ریاضی غیرممکن است.[5]

با این حال، نگاه بدبینانه و علمی به ما می‌گوید که هیچ سیستمی کاملاً غیرقابل نفوذ نیست. پژوهشگران امنیت سخت‌افزار به جای تلاش برای شکستن الگوریتم‌های رمزنگاری، به سراغ روش‌های خلاقانه‌تری به نام «حملات کانال جانبی» (Side-Channel Attacks) می‌روند. در این روش‌ها، مهاجم به جای حمله مستقیم به درهای بسته، به سایه‌ها و صداهای خروجی از اتاق گوش می‌دهد.[4]

یک مقاله پژوهشی منتشر شده در موسسه مهندسان برق و الکترونیک (IEEE) در سال ۲۰۲۳ نشان می‌دهد که چگونه می‌توان با اندازه‌گیری دقیق نوسانات مصرف برق پردازنده یا تشعشعات الکترومغناطیسی آن در حد میکروثانیه، به اطلاعات درون TEE پی برد. وقتی پردازنده در حال محاسبه یک کلید رمزنگاری است، بسته به اینکه در حال پردازش عدد صفر باشد یا یک، مقدار ولتاژ بسیار ناچیزی (در حد چند میلی‌ولت) تغییر می‌کند.[4]

با ثبت هزاران باره این نوسانات و استفاده از الگوریتم‌های آماری پیچیده، هکرهای دانشگاهی توانسته‌اند در شرایط آزمایشگاهی، بخش‌هایی از کلیدهای امنیتی را استخراج کنند. شرکت‌های سازنده تراشه نیز در یک موش و گربه بازی دائمی، با اضافه کردن نویزهای مصنوعی به مصرف برق پردازنده یا تغییر مداوم فرکانس کاری، سعی در خنثی کردن این حملات دارند.[1][4]

معماری محیط اجرای قابل‌اعتماد نشان‌دهنده یک تغییر پارادایم در طراحی کامپیوترهاست. مهندسان سخت‌افزار پذیرفته‌اند که نوشتن یک سیستم‌عامل بی‌نقص و بدون باگ غیرممکن است. بنابراین، آن‌ها یک قایق نجات ضدگلوله درون کشتی سیستم‌عامل ساخته‌اند تا حتی اگر کل سیستم غرق در بدافزار شد، حیاتی‌ترین اسرار شما — یعنی هویت بیومتریک و کلیدهای بانکی — دست‌نخورده باقی بمانند.[5]

اصطلاحات کلیدی

محیط اجرای قابل‌اعتماد (TEE)
یک بخش ایزوله در پردازنده اصلی که امنیت و یکپارچگی کدها و داده‌های بارگذاری شده در آن را مستقل از سیستم‌عامل تضمین می‌کند.
حمله کانال جانبی (Side-Channel Attack)
روشی برای هک کردن سیستم‌ها با اندازه‌گیری خروجی‌های فیزیکی آن‌ها در حین کار، مانند مصرف برق، حرارت یا امواج الکترومغناطیسی.
شناسه یکتا (UID)
یک کلید رمزنگاری سخت‌افزاری که در زمان تولید درون تراشه حک می‌شود و هیچ نرم‌افزاری قادر به خواندن مستقیم آن نیست.

پرسش‌های متداول

آیا شرکت‌های سازنده می‌توانند اثر انگشت من را ببینند؟

خیر. داده‌های بیومتریک در منطقه امن پردازنده به صورت محلی رمزنگاری می‌شوند و هرگز به سرورهای ابری یا حتی سیستم‌عامل گوشی ارسال نمی‌شوند.

اگر پردازنده گوشی بسوزد، اطلاعات منطقه امن قابل بازیابی است؟

خیر. کلیدهای رمزنگاری به صورت فیزیکی درون همان تراشه قرار دارند و با نابودی آن، داده‌های رمزنگاری‌شده برای همیشه غیرقابل دسترس می‌شوند.

آیا بدافزارها می‌توانند منطقه امن را هک کنند؟

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

منابع

پوشش منابع

5 منبع

3 دیدگاه شناسایی‌شده

طراحان تراشه 40%پژوهشگران آسیب‌پذیری 40%تحلیلگران معماری سیستم 20%
  1. [1]ARM Developerطراحان تراشه

    TrustZone technology for Cortex-A processors

    مطالعه در ARM Developer
  2. [2]Apple Supportطراحان تراشه

    Secure Enclave - Apple Platform Security

    مطالعه در Apple Support
  3. [3]Android Open Source Projectطراحان تراشه

    Trusty TEE

    مطالعه در Android Open Source Project
  4. [4]IEEE Xploreپژوهشگران آسیب‌پذیری

    A Survey on Trusted Execution Environments: Side-Channel Attacks and Mitigations

    مطالعه در IEEE Xplore
  5. [5]تیم سردبیری کوهستانتحلیلگران معماری سیستم

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

دریافت فناوری اخبار همراه با پوشش کامل منابع و تحلیل دیدگاه‌ها، مستقیم در صندوق ورودی شما.