В прошлом году мы уже публиковали в блоге Intel быстрый о технологии Расширения Intel Software Guard (Intel SGX), поддержка которого была введена в процессорах Intel Core шестого поколения.
Тогда речь шла в основном об идеологических вопросах; Думаю, пришло время рассказать вам, как это работает. Этот пост будет содержать множество иллюстраций из подробного (более 200 слайдов) Презентации Intel посвященный этой технологии.
Здесь, конечно, сказано гораздо больше, чем здесь, поэтому вы теперь знаете, где можно продолжить изучение вопроса.
Защищенный режим позволяет отделить привилегированный код ядра от кода приложения и приложения друг от друга.
Однако приложения не защищены от атак со стороны привилегированного кода.
Вредоносное приложение может проникнуть в него с помощью эксплойта, а затем внедриться в беззащитную жертву.
При этом поверхность атаки очень широка: атаковать можно компоненты ОС, само приложение и даже аппаратную подсистему.
Суть SGX — сузить периметр безопасности, разместив все критические данные в отдельных областях анклава, недоступных даже из кода ядра.
Однако при этом процесс разработки и среда, в которой выполняется приложение, не должны радикально меняться.
Приложение состоит из двух частей: доверенной и общей.
При запуске он создает в защищенной части памяти анклав, состоящий из страниц по 4 КБ.
Когда вызывается доверенная функция, она видит данные анклава; любой другой внешний доступ (в том числе из ОС) запрещен.
После завершения функции анклав остается в охраняемой зоне.
Безопасная среда выполнения встроена в пользовательский процесс и имеет собственный код и данные.
Он обеспечивает безопасность, целостность данных, контроль точек ввода и поддерживает многопоточность.
При попытке доступа к анклаву проверяется, находятся ли данные вызывающего процесса (EPC, Enclave Page Cache) по этому адресу.
Далее контролируются разрешения функций (EPCM, метаданные кэша страниц анклава), и только после этого предоставляется необходимый доступ.
Сертификация происходит следующим образом.
Анклав запрашивает аппаратно подписанный отчет, содержащий, среди прочего, информацию о целостности анклава.
Этот отчет отправляется на сервер сертификации, где он проверяется.
Анклаву отправляется ключ приложения (открытая часть ключа), где генерируется подписывающий (закрытый) ключ в зависимости от анклава и платформы.
Ключ приложения шифруется с помощью ключа подписи и сохраняется для будущего использования.
Функциональность Intel Software Guard Extensions реализуется посредством комбинации инструкций SGX, поддерживающих локальную аттестацию, и анклава аттестации, предоставляемого Intel, для поддержки удаленной аттестации.
Разработчики SGX предусмотрели защиту от различных типов атак на данные и код: угроз со стороны пользовательского и системного ПО, а также загрузчика.
Обратите внимание, что SGX не может защитить от уязвимостей побочного канала, когда злоумышленники собирают статистику использования ЦП для определения характеристик исполняемого на нем кода.
Для решения такого рода задач предназначены средства динамического анализа программ, такие как, например, Приколоть .
Для предотвращения перехвата данных при обмене между процессором и памятью используется Memory Encryption Engine (MEE), который работает как расширение контроллера памяти и поддерживает технологию SGX. Для определенных областей памяти данные, передаваемые по шине, шифруются.
MEE использует специальные комбинации криптографических примитивов для эффективного шифрования при очень строгих требованиях к задержке.
Как выглядит разработка приложений, поддерживающих SGX? Конфиденциальные фрагменты кода и данные размещаются в отдельном общем объекте (.
so).
Затем определяются интерфейсы анклава и генерируются заглушки.
Библиотеки SGX взаимодействуют с кодом через API; для разработки используются привычные разработчику инструментальные цепочки.
Для облегчения процесса обработки уже есть Intel SGX SDK .
Что обещает нам технология Intel SGX? Прежде всего, могут быть существенно снижены требования к техническим навыкам пользователя, работающего с конфиденциальной информацией.
Она больше не боится вирусов, троянов и странных программ, которые могут оказаться на его компьютере.
В дальнейшем доверие к облачным платформам повысится — им можно будет доверять свои приложения, поскольку они будут защищены от любого кода хоста.
Конечно, все это дело довольно отдаленного будущего, ведь процессоры Skylake только появились.
Но теперь вы можете использовать SGX. Мы готовы углубиться в эту тему и ответить на любые связанные с ней вопросы.
Теги: #Компьютерное оборудование #Процессоры #Расширения Intel Software Guard
-
Ведете Ли Вы Учет Своих Личных Финансов?
19 Oct, 24 -
Как Работал Мехикон?
19 Oct, 24 -
История Nokia Meego
19 Oct, 24 -
Сапер На Дцпу-16
19 Oct, 24