فناوری اجرای قابل اعتماد اینتل (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 به شرح زیر اندازهگیری میکند:
زنجیرهی اعتماد پویا هنگامی شروع میشود که سیستم عامل از دستورالعمل امنیتی ویژهای استفاده کند، که PCRهای پویا (PCR17–22) را به مقدار پیش فرض خود تنظیم کرده و شروع به اندازهگیری میکند. اولین اندازهگیری پویا توسط سختافزار (به طور مثال پردازنده) برای اندازهگیری یک پیمانهی امضای دیجیتال شدهی دیگر (که به آن SINIT ACM گفته میشود) صورت میگیرد که باز هم توسط سازندهی چیپست تهیه شده و امضا و صحت آن توسط پردازنده تأیید شده است. این به ریشهی پویای اندازهگیری اعتماد (DRTM) معروف است. سپس SINIT ACM اولین کد سیستم عامل را اندازهگیری میکند (که به آن محیط راهاندازی اندازهگیری شده گفته میشود - MLE). قبل از اینکه MLE اجازهی اجرا دریافت کند، SINIT ACM تأیید میکند که این سیستم مطابق با الزامات خط مشی کنترل راهاندازی (LCP) تعیین شده توسط صاحبش است. LCP از سه بخش تشکیل شده است:
یکپارچگی LCP و لیستهای اندازهگیری شناخته شدهی مناسب آن به کمک ذخیره یک درهمسازی از خط مشی موجود در TPM در مکانی محافظت شده و غیرفرّار از حافظه کنترل میشود که فقط توسط صاحب بستر محاسباتی قابل تغییر است.
هنگامی که خط مشی کنترل راهاندازی (LCP) برآورده شد، SINIT ACM به MLE اجازه میدهد تا با فعال کردن دسترسی به ثبّاتهای امنیتی ویژه و فعال کردن دسترسی به سطح ۲ TPM محلی، به عنوان یک سیستم عامل مورد اعتماد اجرا شود. اکنون MLE قادر به اندازهگیریهای اضافه در مورد PCRهای پویا است. PCR های پویا شامل اندازهگیریهای زیر هستند:
این فناوری همچنین راهی امنتر برای سیستم عامل اولیه برای تنظیم اولیه بستر محاسباتی ارائه میدهد. بر خلاف راهاندازی اولیهی پردازندههای معمولی [شامل پردازندهی خودراهانداز (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 فراهم میکند. [۴] [۵]
{{cite web}}
: Check date values in: |archive-date=
(help)