معرفی فناوری SGX اینتل
جدول محتوا
فناوری SGX یا فناوری Software Guard Extensions اینتل ، مجموعهای از دستورالعملها و ویژگیهای CPU است که به برنامهها اجازه میدهد تا با ایجاد محصورات امن یا مناطق محافظتشده در حافظه که به عنوان enclave شناخته میشوند از سایر قسمتهای سیستم محافظت کنند. این محفظهها برای جلوگیری از دسترسی غیرمجاز به دادهها یا کدهای حساس طراحی شدهاند و میتوان از آنها برای محافظت از برنامهها، دادههای کاربر و فایلهای سطح سیستم (system-level) در برابر حملات مخرب یا سرقت استفاده کرد. طبق مقاله ای که توسط آزمایشگاه علوم کامپیوتر و هوش مصنوعی MIT منتشر شده است، هدف اصلی فناوری SGX حل مشکل محاسبات از راه دور ایمن یا مشکل اجرا و نگهداری نرم افزار بر روی یک رایانه راه دور متعلق به شخص غیرقابل اعتماد است. در ادامه با ارائه ی توضیحی مفصل در مورد این فناوری به شما کمک خواهیم کرد تا در انتخاب بهترین CPU سرور آگاهانه تر عمل نمایید.
تاریخچه پیدایش فناوری SGX
در مدلهای امنیتی قدیمی، امنیت دادهها عمدتاً به نرمافزار سیستم و الگوریتمهای رمزنگاری استاندارد وابسته بود. این روش برای محافظت از داده های حساس در برابر حملاتی مانند بدافزارها که اغلب می توانند به سیستم عامل دسترسی پیدا کرده و داده های حساس را از حافظه بخوانند، کافی نیست.
اینتل ، SGX را به عنوان پاسخی به تعداد رو به رشد نقض اطلاعات و حوادث امنیتی موثر بر مشاغل و افرادی که در سالهای گذاشته با آن روبرو شدند، معرفی نمود. هدف SGX ارائه یک محیط اجرای ایمن مبتنی بر سخت افزار است که از داده های حساس حتی اگر سیستم به خطر بیفتد محافظت نماید.
SGX با انتشار ریزمعماری Skylake اینتل در سال 2015 معرفی شد و به طور خاص، اینتل اولین پردازنده های Intel Xeon با فناوریSGX را در سال 2016 به بازار عرضه و به انتشار به روز رسانی ها برای پشتیبانی از SGX در نسخه های جدیدتر CPU ادامه داد.
هدف فناوری SGX برای غلبه بر مشکل مذکور با ارائه یک ویژگی محصور امن است که در آن کد و داده های حساس را می توان ایزوله و محافظت کرد. این فناوری میتواند به ارائه سطح بالاتری از امنیت برای برنامهها و محافظت در برابر حملاتی مانند حملات side-channel کمک کند، جایی که مهاجم از نقاط ضعف الگوریتمهای رمزنگاری برای سرقت دادههای حساس سوء استفاده میکند. چنین دادههای حساسی شامل اطلاعاتی مانند سوابق پزشکی، سوابق مالی، رمز عبور، کلیدهای رمزگذاری، عوامل شناسایی بیومتریک میشود – هر گونه اطلاعاتی که در صورت افشا یا اصلاح میتواند باعث آسیب شود.
به طور کلی، هدف فناوری SGX بهبود امنیت برای کاربران و شرکتهایی است که برای اپلیکیشن ها و عملیات حساس، به سیستمهای محاسباتی متکی هستند.
پردازنده های مجهز به فناوری SGX
برخی از نمونههایی از سرورهایی که از Intel SGX پشتیبانی میکنند عبارتند از: سری پردازندههای Intel Xeon Scalable از خانواده SP ،D، H) Skylake و M) و پردازندههای نسل دهم Comet Lake) Intel Core برای موبایل و دسکتاپ و Ice Lake برای موبایل) ، برخی از پردازندههای Atom و پردازنده هایی همچون Intel Xeon W-1290P و Intel Xeon E-2100
ویژگی های فناوری SGX
مزیت کلیدی SGX توانایی آن در ارائه محیطی امن برای اجرای برنامه ها است که به محافظت از داده ها و کدهای حساس در برابر تهدیداتی مانند بدافزارها، روت کیت ها و انواع دیگر حملات کمک می کند. SGX را می توان توسط طیف گسترده ای از برنامه ها، از مرورگرهای وب و نرم افزارهای بهره وری تا پلتفرم های معاملات مالی و سرویس های ابری استفاده نمود.
فناوری SGX با ایجاد محصورهای امن باعث می شود که داده های حساس بتوانند ذخیره و پردازش شوند. این محصورها (Enclaves) در حافظه ایجاد میشوند و توسط مکانیسمهای امنیتی مبتنی بر سختافزار محافظت میشوند که از دسترسی یا تغییر محتوای دیگر برنامهها یا فرآیندها جلوگیری میکند. این بدان معناست که حتی اگر سیستم عامل میزبان به خطر افتد یا رایانه به بدافزار آلوده شود، دادههای داخل محصور امن باقی میمانند.
چنین ویژگی امنیتی به محافظت از کد برنامه و داده ها در برابر افشا یا تغییر از طریق استفاده از محفظه های رمزگذاری شده کمک می کند. این محصورها محیط های اجرایی ایزوله و قابل اعتمادی هستند که در حافظه ای جدا از سیستم عامل و هر اپلیکیشن دیگری که روی سیستم اجرا می شود وجود دارد. هدف فناوری SGX بهبود امنیت با این امکان است که توسعه دهندگان از داده های حساس یا محرمانه حتی در شرایطی که کل سیستم در خطر باشد، محافظت کنند.
یکی دیگر از ویژگی های مهم SGX، توانایی آن در انجام تأیید از راه دور است؛ فرآیندی که به شخص مورد اعتماد اجازه می دهد تا از اصالت و عدم دستکاری نرم افزاری که روی سیستم اجرا می شود ، اطمینان حاصل کند. این ویژگی برای اطمینان دادن به مشتریان یا شرکا از اهمیت بالایی برخوردار است تا از این طریق مطمئن شوند که داده های حساس توسط نرم افزار و سخت افزار قابل اعتماد محافظت می شود .فناوری SGX ، امنیت مبتنی بر سختافزار را فراهم میکند که از ترکیبی از معماری CPU و نرمافزار سیستم برای ایجاد محیطی امن به نام enclave استفاده میکند. Enclave (محصور)ها از بقیه سیستم جدا شدهاند و محیط اجرای امنی را برای نرمافزار فراهم میکنند. فناوری SGX از تأیید محلی و از راه دور برای تأیید هویت محتویات پشتیبانی میکند.
SGX برای محافظت در برابر بسیاری از تهدیدات امنیت سایبری شناخته شده و فعال، مانند حمله نرم افزارهای مخرب، با کاهش سطح حمله سرورها و ایستگاه های کاری از طریق استفاده از محصورهای امن، که از اطلاعات در برابر فرآیندهای در حال اجرا در سطوح امتیاز بالاتر محافظت می کند، استفاده می شود.
بنابراین، اگر بدافزار پیچیده، به عنوان مثال، به لایههای OS، BIOS، VMM یا SMM حمله کند، Intel SGX با ارائه لایه حفاظتی اضافی از طریق قرار دادن دادههای حساس شما در یک بخش ایزوله و رمزگذاری شده از آن ها حفاظت می کند. بنابراین، این لایهها میتوانند به خطر بیفتند، اما دادههای شما همچنان محافظت میشوند، زیرا دادههای برنامه ذخیرهشده در خود محصور برای طرفهای خارجی و تأیید نشده غیرقابل دسترسی است و بنابراین از تخریب، دستکاری یا ویرایش توسط کاربران غیرمجاز یا هکرها در امان می ماند.
مزایای استفاده از پردازنده های دارای فناوری SGX
با برشمردن ویژگی های برشمرده ی پردازنده های دارای فناوری SGX مزایای زیر برای کاربران حاصل می شود.
- برنامههای زمان اجرا، از طریق اجرا در محیطهای امن SGX محافظت میشوند.
- ایمن سازی ارتباط دستگاه لبه اینترنت اشیا بین ابر و مشتری
- حفاظت از مالکیت معنوی
- ارتباطات ایمن بین فرستنده و گیرنده
موارد استفاده از فناوری SGX
SGX در برنامه های مختلفی از جمله رمزگذاری و رمزگشایی (encryption and decryption) داده ها، محاسبات قابل اعتماد، مدیریت حقوق دیجیتال و محاسبات ابری امن استفاده شده است. این مسئله در زمینههای حفظ حریم خصوصی و امنیت بسیار مهم است و در این راه تلاشهایی برای استفاده از SGX برای توسعه فناوریهای جدید امنیت و افزایش حریم خصوصی صورت گرفته است. هر فردی یا سازمانی که دارای پردازندههای اینتل با فناوری SGX باشد، میتواند حساسترین دادههای خود را با استفاده از SGX ایمن نماید. اپلیکیشن ها و برنامه های نظامی، تجاری و صنعتی ، امور مالی و بیمه، مراقبت های بهداشتی و اجتماعی که به سرورها و ایستگاه های کاری دارای این نوع CPU ها هستند می توانند از چنین فناوری بهره مند شوند.
فن آوری SGX همچنین در برنامه های مختلفی از جمله در سرورها، دستگاه های تلفن همراه و محیط های محاسباتی سازمانی استفاده می شود. در زمینه رایانش ابری، SGX میتواند کاربران را قادر به اجرای بارهای کاری(workload) حساس در سرویسهای ابری شخص ثالث کند، بی آنکه بخواهند دادههای خود در معرض دسترسی غیرمجاز قرار دهند. همچنین این فناوری در دستگاه های تلفن همراه ارزشمند است، جایی که امکان ذخیره ایمن اطلاعات حساسی همچون داده های بیومتریک ، پسوردها یا اطلاعات پرداخت را فراهم می آورد.
مکانیسم عمل فناوری SGX
هنگام توسعه یک برنامه Intel SGX، برنامه نویس می تواند انتخاب کند که چه چیزی را محصور کند. هر برنامه SGX دارای دو بخش است: بخش غیر قابل اعتماد و بخش مورد اعتماد
وقتی که برنامه راه اندازی می شود، enclave (محصور) ایجاد می شود و آن enclave در قسمت محافظت شده قرار می گیرد.
Enclaveها محیط هایی بسیار امن برای کار با داده ها هستند. کنترل دسترسی در داخل بخشهای این حافظه قابل اعتماد اعمال میشود.
هنگامی که یک تابع enclave فراخوانی می شود، فقط کد درون enclave می تواند داده های آن را ببیند. دسترسی های خارجی همیشه ممنوع است. هنگام بازگشت، داده های محصور در حافظه محافظت شده باقی می مانند.
این فرآیند می تواند کمی انتزاعی به نظر برسد، به خصوص اگر با SGX آشنا نباشید. اما خوشبختانه اینتل کار بسیار خوبی برای تجزیه و تحلیل آن در خلاصه محصول Intel SGX خود انجام داده است.
در زمان اجرای دستورالعملهای Intel SGX، محفظه را در یک منطقه حافظه رمزگذاریشده ویژه با مکان ورود/خروج محدود که توسط توسعهدهنده تعریف شده است، میسازد و اجرا میکند. این به جلوگیری از نشت اطلاعات کمک می کند. کد enclave (محصور) و دادههای داخل محیط CPU به صورت شفاف اجرا میشوند، و دادههای enclave نوشته شده در حافظه رمزگذاری میشوند و یکپارچگی آن بررسی میشود، که کمک میکند تا حدی اطمینان حاصل شود که هیچ دسترسی غیرمجاز یا ردیابی حافظه از enclave رخ نمیدهد.
بخش غیر قابل اعتماد مسئول ایجاد محصور (enclave) و ارتباط در سراسر سیستم است. از اینجا، یک اپلیکیشن فقط توابع مورد اعتماد خاص را برای دسترسی به داده ها فراخوانی می کند.
بخش قابل اعتماد، محفظه ایجاد شده برای پردازش داده های حساس را ذخیره می کند. کد و داده ها به صورت متنی واضح و منحصراً در داخل محفظه نشان داده می شوند. دادههایی که یک تابع قابل اعتماد برمیگرداند در این قسمت حافظه امن باقی میماند. CPU تمام درخواست های خارجی را رد می کند و enclave محافظت می شود .سپس برنامه در قسمت غیرقابل اعتمادی که دیگر نظری نسبت به داده های حساس ندارد، کار خود را از سر می گیرد.
چیزی که enclave ها را ایمن می کند، رمزگذاری سخت افزاری خودکار است. فناوری SGX از CPU برای رمزگذاری اطلاعات و ذخیره کلید در داخل آن استفاده می کند. از این رو، یک طرف خارجی نمی تواند کلید را بدست آورد و داده ها را به خطر بیاندازد. این بدان معنی است که حتی ارائه دهنده ابر نمی تواند دسترسی داشته باشد. علاوه بر این، هنگامی که برنامه خارج می شود یا دستور تخریب یک محصور را می دهد، تمام اطلاعات با آن از بین می رود.
چه سرورهایی می توانند از پردازنده های دارای فناوری SGX پشتیبانی می کنند؟
با شروع عرضه ی پردازنده های مقیاس پذیر Xeon که از سه ماهه سوم 2015 ، همه پردازنده های سرور از Intel SGX پشتیبانی نمودند. پردازنده هایی همچون Intel® Xeon® E-2288G، Intel® Xeon® Gold 6326 و Intel® Xeon® Platinum 8352Y از این فناوری بهره برده اند.
فناوری SGX نیاز به پشتیبانی خاصی از CPU دارد و در همه سرورها در دسترس نیست. فقط برخی از مدلهای CPU اینتل از فناوری SGX پشتیبانی میکنند، یعنی پلتفرمهای Intel Xeon که از افزونه های نگهبان نرمافزار اینتل (Intel SGX) استفاده میکنند. علاوه بر این، اکثر دستگاه های دسکتاپ و موبایل با پردازنده های نسل ششم Intel Core از SGX پشتیبانی می کنند.
شایان ذکر است که همه ی اپلیکیشن ها با Intel SGX سازگار نیستند و توسعهدهندگان باید برای استفاده از دستورالعملها، فریمورک و کیتهای توسعه نرمافزار اینتل SGX تغییرات خاصی در کد خود ایجاد کنند.
به طور کلی، پیش از خرید سرور hp اگر شما علاقه مند به استفاده از SGX بر روی سرور خود هستید، باید اطمینان حاصل کنید که سرور از یک پلتفرم پشتیبانی شده CPU اینتل استفاده می کند و برنامه شما با مجموعه دستورالعمل SGX سازگار است.
برای بررسی اینکه کدام پردازندههای اینتل از SGX استفاده میکنند، به صفحه جستجوی محصول اینتل مراجعه نمایید.
چگونه می توان Intel SGX را فعال یا غیرفعال نمود؟
طبق گفته اینتل، قبل از اینکه یک برنامه بتواند از Intel SGX استفاده کند، چهار شرط باید رعایت شود:
پردازندههای سرور یا ایستگاههای کاری باید از دستورالعملهای Intel SGX پشتیبانی کنند.
BIOS ها باید از Intel SGX نیز پشتیبانی کنند.
BIOS باید Intel SGX را فعال کرده باشد.
نرم افزار پلتفرم SGX اینتل باید روی سرورها یا ایستگاه های کاری نصب شود.
اگر CPU های شما از Intel SGX پشتیبانی نمی کنند، تلاش برای فعال کردن SGX بیهوده است. با این حال، اگر CPU از آن پشتیبانی می کند، در مرحله بعدی برای فعال کردن SGX بایستی تایید نمود که BIOS از SGX پشتیبانی می کند.
آیا باید اینتل SGX را غیرفعال نمود؟
به طور کلی، در هیچ شرایطی نباید Intel SGX را غیرفعال کنید.
اگر قصد دارید از Intel SGX برای کمک به ایمن کردن برنامهها و دادههای حساس خود استفاده کنید، بایستی از غیرفعال کردن آن پرهیز کنید، زیرا غیرفعال کردن هیچ اپلیکیشنی محافظت از دادهها را تضمین نمی کند. اگر SGX غیرفعال باشد، حتی نمیتوانید نرمافزار پلتفرم Intel SGX را نصب کنید.
برای جلوگیری از غیرفعال کردن ناخواسته Intel SGX ، کافی است عملکرد BIOS را روی نرم افزار کنترل کنید. به این ترتیب، هر بار که سیستم بوت می شود لازم نیست نگران دسترسی به ویژگی های فعال یا غیرفعال سازی باشید. شما فقط می توانید سیستم خود را بوت کنید و بدانید که Intel SGX به طور خودکار فعال شده است.
نتیجه گیری
فناوری SGX با ایجاد محیط اجرای امن ، برنامه ها را قادر می سازد تا از داده های حساس حتی در صورت نفوذ به سیستم محافظت کنند. این فناوری با استفاده از امنیت مبتنی بر سختافزار، ابزاری کارآمد و مؤثر را برای حفاظت از دادههای حساس فراهم میکند و همین قضیه آن را به فناوری ارزشمند برای طیف گستردهای از برنامهها مبدل میکند. اینتل معتقد است که SGX منحنی یادگیری پایینی دارد، بنابراین توسعه دهندگان نیازی به صرف زمان زیادی برای کشف نحوه کارکرد و نحوه استفاده صحیح از آن ندارند.
به طور کلی، SGX فناوری مهم در جهت افزایش امنیت و حریم خصوصی سیستمها و برنامههاست و احتمالاً در آینده نیز بخش مهمی از CPU های اینتل خواهد بود. توانایی این فناوری در ایجاد محصورهای امن و انجام تأیید از راه دور، آن را به ابزاری ارزشمند برای محافظت از داده ها و کدهای حساس در برابر حملات مخرب تبدیل می کند.
چنانچه مطالب ذکر شده برایتان مفید بود، به شما پیشنهاد می کنیم مقاله ی انواع CPU سرور را نیز مطالعه نمایید تا اطلاعات بیشتری در مورد CPU سرور بدست آورید.
دیدگاهتان را بنویسید