فناوری اجرای قابل اعتماد

فناوری اجرای قابل اعتماد اینتل (Intel TXT که در گذشته با نام فناوری LaGrande شناخته می‌شد) یک فناوری سخت‌افزار رایانه‌ای است که اهداف آن عبارتند از:
* تصدیق صحت یک بستر محاسباتی و سیستم عامل آن.
* اطمینان از اینکه یک سیستم عامل معتبر در یک محیط قابل اعتماد آغاز به کار می‌کند و در نتیجه می‌تواند مورد اعتماد محسوب شود.
* ارائه‌ی قابلیت‌های امنیتی افزوده به سیستم عامل قابل اعتماد که در دسترس یک سیستم عامل غیرقابل اطمینان نیست.

فناوری اجرای قابل اعتماد (TXT) اینتل با استفاده از یک پیمانه‌ی بستر محاسباتی مورد اعتماد (TPM) و تکنیک‌های رمزنگاری، معیارهایی برای ارزیابی نرم‌افزار و مؤلفه‌های سیستم فراهم می‌نماید تا نرم‌افزار سیستم و همچنین برنامه‌های مدیریتی محلی و از راه دور بتوانند با استفاده از این معیارها درباره‌ی اعتماد تصمیم‌گیری کنند. این فناوری موتور مدیریت اینتل را تکمیل می کند و مبتنی بر ابتکار صنعتی شرکت Trusted Computing Group برای ارتقاء محاسبات امن‌تر است. همچنین از سیستم در برابر حملات مبتنی بر نرم‌افزار به قصد سرقت اطلاعات حساس با خراب کردن سیستم یا کد BIOS و یا تغییر پیکربندی محافظت می‌کند.

## جزئیات
پیمانه‌ی بستر محاسباتی مورد اعتماد (TPM) همانطور که توسط TCG مشخص شده است بسیاری از کارکردهای امنیتی از جمله ثبّات‌های ویژه‌ای (به نام ثبّات‌های پیکربندی بستر محاسباتی - PCR) را فراهم می کند که اندازه‌گیری‌های مختلفی را در یک مکان محافظت شده طوری انجام می‌دهند که از جعل جلوگیری می‌کند. اندازه‌گیری‌ها شامل یک درهم‌ساز رمزنگارانه با استفاده از یک الگوریتم درهم‌ساز امن (SHA) است. مشخصات TPM v1.0 از الگوریتم درهم‌سازی SHA-1 استفاده می‌کند. نسخه‌های اخیر (+TPM (v2.0 خواستار SHA-2 هستند .  

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

### اندازه‌گیری‌ها
اندازه‌گیری‌ها می توانند از کد، ساختار داده، پیکربندی، اطلاعات یا هر چیز دیگری باشند که می‌تواند در حافظه بارگذاری شود. TCG ایجاب می‌کند که کد تا بعد از سنجش اجرا نشود. برای اطمینان از یک *توالی* خاص از اندازه‌گیری‌ها، اندازه‌گیری‌های درهم‌ساز در یک دنباله در PCRهای مختلف نوشته نمی‌شوند، بلکه یک PCR با یک اندازه‌گیری "گسترش" می‌یابد. این بدان معنی است که TPM مقدار فعلی PCR و اندازه‌گیری‌ای که قرار است گسترش یابد را می‌گیرد، آنها را با هم درهم‌سازی می‌کند و محتوای PCR را با نتیجه آن درهم‌سازی جایگزین می‌کند. این باعث می‌شود که تنها راه رسیدن به یک اندازه‌گیری خاص در PCR، گسترش دقیقاً همان اندازه‌گیری‌ها در همان ترتیب باشد. بنابراین، اگر هر پیمانه در حال اندازه‌گیری تغییری داشته باشد، اندازه‌گیری PCR حاصل متفاوت خواهد بود و می‌توان به سادگی تشخیص داد که آیا کد، پیکربندی، داده‌ها و ... که اندازه‌گیری شده‌اند تغییر یافته و خراب شده است یا خیر. ساز و کار گسترش PCR برای ایجاد زنجیره اعتماد به لایه‌های نرم‌افزار بسیار مهم است (به ادامه توجه کنید).

### زنجیره‌ی اعتماد
این فناوری هم از زنجیره‌ی اعتماد ایستا و هم از زنجیره‌ی اعتماد پویا پشتیبانی می‌کند. زنجیره‌ی اعتماد ایستا هنگامی که سیستم روشن می‌شود (یا بستر مجدداً تنظیم می‌شود) شروع می‌شود و تمام PCRها را به مقدار پیش فرض آنها باز می‌گرداند. اولین ارزیابی توسط سخت‌افزار (به طور مثال پردازنده) برای سنجش پیمانه‌ی امضا شده دیجیتالی (به نام پیمانه‌ی کد تأیید شده یا ACM) ساخته شده توسط سازنده چیپست انجام می‌شود. پردازنده قبل از اجرای آن، امضا و صداقت پیمانه‌ی امضا شده را تأیید می‌کند. سپس ACM اولین پیمانه‌ی کد BIOS را می‌سنجد، که می‌تواند اندازه‌گیری‌های دیگری را انجام دهد.

اندازه گیری پیمانه‌های کد ACM و BIOS به PCR0 گسترش می‌یابد که هسته‌ی اصلی ایستای اندازه‌گیری اعتماد (CRTM) و همچنین اندازه‌گیری پایگاه محاسبات قابل اعتماد (BIOS TCB) را در خود نگه می‌دارد. BIOS اجزای اضافی را در PCR به شرح زیر اندازه‌گیری می‌کند:
* *PCR0 - CRTM* ، کد BIOS و پسوند بسترهای محاسباتی میزبان 
* *PCR1* - پیکربندی بستر محاسباتی میزبان
* *PCR2* - کد ROM
* *PCR3* - پیکربندی و داده ROM
* *PCR4* - کد IPL (بارگذارنده‌ی برنامه اولیه) (معمولاً رکورد راه‌انداز اصلی - MBR)
* *PCR5* - پیکربندی کد و داده‌های IPL (برای استفاده توسط کد IPL)
* *PCR6* - رویدادهای تغییر حالت و آغاز کار
* *PCR7* - کنترل تولیدکننده بستر محاسباتی میزبان

زنجیره‌ی اعتماد پویا هنگامی شروع می‌شود که سیستم عامل از دستورالعمل امنیتی ویژه‌ای استفاده کند، که PCRهای پویا (PCR17–22) را به مقدار پیش فرض خود تنظیم کرده و شروع به اندازه‌گیری می‌کند. اولین اندازه‌گیری پویا توسط سخت‌افزار (به طور مثال پردازنده) برای اندازه‌گیری یک پیمانه‌ی امضای دیجیتال شده‌ی دیگر (که به آن SINIT ACM گفته می‌شود) صورت می‌گیرد که باز هم توسط سازنده‌ی چیپست تهیه شده و امضا و صحت آن توسط پردازنده تأیید شده است. این به ریشه‌ی پویای اندازه‌گیری اعتماد (DRTM) معروف است.
سپس SINIT ACM اولین کد سیستم عامل را اندازه‌گیری می‌کند (که به آن محیط راه‌اندازی اندازه‌گیری شده گفته می‌شود - MLE). قبل از اینکه MLE اجازه‌ی اجرا دریافت کند، SINIT ACM تأیید می‌کند که این سیستم مطابق با الزامات خط مشی کنترل راه‌اندازی (LCP) تعیین شده توسط صاحبش است. LCP از سه بخش تشکیل شده است:
# تأیید اینکه نسخه SINIT مساوی یا جدیدتر از مقدار مشخص شده است
# تأیید صحت پیکربندی بستر محاسباتی (PCONF) به وسیله‌ی مقایسه PCR0-7 با مقادیرِ خوبِ شناخته شده (صاحب بستر تصمیم می‌گیرد کدام PCRها را شامل شود)
# تایید اعتبار MLE به وسیله‌ی مقایسه‌ی اندازه‌گیری آن با لیستی از اندازه‌گیری‌های شناخته شده‌ی مناسب

یکپارچگی LCP و لیست‌های اندازه‌گیری شناخته شده‌ی مناسب آن به کمک ذخیره یک درهم‌سازی از خط مشی موجود در TPM در مکانی محافظت شده و غیرفرّار از حافظه کنترل می‌شود که فقط توسط صاحب بستر محاسباتی قابل تغییر است.

### اجرا به عنوان یک سیستم عامل مورد اعتماد
هنگامی که خط مشی کنترل راه‌اندازی (LCP) برآورده شد، SINIT ACM به MLE اجازه می‌دهد تا با فعال کردن دسترسی به ثبّات‌های امنیتی ویژه و فعال کردن دسترسی به سطح ۲ TPM محلی، به عنوان یک سیستم عامل مورد اعتماد اجرا شود. اکنون MLE قادر به اندازه‌گیری‌های اضافه در مورد PCRهای پویا است. PCR های پویا شامل اندازه‌گیری‌های زیر هستند:
* *PCR17* - خط مشی کنترل DRTM و راه‌اندازی
* *PCR18* - کد راه‌اندازی سیستم عامل مورد اعتماد (MLE)
* *PCR19* - سیستم عامل قابل اعتماد (به عنوان مثال پیکربندی سیستم عامل)
* *PCR20* - سیستم عامل قابل اعتماد (به عنوان مثال کد کرنل و کدهای دیگر)
* *PCR21* - تعریف شده توسط سیستم عامل مورد اعتماد
* *PCR22* - تعریف شده توسط سیستم عامل مورد اعتماد

این فناوری همچنین راهی امن‌تر برای سیستم عامل اولیه برای تنظیم اولیه بستر محاسباتی ارائه می‌دهد. بر خلاف راه‌اندازی اولیه‌ی پردازنده‌های معمولی [شامل پردازنده‌ی خودراه‌انداز (boot-strap-processor BSP) است که یک وقفه‌ی میان پردازنده‌ای راه‌اندازی (Start-up Inter-Processor Intrupt - SIPI) را برای هر پردازنده‌ی برنامه ارسال می کند و در نتیجه هر پردازنده در "حالت واقعی" آغاز به کار می‌کند و سپس به "حالت مجازی" و سرانجام به "حالت محافظت شده" منتقل می‌شود.] سیستم عامل با انجام یک راه‌اندازی ایمن (یا همان راه‌اندازی اندازه‌گیری شده) از آسیب‌پذیری جلوگیری می‌کند و پردازنده‌های برنامه را در حالت خواب ویژه‌ای قرار می‌دهد که از آنجا مستقیماً در حالت محافظت شده با صفحه‌بندی فعال آغاز به کار می‌کنند و مجاز به ترک این حالت نیستند. 

## کاربرد
مقادیر PCRها به صورت محلی و از راه دور در دسترس هستند. علاوه بر این TPM توانایی امضای دیجیتالی مقادیر PCR را دارد، به طوری که هر موجودیت می‌تواند تأیید کند که اندازه‌گیری‌ها از یک TPM حاصل شده است و توسط آن محافظت می‌شود، بنابراین امکان تأیید از راه دور را برای تشخیص دستکاری، فساد، و نرم‌افزارهای مخرب فراهم می‌شود. علاوه بر این، می‌توان از این مقادیر برای شناسایی محیط اجرا (نسخه خاص BIOS، سطح سیستم عامل، پیکربندی و ...) و مقایسه هر یک با لیست‌های خاص خود از مقادیر شناخته‌شده‌ی مناسب برای طبقه‌بندی بیشتر استفاده کرد. این توانایی در ارزیابی و اختصاص سطح اعتماد به بسترهای محاسباتی به عنوان استخر محاسباتی مورد اعتماد شناخته می‌شود.

چند نمونه از نحوه‌ی استفاده از استخرهای محاسباتی مورد اعتماد عبارتند از:
* انزوا - امکان کنترل اتصال یک بستر به شبکه اصلی یا قرنطینه بودن آن براساس سطح اعتماد و یا عدم توانایی در برآورده کردن سیاست‌های کنترل راه‌اندازی
* خط مشی مبتنی بر اعتماد - مانند محدود کردن اجرای برنامه‌های مهم فقط در بسترهایی که سطح اعتماد مشخصی برآورده می‌کنند
* انطباق و ممیزی - نشان می‌دهد که پردازش داده‌های مهم، شخصی و یا حساس فقط در بسترهایی انجام شده است که الزامات اعتماد را برآورده کرده‌اند

تعداد زیادی از بسترهای محاسباتی سرورها، فناوری اجرای قابل اعتماد اینتل (Inter TXT)را دارا می‌باشند و عملکرد TXT توسط فروشندگان نرم‌افزار از جمله HyTrust ،PrivateCore ،Citrix و VMware به کار گرفته می‌شود. پروژه های متن باز نیز از قابلیت TXT استفاده می‌کنند. به عنوان مثال ، *tboot* یک سیستم یکپارچگی مبتنی بر TXT را برای هسته Linux و هایپروایزر Xen فراهم می‌کند.  

## جستارهای وابسته
* اینتل vPro
* پایه محاسبات ایمن نسل بعدی
* موتور مدیریت اینتل
* محاسبات قابل اعتماد

## یادداشت‌ها

## منابع

## پیوند به بیرون
*  .
*  .
*  .
*  .
*  .
* بررسی اجمالی Intel TXT ، بخشی از اسناد هسته هسته لینوکس ، اول دسامبر 2014
* مدیریت یکپارچگی با استفاده از Intel TXT ، LWN.net ، اول آوریل 2009 ، توسط جیک لبه
* حمله به فناوری اعدام قابل اعتماد Intel ، گزارش های کلاه سیاه ، فوریه 2009 ، توسط رافال واجتزوکوک و جوآنا روتکوفسکا
* Trusted Computing Technologies، Intel Trusted Exception، Laboratories National Sandia ، ژانویه 2011 توسط جرمی دانیل ونت و ماکس جوزف گیز

رده:دستورالعمل‌های اکس۸۶
رده:ریزپردازنده‌های اکس۸۶ اینتل
رده:محاسبات قابل اعتماد
رده:معماری اکس۸۶