موضوع مقاله: محیط اجرای قابل اطمینان | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # محیط اجرای قابل اطمینان | مقدمه: محیط اجرای قابل اعتماد ، منطقه‌ای امن داخل پردازنده اصلی است که محرمانگی و جامعیت داده‌های داخلش را تضمین می‌کند. | ## بخش 1: محیط اجرای قابل اطمینان | یک محیط اجرای قابل اطمینان به عنوان یک محیط اجرای جداگانه خدمات امنیتی مختلفی را ارائه می‌دهد. از جمله این خدمات می‌توان از محیط اجرا ایزوله شده، اطمینان از جامعیت و دست نخورده بودن برنامه‌های اجرا شده و محرمانه بودن اطلاعات و داده‌های این برنامه‌ها نام برد. درکل، محیط اجرای قابل اطمینان یک فضای اجرایی با امنیت سطح بالا را برای برنامه‌های مورد اعتماد فراهم می‌کند. تعریف رسمی ارائه شده برای آن به این صورت است :"مجموعه ای از اجزای سخت افزای و نرم‌افزاری که امکانات لازم برای پشتیبانی از برنامه‌های کاربردی را فراهم می‌کنند " این مجموعه باید نیازهای یکی از دو سطح امنیتی تعریف شده را ارضا کند. به بیان دیگر محیط اجرای قابل اطمینان، باید بتواند برنامه را یا فقط از حمله نرم‌افزاری یا نرم‌افزاری و سخت‌افزاری محافظت کند. در اواسط سال ۲۰۱۰ کار بر روی استانداردهای OMTP، با انتقال گروه آن به جامعه عمده فروشی برنامه‌های کاربردی، به پایان رسید. امروزه، استانداردهای OMTP، شامل استانداردهای معرف محیط اجرای قابل اطمینان، توسط GSMA میزبانی می‌شود. جزئیات استاندارد محیط اجرای قابل اطمینان با ساختن یک محیط جدا و ایزوله شده که به صورت موازی با سیستم عامل اجرا می‌شود، امنیت محیط غنی را فراهم می‌کند و برای داشتن امنیت بیشتر از سیستم عامل کاربرپسند به کار می‌رود. محیط اجرای قابل اطمینان TrustZone، برای محافظت از داده‌ها از یک روش ترکیبی که هم از سخت‌افزار و هم از نرم‌افزار بهره می‌برد، استفاده می‌کند. فقط برنامه‌های قابل اطمینان که در حال اجرا بر روی محیط اجرای قابل اطمینان TEE هستند به قدرت کامل پردازنده اصلی، لوازم جانبی و حافظه دسترسی دارند، در حالی که ایزوله بودن سخت‌افزار از این برنامه‌ها در برابر برنامه‌هایی که کاربر نصب کرده و در سیستم عامل اصلی اجرا می‌شوند، محافظت می‌کند. نرم‌افزار و جداسازهای داخل محیط اجرای قابل اطمینان از برنامه‌های درون این محیط در مقابل یکدیگر محافظت می‌کنند. ارائه دهندگان خدمات، اپراتورهای شبکه تلفن همراه، توسعه دهندگان سیستم عامل، توسعه دهندگان برنامه‌ها، تولیدکنندگان دیوایس‌ها، عرضه‌کننده‌های پلتفرم و فروشندگان سیلیکون ذینفعان اصلی استانداردسازی محیط اجرای قابل اطمینان هستند و در این زمینه مشارکت دارند. برای جلوگیری از شبیه‌سازی سخت‌افزار با نرم‌افزاری که توسط کاربر کنترل می‌شود، از «ریشه اعتماد سخت‌افزار» استفاده می‌شود. ریشه اعتماد سخت‌افزار مجموعه ای از کلیدهای خصوصی (که به آن‌ها «کلیدهای تأیید» یا «اسرار تأمین شده» گفته می‌شود) است که در هنگام تولید تراشه مستقیماً در آن تعبیه می‌شوند (معمولاً برای پیاده‌سازی این قسمت از حافظه‌هایی که فقط یک بار قابل برنامه‌ریزی هستند و مساحت زیادی هم دارند، مانند eFuse، استفاده می‌شود) کلیدهای روی ریشه اعتماد سخت افزار، قابل تغییر نیستند و کلیدهای عمومی مربوط به این کلیدهای خصوصی به همراه هش غیر مخفی کلید عمومی متعلق به طرف مورد اعتماد (معمولاً فروشنده تراشه) در پایگاه دادهٔ تولیدکننده قرار دارند و برای امضای نرم‌افزار قابل اعتماد دائمی ای که روی ROMحک شده و همچنین مدارهایی که عملیات رمزگذاری و کنترل سطح دسترسی را انجام می‌دهند استفاده می‌شود. | ## بخش 2: محیط اجرای قابل اطمینان | این سخت‌افزار به نحوی طراحی شده‌است که از دسترسی تمام نرم‌افزارهایی که توسط کلید طرف مورد اعتماد امضا نشدند به قسمت محافظت شده، جلوگیری می‌کند. یک مؤلفه غیر قابل اعتماد از یک برنامه برای تأیید اعتبار، مولفه قابل اطمینان را در حافظه قرار می‌دهد. سخت‌افزار از برنامه قابل اعتماد در برابر تغییر توسط مؤلفه‌های غیر قابل اعتماد محافظت می‌کند. این نانس به عنوان بخشی از یک پروتکل احراز هویت و برای حفظ یکپارچگی برنامه قابل اعتماد است. اثبات معتبر را نمی‌توان در سخت‌افزار شبیه‌سازی شده (یا QEMU) محاسبه کرد زیرا برای ساختن آن، نیاز است به کلیدهایی که بر روی سخت‌افزار تعبیه شده‌اند، دسترسی داشته باشیم. فقط firmwareهای قابل اعتماد به این کلیدها و / یا کلیدهای برگرفته از آنها یا با استفاده از آنها دسترسی دارند. از آنجا که پلتفرم طوری طراحی شده که فقط مالک آن به داده‌های ثبت شده در کارخانه است دسترسی داشته باشد، طرف تأیید کننده باید با سرویس تنظیم شده توسط فروشنده ارتباط برقرار کند. اگر این طرح به‌طور نادرست پیاده‌سازی شود، فروشنده تراشه می‌تواند برنامه‌هایی که در هر تراشه اجرا می‌شوند را بفهمد و با ارسال پیام عدم تأیید هویت به هرکدام که خواست اجازه دسترسی ندهد. در بعضی موارد، کلیدها برای هر قطعه سخت‌افزاری متمایزند، درنتیجه کلیدی که از یک تراشه استخراج می‌شود، برای بقیه بی فایده است. اگرچه محرومیت از مالکیت یک ویژگی ذاتی محیط اجرای قابل اطمینان نیست (این امکان وجود دارد که طراحی سیستم به طوری انجام شود که فقط کاربرانی که اول مالکیت دستگاه را بدست آورده‌اند بتوانند سیستم آن را کنترل کنند)، اما در عمل همه این سیستم‌های مصرفی عمداً طوری طراحی شده‌اند که به تولیدکنندگان تراشه اجازه می‌دهند که دسترسی به تصدیق و الگوریتم‌های آن را کنترل کنند. در نتیجه سازنده‌ها می‌توانند اجازه دسترسی به محیط اجرای قابل اطمینان را فقط به توسعه دهندگان نرم‌افزاری که با سازنده توافق تجاری دارند، اعطا کنند، و موارد استفاده مانند Tivoization و DRM را فعال کنند. حفاظت از محتوای دارای حق بیمه/ مدیریت حقوق دیجیتالی توجه: بسیاری از عبارات به کار رفته در موضوع محیط اجرای قابل اطمینان این موضوع را تحت عنوان «محافظت از محتوای دارای حق بیمه» بررسی می‌کند که اسمی است که بسیاری از دارندگان حق کپی استفاده از آن را ترجیح می‌دهند. محافظت از محتوای حق بیمه یکی از موارد خاص استفاده از مدیریت حقوق دیجیتالی است و در بین بعضی از جوامع مانند جامعه بنیاد نرم‌افزار آزاد مایه بحث است. محیط اجرای قابل اطمینان می‌تواند مالک دستگاه را از خواندن موارد پنهانی حافظه محروم کند و همچنین بین این محیط و صفحه نمایش و/یا بقیه زیرسیستم‌های دستگاه یک مسیر سخت‌افزاری جدا وجود دارد، که این ویژگی‌ها آن را به محیطی مناسب برای محافظت از اطلاعات دیجیتالی رمزگذاری شده (مثل فیلم‌های HD یا صدا) در دستگاه‌های متصل به هم مانند تلفن‌های هوشمند، تبلت‌ها و تلویزیون‌های HD تبدیل کرده‌است. | ## بخش 3: محیط اجرای قابل اطمینان | محیط اجرای قابل اطمینان برای محافظت از اطلاعات وقتی که روی دستگاه قرار گرفته‌است، مورد استفاده قرار می‌گیرد: اگر اطلاعات در حین انتقال با رمزگذاری مناسب محافظت شده باشند، این محیط با اطمینان از اینکه اطلاعات در معرض محیط‌های تأیید نشده، توسط توسعه دهنده نرم‌افزار یا فروشنده پلتفرم قرار نمی‌گیرد، از اطلاعات رمزگشایی شده بر روی دستگاه محافظت می‌کند. خدمات مالی موبایل برای امن کردن اپلیکیشن‌ها و کاربردهای تجاری موبایل مثل کیف پول‌های موبایلی، پرداخت‌های peer-to-peer، پرداخت بدون تماس و استفاده از دستگاه تلفن همراه به عنوان نقطه فروش که معمولاً دارای شرایط و نکات امنیتی کاملاً تعریف شده هستند، می‌توان از محیط‌های اجرای قابل اطمینان که غالباً با ارتباطات میدانی نزدیک و SEها و سیستم‌های بک اند قابل اعتماد ترکیب می‌شوند استفاده کرد. در برخی سناریوها تعامل با کاربر نهایی لازم است و این ممکن است اطلاعات حساس کاربر مانند PIN، رمز عبور یا شناسه بیومتریک در سیستم عامل تلفن همراه را که به عنوان ابزاری برای تأیید هویت کاربر به کار می‌روند را افشا کند. محیط اجرای قابل اطمینان به صورت انتخابی یک رابط کاربری قابل اعتماد در اختیار کاربر قرار می‌دهد که می‌تواند به عنوان ابزار احراز هویت کاربر بر روی دستگاه تلفن همراه استفاده شود. احراز هویت محیط اجرای قابل اطمینان از روشهای شناسایی بیومتریک (تشخیص چهره، حسگر اثر انگشت و مجوز صوتی) پشتیبانی می‌کند، که استفاده از آن آسان‌تر و سرقت رمزها از آن سخت‌تر است. پروسه احراز هویت به‌طور کلی به سه مرحله اصلی تقسیم می‌شود: ذخیره یک شناسه «الگو» مرجع روی دستگاه برای مقایسه با «تصویر» استخراج شده در مرحله بعدی استخراج «تصویر» (به عنوان مثال اسکن اثر انگشت یا گرفتن نمونه صوتی) استفاده از موتور تطبیق دهنده برای مقایسه «تصویر» و «الگو». محیط اجرای قابل اطمینان برای محافظت از داده‌ها و ایجاد بافر در برابر برنامه‌های غیر ایمن واقع در سیستم عامل تلفن همراه طراحی شده‌است و درنتیجه، منطقه ای خوب برای نگه داری موتور تطبیق دهنده و پردازش‌های لازم برای احراز هویت داخل یک دستگاه همراه است. این امنیت اضافی ممکن است علاوه بر پایین نگه داشتن هزینه برای توسعه دهندگان گوشی، نیازهای امنیتی ارائه دهندگان خدمات را نیز ارضا کند. تشکیلات اقتصادی، دولت و ابر محیط اجرای قابل اطمینان می‌تواند برای استفاده ایمن از اطلاعات محرمانه در دستگاه‌های تلفن همراه و زیرساخت‌های سرور مورد استفاده تشکیلات اقتصادی دولت‌ها و ارائه دهندگان خدمات ابری قرار گیرد. محیط اجرای قابل اطمینان با دربرگرفتن اپلیکیشن‌های حساس و مورد اعتماد که باید ایزوله شوند و از بدافزارهای مخربی که ممکن است در سیستم عامل تلفن همراه وجود داشته باشند، یک سطح محافظت برای مقابله با حملات نرم‌افزاری ایجاد شده در سیستم عامل و کنترل سطوح دسترسی ایجاد می‌کند. با استفاده از قابلیت‌ها و سطوح امنیتی ای که محیط اجرای قابل اطمینان تولید می‌کند، دولت‌ها و شرکت‌ها می‌توانند اطمینان حاصل کنند که کارمندانی که از دستگاه‌های خودشان استفاده می‌کنند، این کار را با روشی امن و قابل اطمینان انجام می‌دهند. به همین ترتیب، محیط‌های اجرای قابل اطمینان مبتنی بر سرور به دفاع در برابر حملات داخلی و خارجی به زیرساخت‌های بک اند کمک می‌کنند. برنامه‌نویسی مبتنی بر ماژول ایمن به خاطر بالا رفتن دارایی‌های نرم‌افزار و قابلیت استفاده مجدد، برنامه‌نویسی ماژولار با تجزیه سیستم به ماژول‌های مستقل و کوچکتر مناسب‌ترین و کم هزینه‌ترین روش برای طراحی و معماری نرم‌افزار است. از آنجا که هر ماژول حاوی همه موارد لازم برای اجرای تابع مورد نظر خود است، محیط اجرای قابل اطمینان اجازه می‌دهد تا یک سیستم کامل با قابلیت اطمینان و امنیت بالا را ساماندهی کنیم و از آسیب رساندن هریک از ماژول‌ها به دیگری، جلوگیری کنیم. | ## جمع‌بندی | برای اینکه ماژول‌ها با هم ارتباط برقرار کنند و داده‌هایشان را به اشتراک بگذارند، محیط اجرای قابل اطمینان به وسیله روش‌هایی مثل آبجکت سریالیزشن به همراه استفاده از پروکسی‌ها ابزار و بستر لازم برای ارسال و دریافت امن داده‌ها بین ماژول‌ها را فراهم می‌کند.