Первая часть из серии обучающих материалов по Расширения Intel Software Guard (Intel SGX) представляет собой краткое описание этой технологии.
Дополнительную информацию см.
в прилагаемой документации.
SDK расширений Intel Software Guard .
Список всех руководств из этой серии см.
в статье.
Представляем серию обучающих материалов, посвященных расширениям Intel Software Guard Extensions .
Технология расширений Intel Software Guard
Программным приложениям часто приходится работать с конфиденциальной информацией, такой как пароли, номера счетов, финансовые данные, ключи шифрования и медицинские данные.Только авторизованные получатели должны иметь доступ к этим данным.
В терминологии Intel SGX эта конфиденциальная информация называется «секретом приложения».
Задача операционной системы — обеспечить соблюдение политик безопасности на компьютере, чтобы эти секреты не были случайно раскрыты другим пользователям или приложениям.
Операционная система не позволит пользователю получить доступ к файлам другого пользователя (без явно предоставленного разрешения); предотвратит доступ одного приложения к памяти другого приложения; не позволит пользователю без необходимых прав получить доступ к ресурсам ОС, за исключением строго контролируемых ресурсов.
Приложения часто используют дополнительные меры безопасности, такие как шифрование данных, чтобы предотвратить доступ третьих лиц к данным, отправленным в хранилище или по сетевому соединению, даже если злоумышленники получили доступ к ОС и оборудованию.
Несмотря на все эти защитные меры, в большинстве компьютерных систем все еще остаются уязвимости.
Различные механизмы защищают одно приложение от другого и защищают ОС от пользователя без разрешения, но приложения обычно практически не имеют защиты от процессов, запущенных с более высокими разрешениями, включая саму ОС.
Вредоносные программы с правами администратора имеют неограниченный доступ ко всем системным ресурсам и всем запущенным в системе приложениям.
Усовершенствованное вредоносное ПО может атаковать механизмы безопасности приложения для извлечения ключей шифрования и даже конфиденциальных данных непосредственно из памяти.
Корпорация Intel разработала расширения Intel SGX для обеспечения высокого уровня безопасности секретов и защиты от таких программных атак.
Intel SGX — это набор инструкций ЦП, которые позволяют приложениям создавать анклавы: безопасные области в адресном пространстве приложения, обеспечивающие конфиденциальность и целостность даже при наличии привилегированных вредоносных программ.
Код анклавов поддерживается специальными инструкциями, компилируется и загружается как файл библиотеки динамической компоновки (DLL) Windows*.
Расширения Intel SGX помогают снизить уязвимости приложений.
На рис.
1 показана значительная разница между потенциальными поверхностями атаки с анклавами Intel SGX и без них.
Рис.
1. Поверхности атак с анклавами Intel Software Guard Extensions и без них
Как технология Intel Software Guard Extensions помогает защитить данные
Intel SGX обеспечивает следующую защиту от атак, нацеленных на аппаратное и программное обеспечение.
- Доступ на чтение или запись к памяти анклава извне анклава невозможен, независимо от текущего уровня прав и режима работы ЦП.
- Анклавы рабочего уровня не подлежат отладке ни программными, ни аппаратными отладчиками.
(Вы можете создать анклав с атрибутом отладки, который позволит отладчику Intel SGX просматривать содержимое анклава аналогично стандартному отладчику.
Это сделано для повышения удобства использования процесса разработки программного обеспечения.
)
- Невозможно войти в среду анклава, используя классические вызовы функций, переходы, манипуляции с регистрами или манипуляции со стеком.
Единственный способ вызвать функцию анклава — использовать новую инструкцию, которая выполняет несколько проверок безопасности.
- Память анклава защищена стандартными алгоритмами шифрования с защитой от повторного воспроизведения.
Если вы прочитаете память или подключите модули оперативной памяти к другой системе, вы сможете получить только зашифрованные данные (см.
Рисунок 2).
- Ключ шифрования памяти меняется случайным образом при каждом изменении цикла питания (например, при загрузке, возобновлении работы после сна и спящем режиме).
Ключ хранится внутри процессора и недоступен снаружи.
- Данные изолированы в анклавах и доступны только коду этого анклава.
Обычно это 64 МБ или 128 МБ.
Некоторые производители систем предоставляют возможность настроить это значение в BIOS. В зависимости от размера каждого анклава в памяти одновременно можно создать от 5 до 20 анклавов.
Рисунок 2. Защита данных в анклавах Intel Software Guard Extensions в защищенных приложениях.
Как это работает
Чтобы использовать Intel SGX, приложение необходимо разделить на два компонента (см.рис.
3).
- Доверенный компонент .
Это анклав.
Код доверенного компонента получает доступ к секретам приложения.
Одно приложение может иметь несколько доверенных компонентов/анклавов.
- Ненадежный компонент .
Это остальная часть приложения, любой его модуль.
Следует отметить, что с точки зрения анклава и ОС, и VMM считаются ненадежными компонентами.
Большой анклав со сложным интерфейсом не только потребляет больше защищенной памяти, но и повышает уязвимость.
Анклавы также должны минимизировать взаимодействие между доверенными и ненадежными компонентами.
Анклавы могут выходить за пределы защищенной области памяти и вызывать функции в недоверенном компоненте (с помощью специальных инструкций), но рекомендуется ограничивать такие зависимости, чтобы сделать анклав более защищенным от атак.
Рисунок 3. Запуск приложения Intel Software Guard Extensions
Сертификация
В архитектуре SGX аттестация — это подтверждение создания определенного анклава на платформе.Существует два механизма сертификации.
- Местная сертификация происходит, когда два анклава, находящиеся на одной платформе, выполняют взаимную аутентификацию.
- Дистанционная сертификация происходит, когда доверие анклава проверяется удаленным поставщиком.
Местная сертификация
Локальная аттестация полезна, когда приложения имеют несколько анклавов, которые должны работать вместе для выполнения задачи, или когда два отдельных приложения должны взаимодействовать между анклавами.Каждый анклав должен проверить другой анклав, чтобы убедиться в его надежности.
Затем анклавы устанавливают безопасный сеанс и используют обмен ключами ECDH для совместного использования сеансового ключа.
Этот ключ сеанса можно использовать для шифрования данных, которые должны использоваться обоими анклавами совместно.
Один анклав не может получить доступ к защищенному пространству памяти другого анклава, даже если оба анклава созданы одним и тем же приложением, поэтому необходимо удалить ссылки из всех указателей на их значения и скопировать их; полный набор данных должен быть перенесен из одного анклава в другой.
Дистанционная сертификация
При удаленной аттестации расширения программного обеспечения Intel SGX и аппаратное обеспечение платформы формируют предложение, которое отправляется на сторонний сервер для установления доверия.Программное обеспечение включает в себя анклав приложений, а также компоненты Quoting Enclave (QE) и Provisioning Enclave (PvE), предоставленные Intel. Квалификационное оборудование — это ЦП, поддерживающий Intel SGX. Сводная информация о программном обеспечении в сочетании с уникальным для платформы асимметричным аппаратным ключом используется для формирования предложения, которое передается на удаленный сервер по доверенному каналу.
Если удаленный сервер определяет, что экземпляр анклава создан правильно и работает на процессоре с поддержкой Intel SGX, то сервер устанавливает доверие и передает секреты по доверенному каналу.
Данные о пломбировании
Запечатывание данных — это шифрование данных, позволяющее их записать в ненадежную память или хранилище без раскрытия содержимого.Эти данные впоследствии могут быть прочитаны анклавом и распечатаны (расшифрованы).
Ключи шифрования генерируются внутри компании по запросу и не передаются анклаву.
Есть два способа запечатать данные.
- Идентификатор анклава .
Этот метод создает ключ, уникальный для данного анклава.
- Сертификат пломбирования .
Этот метод генерирует ключ на основе удостоверения органа печати анклава.
Несколько анклавов одного и того же свидетеля подписи могут образовывать один и тот же ключ.
Запечатывание с помощью идентификатора анклава
Если ключ запечатан идентификатором анклава, он уникален для конкретного анклава, который запечатал данные.Любые изменения в анклаве, влияющие на его подпись, будут создавать новый ключ.
При использовании этого метода данные, запечатанные одной версией анклава, не будут доступны другой версии того же анклава.
Побочным эффектом этого метода является то, что запечатанные данные невозможно перенести в новые версии приложения и его анклава.
Этот подход предназначен для предложений, в которых старые запечатанные данные не должны использоваться новыми версиями приложения.
Пломбирование с сертификатом опломбирования
При опечатывании сертификатом опломбирования несколько анклавов из одного центра могут запечатывать и распечатывать данные друг друга.Это позволяет переносить данные из одной версии анклава в другую или совместно использовать данные между несколькими приложениями одного и того же поставщика.
Если вы хотите запретить старым версиям программного обеспечения и анклаву доступ к данным, запечатанным в новых версиях приложения, вы можете использовать номер версии программного обеспечения при подписании анклава.
Версии анклава старше указанного номера версии программного обеспечения не смогут формировать ключ и, следовательно, не смогут печатать данные.
Как мы будем использовать технологию Intel Software Guard Extensions в руководстве
Мы рассмотрели три важнейших компонента Intel SGX: анклавы, аттестацию и запечатывание.В этом руководстве мы сосредоточимся на реализации анклавов, поскольку это ядро Intel SGX. Невозможно выполнить аттестацию или запечатывание без создания анклава.
Это также ограничит размер руководства.
В будущих выпусках
Во второй части образовательного сериала Расширения Intel Software Guard: Часть 2, Создание приложений Мы рассмотрим менеджер паролей, который будет построен с поддержкой Intel SGX. Мы опишем требования для создания этого приложения, ограничения и пользовательский интерфейс.Следите за новостями.
Список всех руководств из этой серии см.
в статье.
Представляем серию обучающих материалов, посвященных расширениям Intel Software Guard Extensions .
Теги: #Расширения Software Guard #Бизнес-клиент #программирование
-
Виртуальный Отпуск.
19 Oct, 24 -
Инвестиции В Игры: Азиатская Угроза
19 Oct, 24