
Intel® SGX سرنام Software Guard Extensions، مجموعهای از دستورالعملهای پردازنده مرکزی از شرکت اینتل است که برای افزایش امنیت و حریم خصوصی دادهها طراحی شده است. این فناوری به توسعهدهندگان اجازه میدهد تا یک ناحیه امن و مجزا در حافظه ایجاد کنند. هر برنامهای که در این محیط امن اجرا میشود، حتی از سیستم عامل، مدیر سیستم و نرمافزارهای دارای بالاترین سطح دسترسی نیز پنهان و محافظت میشود. هسته اصلی این فناوری، یک کلید محرمانه است که در زمان تولید به صورت فیزیکی درون پردازنده قرار میگیرد. این کلید برای رمزگذاری و محافظت از دادهها و کد برنامه در داخل Enclave استفاده میشود. به دلیل اینکه امنیت توسط سختافزار تضمین میشود، Intel® SGX یک راهحل قدرتمند برای محافظت از دادههای حساس در محیطهای غیرقابلاعتماد مانند رایانش ابری توزیعشده فراهم میکند. این فناوری به ویژه در مواردی که نیاز به پردازش اطلاعات محرمانه (مانند اطلاعات مالی یا پزشکی) در سرورهای راه دور وجود دارد، بسیار کاربردی است. با این ویژگی، حتی اگر یک مهاجم به سیستم فیزیکی دسترسی پیدا کند، قادر به مشاهده یا دستکاری دادههای درون Enclave نخواهد بود. این رویکرد، سطح جدیدی از امنیت را برای برنامههای کاربردی فراهم میکند و به کاربران امکان میدهد با اطمینان بیشتری از خدمات ابری و توزیعشده استفاده کنند.
Intel® SGX چیست؟
فناوریهای پردازنده اینتل، قابلیتهای منحصر به فردی را فراهم میآورند که میتوانند حریم خصوصی، امنیت و مقیاسپذیری شبکههای دفتر کل توزیعشده را بهبود بخشند. Intel® SGX (مخفف Software Guard Extensions) مجموعهای از دستورالعملهای پردازنده مرکزی شرکت اینتل است که به کدهای سطح کاربری اجازه میدهد تا نواحی خصوصی از حافظه را به نام محیطهای امن (Enclaves) را مشخص کنند. این نواحی از فرآیندهایی که در سطوح دسترسی بالاتر اجرا میشوند، محافظت میشوند. این حرف بدان معنا است که حتی برنامههای دارای امتیاز بالاتر در سطح روت، هسته (kernel) یا هایپروایزر (hypervisor) نمیتوانند به برنامهای که داخل یک Enclave اجرا میشود، دسترسی یابند.
این فناوری امنیتی جدید اینتل از سال ۲۰۱۵ و با معماری پردازندههای Skylake در دسترس قرار گرفت. Intel® SGX از سازوکارهای امنیتی استفاده میکند که بر اساس یک کلید پردازنده هستند. این کلید در طول فرآیند تولید، به صورت فیزیکی درون پردازنده قرار داده میشود. این کلید مانند یک راز بسیار محرمانه است که در هسته سختافزار پردازنده محفوظ مانده و هیچکس، حتی تولیدکننده آن، شرکت اینتل، قادر به بررسی آن نیست. از این کلید برای محافظت از برنامههایی که داخل یک Enclave اجرا میشوند، استفاده میگردد. بنابراین، امنیت ارائه شده توسط فناوری Intel® SGX در سطح سختافزار تضمین میشود، که فضای بسیار محدودی برای حملات هکرهای مخرب باقی میگذارد. به لطف این ویژگی برجسته، Intel® SGX برای اولین بار این امکان را فراهم میسازد که از پردازندههای اینتل برای محافظت از یک برنامه در حال اجرا بر روی یک سیستم از راه دور استفاده شود. شایان ذکر است که SGX به طور فزایندهای برای تضمین امنیت اجرای برنامههای ابری به کار گرفته میشود.
برخی از ویژگیهای مهم Intel® SGX
یکی از مهمترین ویژگیهای Intel® SGX که مورد توجه متخصصان قرار دارد، Secret Provisioning است. این ویژگی بسیار حائز اهمیت است و حفاظت از برنامههای توزیعشده iExec عمدتا بر اساس آن صورت میگیرد. به طور کلی، هنگامی که یک برنامه Intel® SGX بر روی یک گره از راه دور فعال میشود، یک Enclave تولید میگردد.
در این مرحله، یک موله از راه دور (مانند کلاینت یا کاربری که برنامه را راهاندازی میکند) میتواند اعتبار Enclave را از طریق تایید از راه دور (remote attestation) بررسی کند تا از صحت آن مطمئن شود و اطمینان یابد که Enclave برنامه مورد انتظار است و توسط یک مهاجم مخرب تغییر یا جایگزین نشده است.
پس از این تایید، مولفه از راه دور میتواند برخی ازاطلاعات محرمانه را به این Enclave ارسال کند. به طور معمول، این فرآیند از طریق یک کانال بسیار امن انجام میشود. این کانال امن بین مولفه از راه دور و Enclave برقرار شده و ارتباط بین آنها توسط کلید Enclave رمزگذاری میگردد. این کلید به صورت تصادفی و بر اساس کلید پردازنده تولید میشود. نکته مهمی که باید در اینجا به آن اشاره داشته باشیم این است که کلید Enclave هرگز در خارج از محدوده نمایش داده نمیشود، بنابراین هیچ شخص دیگری قادر به بررسی این کلید برای رمزگشایی رازها در طول فرآیند ارتباط نیست.
فناوری Intel® SGX چگونه از برنامههای کاربردی محافظت میکند؟
در حوزه رایانش ابری توزیعشده، برنامههای غیرمتمرکز میتوانند در گرههای (Nodes) مختلف و از راه دور در سراسر شبکه توزیع شوند. این برنامهها توسط یک ارائهدهنده سرویس ابری مرکزی مدیریت نمیشوند که بتواند ابزارهای امنیتی متمرکز لازم، مانند فایروال یا مکانیزمهای رمزنگاری، را برای حفاظت از آنها فراهم کند. بنابراین، چگونگی محافظت از این برنامهها که بر روی سیستمهای توزیعشده قرار دارند یا اجرا میشوند، به یک چالش بزرگ تبدیل شده است. در پلتفرمهای ابری، توسعهدهندگان یک مکانیزم جدید نیاز دارند که قادر به انجام موارد زیر باشد:
- حفظ حریم خصوصی برنامهها و دادههای آنها
- کنترل کارآمد اجرای برنامهها
- محافظت از اجرای برنامهها و نتایج آنها
چرا فناوری Intel® SGX یک راهحل ایدهآل برای حل مسائل فوق است؟ زیرا Intel® SGX میتواند یک محیط فوقالعاده امن که به آن Intel® SGX Enclave گفته میشود فراهم کند که به طور کامل از سیستمهای غیرقابلاعتماد جدا شده است. هنگامی که برنامه شما در این محیط امن اجرا میشود، رمزگذاری شده و توسط یک کلید محرمانه که از کلید پردازنده مشتق شده، محافظت میشود. حتی سیستمهای دارای بالاترین سطح دسترسی مانند روت، هسته (kernel) یا هایپروایزر (hypervisor) نیز نمیتوانند به این محیط امن نفوذ کنند.
حفاظت از حریم خصوصی برنامهها و دادههای آنها
در رایانش ابری توزیعشده، حفاظت از یک برنامه و دادههای حساس آن حیاتی است. برای مثال، ممکن است یک برنامه برای دسترسی به دادهها و انجام محاسبات خود، به سرویسهای داده شخص ثالث نیاز داشته باشد که برای استفاده از آنها باید از توکنهای حریم خصوصی (Privacy Token) بهره ببرد.
اگر برنامه در سیستم محلی یا بر روی یک سرویس ابری متمرکز اجرا شود، این موضوع مشکلی ایجاد نمیکند؛ زیرا مدیر سیستم ابری میتواند توکن حریم خصوصی را رمزگذاری کرده و مسئولیت مسائل امنیتی را بر عهده بگیرد. اما اگر برنامه بر روی یک سیستم توزیعشده غیر قابل اعتماد اجرا شود، برنامه و دادههای حساس آن در معرض دسترسی تمام گرههای توزیعشده در سراسر شبکه قرار میگیرند.
از اینرو، توسعهدهندگان از Intel® SGX استفاده میکنند که، امکان رمزگذاری برنامه و/یا دادهها (مانند توکن/کلید لازم برای دسترسی به سرویسهای داده) را پیش از استقرار آنها بر روی شبکه فراهم میکند. سپس، کلید رمزگذاری میتواند از طریق یک کانال بسیار امن به یک Intel® SGX Enclave منتقل شود تا در زمان اجرا، برنامه و/یا دادهها رمزگشایی شوند.
با این روش، هیچ کس در سراسر شبکه قادر به بررسی برنامه و/یا دادهها نیست؛ زیرا آنها رمزگذاری شدهاند. همچنین، فرآیند رمزگشایی در Intel® SGX Enclave انجام میشود که توسط کلید محرمانه مشتق شده از پردازنده محافظت میشود و هیچ کس قادر به بررسی دادههای رمزگشایی شده نیز نخواهد بود.
برای مثال، فرض کنید یک برنامه برای پیشبینی تغییرات سهام در سه ماه آینده داریم. هنگامی که این برنامه شروع به کار میکند، ابتدا با استفاده از توکن حریم خصوصی خود، به یک سرور داده مالی دسترسی پیدا میکند تا دادههای مورد نیاز را بازیابی کند. توکن حریم خصوصی در یک فایل کلید ذخیره میشود، اما این فایل کلید نمیتواند مستقیما در داخل برنامه ساخته شود؛ زیرا این کار وابستگی را افزایش داده و از نظر امنیتی قابل قبول نیست. اگر این توکن را با کلیدی دیگر رمزگذاری کنیم، مشکل این است که چگونه این کلید را در زمان اجرا به هزاران گره توزیعشده به صورت امن منتقل کنیم؟
اینجا جایی است که Intel® SGX میتواند به ما کمک کند. با استفاده از Intel® SGX، میتوانیم این فایل کلید (که توکن را در خود دارد) را رمزگذاری کنیم. هنگامی که برنامه در یک گره از راه دور (حتی در یک گره غیرقابلاعتماد و بدون هیچگونه حفاظتی) شروع به اجرا میکند، یک Intel® SGX Enclave امن ایجاد شده و کلید رمزگشایی به صورت خودکار از طریق کانال امن به این Enclave منتقل میشود. سپس، توکن مورد استفاده برای دسترسی به سرویس داده، در زمان اجرا و در داخل Enclave رمزگشایی خواهد شد.
با استفاده از این روش، برنامهها و دادههای آنها (مانند توکن/کلیدهایی که به برنامهها اجازه دسترسی به سرویس داده را میدهند) میتوانند پیش از استقرار در سراسر شبکه رمزگذاری شوند و هیچکس به جز یک Enclave انتخابشده قادر به بررسی آنها نخواهد بود.
روش فعالسازی فناوری Intel® SGX
برای فعالسازی فناوری Intel® SGX باید چند مرحله را به ترتیب انجام دهید. این فرآیند شامل بررسی سازگاری سختافزار، تغییر تنظیمات در BIOS/UEFI و در نهایت نصب نرمافزارهای مورد نیاز است.
۱. بررسی سازگاری سختافزار
پیش از هر چیز، باید مطمئن شوید که پردازنده و مادربرد شما از این فناوری پشتیبانی میکنند.
- پردازنده: Intel® SGX از پردازندههای اینتل با معماری Skylake (نسل ۶) به بعد، تا قبل از نسل ۱۱ (در پردازندههای دسکتاپ) پشتیبانی میکند. در پردازندههای سرور مانند سری Xeon، این قابلیت معمولا در دسترس است.
- مادربرد: مادربرد شما نیز باید از Intel® SGX پشتیبانی کرده و در تنظیمات BIOS/UEFI، گزینهای برای فعالسازی آن داشته باشد.
۲. فعالسازی از طریق BIOS/UEFI
رایجترین روش برای فعالسازی SGX، تغییر تنظیمات در BIOS/UEFI است.
- سیستم خود را ریاستارت کنید.
- هنگام بوت شدن سیستم، کلید مخصوص ورود به BIOS را فشار دهید (این کلید معمولا F2، Delete، F10 یا Esc است که بسته به سازنده مادربرد متفاوت است).
- در منوی BIOS/UEFI، به دنبال گزینهای با نام Intel® SGX یا Software Guard Extensions بگردید. این گزینه اغلب در بخشهای “Advanced Settings” یا “CPU Configuration” قرار دارد.
- گزینه مربوط به SGX را پیدا کرده و آن را روی حالت “Enabled” یا “Software Controlled” قرار دهید. انتخاب حالت “Software Controlled” به سیستم عامل اجازه میدهد تا SGX را کنترل کند.
- تغییرات را ذخیره کرده و از BIOS خارج شوید (معمولاً با کلید F10).
۳. نصب نرمافزار
برای استفاده کامل از SGX، پس از فعالسازی در BIOS، باید نرمافزارهای مورد نیاز را در سیستم عامل خود نصب کنید.
- Intel® SGX Platform Software (PSW): این نرمافزار، رابط میان سیستم عامل و سختافزار SGX را فراهم میکند.
- Intel® SGX Software Development Kit (SDK): این کیت توسعه برای برنامهنویسانی است که قصد دارند برنامههای سازگار با SGX را توسعه دهند.
با انجام این مراحل، فناوری Intel® SGX در سیستم شما فعال میشود و برنامههای سازگار میتوانند از قابلیتهای امنیتی آن برای ایجاد محیطهای امن (Enclaves) استفاده کنند.
کنترل کارآمد اجرای برنامههای غیرمتمرکز
اجرای برنامهها نیز میتواند به طور کامل کنترل شود، چرا که این فرآیند شبیه به کنترل مجوز (licensing control) است: هر فردی میتواند برنامه را دانلود کند، اما فقط افراد مجاز قادر به رمزگشایی و اجرای آن هستند. این درست همان کاری است که مولفه Secret Provisioning انجام میدهد و اجازه میدهد برنامه و/یا دادهها در ابتدا رمزگذاری شوند. به محض اینکه کانال امن در زمان اجرا بین یک مولفه از راه دور و Enclave برقرار شود، آن مولفه از راه دور میتواند کلید رمزگشایی را برای Enclave ارسال کند تا برنامه به درستی اجرا شود.
این مولفه از راه دور میتواند برنامهریز (Scheduler) در یک Worker Pool مشخص باشد و برقراری کانال Enclave به طور کامل تحت کنترل آن است. در این حالت، کانالهای امن تنها با گرههای مجاز ارتباط برقرار میکنند، بنابراین کلید رمزگشایی تنها میتواند به Worker Pool ثبتشده ارسال شود تا برنامه را رمزگشایی و اجرا کنند و هیچ فرد دیگری قادر به اجرای آن نباشد.
کلام آخر
در این مقاله سعی کردیم، به طور مختصر فناوری Intel® SGX را به شما معرفی کردیم و توضیح دادیم که چگونه میتوان از آن در اکوسیستمهای ابری برای محافظت از برنامههای ابری توزیعشده که بر روی Worker Pool از راه دور اجرا میشوند، استفاده کرد. لی ژانگ، متخصص رمزنگاری در این ارتباط گفته است: «این راهحل در حال حاضر به عنوان یک گزینه برای توسعه امنیتی در نظر گرفته شده است. ما معتقدیم که در آینده نزدیک، دستگاههای دارای SGX به میزان بسیار گستردهتری به کار گرفته خواهند شد. این فناوری است که قرار است در حوزه رایانش ابری مبتنی بر بلاکچین، پیشگام باشد».
نویسنده: حمیدرضا تائبی






