همانطور که میدانید، امروزه اینترنت اشیاء به شکل روزافزونی در جهان، در حال گسترش است و خانهها، شهرها و همچنین صنعت را دچار تحول کرده است. در بسیاری از کاربردهای اینترنت اشیاء، اطلاعات مهمی توسط دستگاهها ذخیره یا ردوبدل میشود. بنابراین نیاز به تضمین امنیت این اطلاعات نیز به وجود میآید. این نیاز بهوسیلهی “معماری امنیت پلتفرم” یا PSA تأمین میشود. یکی از فناوریهای بسیار مؤثر در این زمینه، فناوری Trustzone شرکت ARM است. برای بررسی جزییات این فناوری با سیسوگ همراه شوید.
هک کازینو از طریق دستکاری دماسنج آکواریوم!
اما قبل ازآنکه به معرفی بیشتر تکنولوژی TrustZone بپردازیم، اتفاق بسیار جالبی را برای درک اهمیت امنیت دنیای دیجیتال بررسی میکنیم. طبق گزارشی در سال 2018 و در کازینوی North American هکرها بهوسیله دستکاری دماسنج موجود در ظرف آب ماهی توانستند به شبکه نفوذ کنند! بدینوسیله آنها موفق شدند به اطلاعات مربوط به بازی High roller دسترسی پیدا کنند.
چنین اتفاقی به دلیل ضعف امنیتی اینترنت اشیاء ممکن شده است. میدانیم که اینترنت اشیاء مجموعهای از “اشیاء هوشمند” هستند که به یک شبکه و پایگاه داده متصلاند. چنین سیستمی طعمه بسیار خوبی برای هکرها به شمار میرود. زیرا اکثر این اشیاء از سطح امنیت لپتاپ، گوشیهای هوشمند یا سرورها برخوردار نیستند و بدتر از آن اینکه بسیاری از کسانی که از اینترنت اشیاء استفاده میکنند از چنین ریسکهای امنیتی بیخبرند.
همانطور که تیم ارلین، معاون مدیریت تولید در شرکت Tripwire میگوید:
تامین امنیت یک محیط تلفیقی IT-OT چالشهای جدید زیادی برای صنعت به وجود آورده است.
همچنین اضافه کرد:
درگذشته امنیت سایبری روی منابع IT مثل سرورها و workstation ها متمرکز بود، اما بااتصال روزافزون سیستمها، کار را برای متخصصان امنیت بسیار پیچیدهتر کرده است، بهطوریکه برای تأمین امنیت نیازمند دانستن هر چه بیشتر در مورد محیط و عوامل تأثیرگذار آن هستند.
بنابراین برای مقابله با این مسئله، باید بهطور مرتب امنیت شبکه خود را بررسی کنیم تا بتوانیم از وقوع چنین اتفاقاتی جلوگیری کنیم. همچنین باید مطمئن شویم که در تمامی دستگاهها و بخشهای شبکه از تکنولوژی و روشهای امنیتی مناسب، استفادهشده است.
فناوری TrustZone چیست؟
TrustZone حدود یک دهه پیش توسط ARM در حال و هوایی معرفی شد که جنجال بحث ماژولهای پلتفرم مورد اعتماد (TPM) به اوج رسیده بود. مشابه وظیفهای که چیپهای TPM برای “قابلاعتماد کردن” کامپیوترهای شخصی داشتند، هدف TrustZone نیز ایجاد امنیت و اعتماد در پلتفرمهای بر پایه ARM بود. Trusted Platform Module(TPM) توسط سرویسهای مختلفی ازجمله BitLocker و Windows Hello برای ساخت و ذخیره امن کلیدهای رمزنگاری و همچنین اطمینان از صحت عملکرد سیستمعامل و فریمور استفاده میشود.
فناوری TrustZone، طبق تعریف شرکت ARM، اهکاری برای اجرای Trusted Boot و Trusted OS و درنتیجه ایجاد یک محیط اجرای امن (TEE) است. کاربردهای معمول آن تأمین امنیت مکانیزمهای احراز هویت، رمزنگاری، مدیریت دستگاه موبایل، پرداخت، اطلاعات کلیدی و همچنین مدیریت حقوق دیجیتال (DRM) معرفیشدهاند. فناوری Trustzone در پردازندههای سری Cortex-M امکان فراهم کردن سطح بالای محافظت را در تمامی نقاط حساس، برای دستگاههای IoT به وجود آورده است. درواقع این محافظت از طریق ایزوله کردن فریمور امنیتی و اطلاعات حیاتی از دیگر اطلاعات، و درنتیجه کم کردن ریسک حمله به سیستم، ایجاد میشود.
چگونگی عملکرد فناوری Trustzone
کلیت راهکار TrustZone جداسازی سختافزاری محیط امن از محیط ناامن است. بهطوریکه نرمافزارهای ناامن امکان دسترسی مستقیم به منابع محافظتشده را نداشته باشند. نرمافزارها یا در محیط امن قرار دارند یا در محیط غیر امن، امکان سوییچ بین این دو بهوسیله نرمافزار دیگری به نام secure monitor فراهم میشود. درواقع ایجاد مفهوم محیط امن بهوسیله معرفی یک حالت جدید پردازنده ARM به نام “حالت امن” صورت گرفت. این حالت پردازنده که در مقابل حالت کار عادی آن قرار میگیرد. این حالت امن تنها برای پردازنده تعریف میشود بلکه به بأس سیستم، دستگاههای جانبی و کنترلکنندههای حافظه نیز تعمیم مییابد. بدین طریق پلتفرم موردنظر بهنوعی تبدیل به یک موجود دو شخصیتی خواهد شد. هنگامیکه حالت امن فعال باشد، نرمافزار در حال اجرا، نسبت به نرمافزاری که در حالت نرمال یا ناامن اجرا میشود، نمای متفاوتی از کل سیستم دارد. بنابراین توابع سیستمی، بهخصوص توابع امنیتی و اطلاعات رمزنگاریشده و حیاتی از محیط ناامن مخفی خواهند شد.
در تصویر بالا مفهوم دو محیط امن و ناامن نمایش دادهشدهاند. در زمان فعال بودن محیط عادی یا امن، بیت non-secure یک میشود و سیستمعامل تنها به بخشی از منابع فیزیکی موجود دسترسی خواهد داشت. هنگامیکه تغییر محیط صورت میگیرد، حالت امن حاکم میشود و درنتیجه نرمافزار سیستمی در حال اجرا، به منابعی که از محیط عادی مخفی بودند دسترسی دارد.
مدل گسترشیافته امنیتی ARM، به طراحان سیستم این امکان را میدهد که منابع سختافزاری و نرمافزاری را تقسیمبندی کنند و دریکی از دو دسته امن یا معمولی قرار دهند. یک طراحی سیستم صحیح باید بهگونهای باشد که هیچیک از منابع محیط امن بهوسیله محیط عادی قابلدسترسی نباشد. با همین منطق، در یک طراحی امن، تمامی منابع حساس و مهم در محیط امن قرارگرفتهاند و در حالت ایده آل، نرمافزار قابل اتکایی دارد که نسبت به بسیاری از حملههای نرمافزاری، مقاوم است.
سوییچ بین محیط امن و محیط ناامن
پیشتر اشاره مختصری شد که سوییچ بین محیطها توسط یک نرمافزار صورت میگیرد (که بانام secure monitor شناخته میشود) میتوان گفت که یک رابطه master-slave میان محیط ناامن و محیط امن برقرار است. کدی که در محیط امن قرار دارد، زمانی اجرا خواهد شد که سیستمعامل از طریق یک مکانیزم به آن اجازه اجراشدن بدهد. خود مکانیزم مذکور نیز با دستور Secure Monitor Call (SMC) شروع بهکار میکند.
نرمافزار secure monitor نقش مدیریت سوییچ میان دو محیط را بر عهده دارد. در بسیاری از طراحیها، عملکرد آن مشابه تغییر روال سنتی سیستمعامل است. بدین معنی که باید از ذخیره درست حالت محیطی که ترک میکنیم و همچنین از بازخوانی صحیح حالت محیطی که وارد میشویم، اطمینان حاصل کند. معماری سیستم گسترشیافته، بهصورتی است که هسته پردازشی میتواند کدهای هر دو محیط امن و ناامن را اجرا کند. هرکدام از محیطها نیز میتواند محیط دیگر را صدا بزند یا توسط آن صدا زده شود. البته این امکان بستگی به در دسترس بودن دستگاههای جانبی مولد وقفه دارد. این دستگاهها ممکن است بهگونهای تنظیم شوند که تنها از طریق محیط امن در دسترس باشند. بهعنوانمثال از یک وقفه تایمر امن ممکن است برای اطمینان از زمان اجرای دقیق در محیط امن استفاده شود. بنابراین در دسترس بودن این دستگاههای جانبی بستگی به سطح امنیت و کاربردهایی دارد که طراح پلتفرم در نظر گرفته است.
ازآنجاییکه secure monitor نقش رابط میان دو محیط را دارد، ازنظر امنیتی یک بخش حیاتی به شمار میرود. برای عملکرد ایمن، در زمان اجرای کد monitor، وقفهها غیرفعال هستند.
نرمافزارهای قرارگرفته در محیط امن، مانند فریمور و نرمافزارهای سیستمی دیگر، باید کمترین تأثیر ممکن را روی بخشهای دیگر سیستم بگذارند. بهعنوانمثال تا حد امکان باید از زمان اجرای طولانی جلوگیری شود مگر در حالتی که سیستم در حال اجرای عملی باشد که توسط محیط عادی درخواست شده و مورد انتظار است. همچنین وقفههای ناامن باید با بیشترین سرعت ممکن به محیط عادی انتقال داده شوند. این مورد موجب عملکرد خوب و سرعتبالای پاسخدهی نرمافزار محیط عادی خواهد شد.
حافظه
حافظه بهوسیله یک بیت اضافی در انتهای آدرس فیزیکی، به دو بخش تقسیم میشود. این بیت اضافی که NS-bit نام دارد تعیین میکند که دسترسی امن است یا غیر امن. لازم به ذکر است که بیت گفتهشده بهتمامی تراکنشهای مرتبط با حافظه اضافه میشود، از تگهای حافظه کش گرفته تا دسترسی به سیستم حافظه و دستگاههای جانبی. NS-bit میتواند فضای آدرس فیزیکی متفاوتی را به محیط امن و غیر امن اختصاص دهد.
برنامهای که در محیط عادی اجرا میشود تنها میتواند دسترسی غیر امن به حافظه داشته باشد، زیرا در هر تراکنش حافظهای که توسط محیط امن انجام شود، NS-bit توسط پردازنده یک خواهد شد. برنامه در حال اجرا در محیط امن معمولاً فقط دسترسی امن به حافظه خواهد داشت، اما در حالتهای خاصی ممکن است دسترسی غیر امن نیز داشته باشد.
کاربرد فناوری Trustzone
همانطور که در متن اشاره کردیم، فناوری Trustzone در هستههای پردازشی سری Cortex-A (که در بسیاری از گوشیها و دستگاههای همراه، استفاده میشود) و به شکل پیشرفتهتری در سری Cortex-M (بهعنوانمثال در ARM Cortex-M33) بهکاررفته است. کمپانی Apple نیز این فناوری را برای محصولات خود شخصیسازی کرده است و نسخه بهینهشدهای از Trustzone را به وجود آورده است که با نام Secure Enclave شناخته میشود. علاوه بر اینها، SoC های بسیار زیادی از قبیل Xilinx Zynq و NXP i.MX6، بهطور کامل از فناوری Trustzone پشتیبانی میکنند. با توجه به نکاتی که درباره میزان اهمیت امنیت در پردازشهای دیجیتال گفته شد، امروزه در میلیونها محصول و پروژه از این فناوری یا نمونههای مشابه آن، استفاده میشود.
در آخر توصیه میشود که اگر میخواهید سیستم خاصی طراحی کنید که در معرض حمله قرار دارد و یا اینکه قسمتی از کد پروژه در کنترل شما نیست، از فناوری و مکانیزم Trustzone، برای تامین امنیت پروژه خود استفاده کنید.
ممنون از توضیحاتتون. سوال اینه که چرا کل میکرو رو تراست زون نمیکنن. چرا دو تیکه میکنن؟
دلایل خیلی زیادی وجود داره
به عنوان نمونه میتونم همین ماژول های کوکیتل رو مثال بزنم که قسمتی رو برای برنامه یوزر اختصاص میده و لازمه اون تیکه تراست زون نداشته باشه
ممنون از پاسختون. ولی اگر اون تیکه هم داشته باشه چی میشه؟
موضوع جالب و به روزی رو مطرح و شرح دادید.
سپاس فراوان