Sw guard extensions sgx что это в биосе
Какова роль услуги платформы Intel® Software Guard Extensions (Intel® SGX) Enclave (PSE) и как она вызывается?
Окружающая среда
Сведения об использовании psE
Не удалось определить, какой Intel® Software Guard Extensions (Intel® SGX) вызывает psE и для чего он используется
В Intel® Software Guard Extensions (Intel® SGX) удаленного attestation End-to-End Example объясняется цель платформы Services Enclave (PSE):
«PSE — это архитектурный анкклав, включенный в пакет программного Intel SGX, который обеспечивает обслуживание в течение надежного времени и монотонной стойки. Они могут использоваться для защиты от воспроизведения во время неисчислимого поколения и для точного подсчета времени, на которое действует тайна».
PsE используется, в основном, в двух сценариях:
Удаленное тестирование. Подробная информация об удаленном тесте и защищенном сеансе (Remote Attestation and Protected Session2) в справочном руководстве по Intel SGX для Windows* и в руководстве Intel® Software Guard Extensions Remote Attestation End-To-End Example для подробной информации о ходе удаленного attestation flow. Ссылки на PSE могут вызываться только анклавами. Приложение isV, также известное как нерушимые приложения, говорит анклаву использовать PSE через b_pse переменной. Затем анклав передает b_pse sgx_ra_init от sgx_ra_init, который используется для создания контекста удаленного attestation. Когда эта переменная установлена, msg3 (от клиента к поставщику услуг) содержит информацию об услугах платформы. После получения msg3 в состав полезной нагрузки, которую поставщик услуг отправляет в Службу проверки тестирования Intel (Intel Attestation Service, IAS), будет включен манифест PSE и новее. Определения манифеста PSE и нонса можно найти в разделе «Тестация свидетельства полезной нагрузки» Intel SGX спецификации API для attestation API. Отчет о проверке с подтверждением для подтверждения, который IAS отправляет Поставщику услуг, содержит поле peManifestStatus,в котором поставщику услуг говорится о проверке и подтверждении Intel SGX службы платформы.
Для запроса обслуживания платформы необходимо указать сеанс PSE. Реализация анклава в образце sgx-ra показывает, как использовать sgx_create_pse_session на основании b_pse.
Анклавы, работающие на серверном оборудовании, не имеют Enclave служб платформы и не могут использовать специальные для клиентских функций функции.
Поддержка услуг Intel® Software Guard Extensions (Intel® SGX) была удалена со всех платформ на базе Linux*, включая клиентские платформы, начиная с Intel SGX SDK для Linux 2.9.
При этом Intel SGX API для монотонных счетчиков по-прежнему является частью приложения Intel® Software Guard Extensions (Intel® SGX) SDK для Windows*, и поддерживается в платформах Windows® 10 с помощью ПО Intel SGX Platform Software для Windows*. Программное обеспечение Intel SGX платформы для Windows обычно устанавливается с помощью приложения обновления Windows от производителя платформы.
Расширения Intel Software Guard Extensions, учебное руководство. Часть 6, две ветви кода
В шестой части серии учебных материалов, посвященных расширениям Intel Software Guard Extensions (Intel SGX), мы временно откладываем анклав в сторону, чтобы заняться выполнением другого требования, которое мы изложили во второй части (проект приложения): мы посвятим эту серию поддержке двух ветвей кода. Нужно, чтобы наше приложение Tutorial Password Manager работало на ПК как с поддержкой Intel SGX, так и без нее. Большая часть содержимого этого материала взята из статьи Правильное обнаружение расширений Intel Software Guard Extensions в приложениях.
Вместе с этой частью серии предоставляется исходный код.
Все приложения, использующие расширения Intel Software Guard Extensions, должны содержать две ветви кода
Прежде всего важно подчеркнуть, что все приложения, использующие Intel SGX, должны содержать две ветви кода. Даже если приложение написано таким образом, что оно должно выполняться только в случае, если расширения Intel SGX доступны и включены, в приложении должна быть запасная ветвь кода, отображающая пользователю понятное сообщение об ошибке и правильно завершающая работу приложения.
Коротко говоря, приложение не должно аварийно завершать работу и отказывать только из-за того, что приложение не поддерживает Intel SGX.
Выявление проблемы
В пятой части этой серии мы создали первую версию анклава приложения и протестировали его, жестко включив в коде поддержку анклава. Для этого мы установили флаг _supports_sgx в файле PasswordCoreNative.cpp.
Разумеется, этот флаг не должен быть включен по умолчанию. Идеология обнаружения компонентов такова: по умолчанию все компоненты отключены, а при обнаружении они включаются. Поэтому первое, что нужно сделать, — вернуть этому флагу значение 0 и тем самым отключить ветвь кода Intel SGX.
Впрочем, перед тем как приступить к процедуре обнаружения компонентов, мы устроим для консольного приложения, которое выполняет наш тестовый пакет, CLI Test App, краткий функциональный тест: мы запустим его в системе, не поддерживающей Intel SGX. Если установить для этого флага нулевое значение, приложение не будет использовать ветвь кода Intel SGX и должно нормально работать.
Вот результат, полученный на ноутбуке с процессором Intel Core i7 четвертого поколения под управлением 64-разрядной версии Microsoft Windows* 8.1. Эта система не поддерживает Intel SGX.
Что произошло?
Налицо проблема, хотя ветвь кода с Intel SGX явным образом отключена в программе. Это приложение, в том виде, в котором оно написано, не работает в системе, не поддерживающей Intel SGX. Оно даже не начало выполняться. В чем же дело?
Нужную подсказку нам дает сообщение об ошибке в окне консоли.
System.IO.FileNotFoundException: Could not load file or assembly ‘PasswordManagerCore.dll’ or one of its dependencies. The specified file could not be found.
Рассмотрим библиотеку PasswordManagerCore.dll и ее зависимости.
Помимо основных библиотек ОС, в число зависимостей входят bcrypt.lib и EnclaveBridge.lib, для чего во время выполнения потребуются библиотеки bcrypt.dll и EnclaveBridge.dll. Поскольку библиотека bcrypt.dll поставляется корпорацией Майкрософт и входит в состав ОС, можно исходить из того, что ее зависимости, если таковые существуют, уже установлены. Остается EnclaveBridge.dll.
Рассмотрим зависимости этой библиотеки. Вот что мы видим.
В этом и заключается проблема. Несмотря на то что мы явным образом отключили ветвь кода Intel SGX, EnclaveBridge.dll по-прежнему ссылается на библиотеки времени выполнения Intel SGX. Все символы в модуле объекта должны быть разрешены сразу после его загрузки. Отключение ветви кода Intel SGX не имеет значения: в DLL-библиотеке по-прежнему есть неопределенные символы.
При загрузке PasswordManagerCore.dll эта библиотека разрешает неопределенные символы, загружая bcrypt.dll и EnclaveBridge.dll, причем последняя из этих двух библиотек, в свою очередь, пытается разрешить свои неопределенные файлы, загружая sgx_urts.dll и sgx_uae_service.dll. В системе, где мы попытались запустить тестовое приложение, эти библиотеки отсутствуют, а поскольку ОС не может разрешить все эти символы, она выводит исключение, а программа дает сбой, не успев запуститься.
Эти две DLL-библиотеки входят в состав пакета Intel SGX Platform Software (PSW). Без них невозможно выполнение приложений Intel SGX, написанных с помощью Intel SGX Software Development Kit (SDK). Наше приложение должно работать даже при отсутствии этих библиотек.
Программный пакет платформы
Как уже было сказано выше, рантайм библиотеки входят в состав пакета PSW. Пакет PSW, помимо этих библиотек поддержки, включает следующее.
Мы подробнее обсудим установщик PSW в одном из следующих выпусков этой серии, посвященном упаковке и развертыванию.
Обнаружение поддержки расширений Intel Software Guard Extensions
До сих пор мы занимались лишь проблемой запуска нашего приложения в системах, не поддерживающих Intel SGX, а точнее в системах без пакета PSW. На следующем этапе необходимо уже после запуска приложения определить, поддерживаются ли расширения Intel SGX и включены ли они.
Обнаружение компонента Intel SGX, к сожалению, представляет собой не слишком простую задачу. Система поддерживает Intel SGX, если выполняются следующие четыре условия.
Определение компонентов дополнительно затрудняется еще и тем, что анализ состояния BIOS представляет собой нетривиальную задачу, которую, как правило, невозможно осуществить из пользовательского процесса. К счастью, в пакете Intel SGX SDK предоставляется простое решение: функция sgx_enable_device проверяет наличие расширений Intel SGX и пытается их включить, если в BIOS выбрано программное управление этими расширениями (цель программного управления — предоставить приложениям возможность включать Intel SGX, не требуя от пользователей перезагружать компьютер и запускать настройку BIOS: не самая безопасная и достаточно пугающая процедура, если пользователи не слишком подкованы в техническом плане).
С функцией sgx_enable_device связана всего одна проблема: эта функция входит в состав среды выполнения Intel SGX, следовательно, для ее использования в системе должен быть установлен пакет PSW. Поэтому перед вызовом функции sgx_enable_device нужно определить наличие пакета PSW.
Реализация
Мы определились с областью проблем, требующих решения, поэтому теперь можно составить перечень действий, необходимых для того, чтобы наше приложение с двумя ветвями кода правильно работало. Вот что должно делать наше приложение.
Загрузка и выполнение без среды выполнения Intel Software Guard Extensions
Наше основное приложение зависит от библиотеки PasswordManagerCore.dll, которая зависит от библиотеки EnclaveBridge.dll, которая, в свою очередь, зависит от среды выполнения Intel SGX. Поскольку необходимо разрешить все символы при загрузке приложения, нужно каким-то образом сделать так, чтобы загрузчик не стал пытаться разрешать символы, поступающие из библиотек среды выполнения Intel SGX. Доступно два варианта.
Вариант 1. Динамическая загрузка
При динамической загрузке отсутствует явная компоновка библиотеки в проекте. Вместо этого используются системные вызовы для загрузки библиотеки во время выполнения, затем происходит поиск имен каждой функции, которые планируется использовать, чтобы получить адреса, по которым они были размещены в памяти. После этого функции, содержащиеся в библиотеке, вызываются опосредованно с помощью указателей.
Метод динамической загрузки нельзя назвать простым и удобным. Даже если нужно лишь несколько функций, может потребоваться немало усилий, чтобы создать прототипы указателей для каждой нужной функции и получать адреса их загрузки по одному. При этом также утрачиваются некоторые преимущества, предоставляемые интегрированной средой разработки (например, помощь при создании прототипов), поскольку вы больше не вызываете функции явным образом по имени.
Динамическая загрузка обычно используется в приложениях с расширяемой архитектурой (например, в подключаемых модулях).
Вариант 2. Отложенная загрузка DLL-библиотек
В этом случае все библиотеки динамически компонуются в проекте, но Windows получает команду отложить загрузку проблемных DLL-библиотек. При отложенной загрузке DLL-библиотек Windows не пытается разрешить символы, определенные библиотекой, при запуске приложения. Вместо этого система дожидается первого вызова программы к функции, определенной в библиотеке. Именно в этот момент библиотека загружается, а символ разрешается (вместе со всеми своими зависимостями). Это, по сути, означает, что библиотека не загружается, пока она не нужна приложению. Преимущество такого подхода состоит в том, что приложения могут ссылаться на библиотеки, не установленные в системе, если не происходит вызов функций, содержащихся в этих библиотеках.
Мы оказываемся именно в такой ситуации, когда флаг компонента Intel SGX отключен, поэтому используем вариант номер 2.
Отложенная загрузка DLL-библиотеки указывается в конфигурации проекта для зависимого приложения или библиотеки. Для Tutorial Password Manager лучше всего использовать отложенную загрузку для EnclaveBridge.dll, поскольку мы вызываем эту библиотеку только при включенной ветви кода Intel SGX. Если эта библиотека не загружается, не будут загружены и две библиотеки среды выполнения Intel SGX.
Соответствующий параметр настраивается на странице Компоновщик → Ввод в окне конфигурации проекта PasswordManagerCore.dll.
После повторной сборки и установки библиотеки в системе с процессором Intel Core четвертого поколения консольное тестовое приложение начинает работать нужным образом.
Обнаружение программного пакета платформы
Перед вызовом функции sgx_enable_device для проверки поддержки Intel SGX на уровне платформы необходимо убедиться, что пакет PSW установлен в системе, поскольку функция sgx_enable_device входит в состав среды выполнения Intel SGX. Для этого лучше всего попытаться загрузить библиотеки рантайма.
Из предыдущего шага мы знаем, что нельзя просто динамически скомпоновать их: это приведет к ошибке при попытке запуска программы, если система не поддерживает Intel SGX (или если не установлен пакет PSW). Но нельзя использовать и отложенную загрузку библиотек: при таком способе загрузки невозможно определить, установлена ли библиотека, поскольку, если она отсутствует, произойдет сбой приложения. Это означает, что для проверки наличие библиотек рантайма необходимо использовать динамическую загрузку.
Библиотеки рантайма PSW должны быть установлены в системную папку Windows, поэтому мы воспользуемся GetSystemDirectory для получения этого пути, а для ограничения области поиска библиотек используем вызов SetDllDirectory. И наконец, для загрузки этих библиотек мы используем функцию LoadLibrary. В случае ошибки любого из этих вызовов мы будем знать, что пакет PSW не установлен и что основному приложению не следует пытаться запускать ветвь кода Intel SGX.
Обнаружение и включение расширений Intel Software Guard Extensions.
Поскольку библиотеки среды выполнения PSW были динамически загружены на предыдущем этапе, теперь достаточно вручную найти символ sgx_enable_device и вызвать его с помощью указателя функции. В результате мы узнаем, включена ли поддержка расширений Intel SGX.
Реализация
Для реализации перечисленных возможностей в приложении Tutorial Password Manager мы создадим новую библиотеку FeatureSupport.dll. Эту библиотеку можно безопасно динамически компоновать с основным приложением, поскольку она не имеет явных зависимостей от других библиотек.
Обнаружение компонентов будет реализовано в классе C++/CLI под названием FeatureSupport. Этот класс также будет содержать некоторые высокоуровневые функции для получения дополнительной информации о состоянии Intel SGX. В редких случаях для включения Intel SGX программным способом может потребоваться перезагрузка, а в еще более редких случаях программное включение может не сработать, поэтому пользователям потребуется явным образом включить поддержку Intel SGX в BIOS.
Объявление класса для FeatureSupport показано ниже.
Вот низкоуровневые процедуры, проверяющие наличие пакета PSW и пытающиеся обнаружить и включить Intel SGX.
Подведение итогов
С описанными изменениями кода мы встроили обнаружение компонентов Intel SGX в наше приложение. Теперь приложение будет правильно работать как в системах с поддержкой Intel SGX, так и без Intel SGX, выбирая соответствующую ветвь кода.
Как уже было сказано выше, в этой части предоставляется пример кода для загрузки.
Прилагаемый архив включает исходный код ядра приложения Tutorial Password Manager, включая новую библиотеку для обнаружения компонентов. Кроме того, мы добавили новую тестовую программу с графическим интерфейсом, автоматически выбирающую ветвь кода Intel SGX, но позволяющую отключить эту ветвь при необходимости (доступно только в случае, если система поддерживает Intel SGX).
Консольная тестовая программа также обновлена для обнаружения Intel SGX, хотя в этой программе невозможно настроить отключение ветви кода Intel SGX без изменения исходного кода.
В дальнейших выпусках
В седьмой части мы вернемся к работе с анклавом для дальнейшей доработки интерфейса. Следите за новостями!
Загружаемые файлы доступны на условиях лицензионного соглашения Intel Software Export Warning.
Возьмите защиту своих данных под контроль
Что такое Intel® SGX?
Разработчики приложений и решений теперь могут значительно усилить безопасность данных, используя новые аппаратные средства управления для облачных и корпоративных сред. Intel® Software Guard Extensions (Intel® SGX) 1 2 обеспечивает аппаратное шифрование памяти, которое изолирует определенный код и данные приложения в памяти. Intel® SGX позволяет помещать код уровня пользователя в частные области памяти под названием анклавы, которые создаются для защиты от процессов, выполняющихся на более привилегированных уровнях. Только Intel® SGX обеспечивает такой точный уровень контроля и защиты.
Усовершенствуйте защиту своего кода и данных
Intel® SGX помогает защититься от многих известных и активных угроз. Они добавляют еще один уровень защиты, помогая снизить поверхность атаки системы.
Узнайте, как сочетание возможностей усиленной защиты и верификации Intel® SGX, а также постоянная совместная работа Intel со своей экосистемой безопасности помогают минимизировать потенциальную поверхность атаки и снижать даже теоретические риски.
Решения и услуги Intel SGX
Связывайтесь с партнерами Intel, OEM-компаниями и поставщиками облачных услуг и находите продукты и решения, которые помогут ответить на самые сложные вызовы, стоящие перед вашей компанией.
Разрабатывайте технологии безопасности на аппаратной платформе
Узнайте, как разрабатывать безопасный код пользовательского уровня для выделения закрытых областей памяти, защищенных от процессов с более высоким уровнем привилегий.
Масштабируемые процессоры Intel® Xeon® 3-го поколения с технологией Intel® SGX
Процессоры Intel® Xeon® E обеспечивают возможности повышения безопасности, которые могут использоваться совместно с существующей инфраструктурой для усиления защиты наиболее важных элементов рабочей задачи или службы. Благодаря усовершенствованной технологии Intel® Software Guard Extensions (Intel® SGX) масштабируемые процессоры Intel® Xeon® могут размещать приложения в защищенных анклавах памяти для усиления защиты определенных приложений или данных от раскрытия или модификации.
Информация о продукте и производительности
Ни один продукт или компонент не может обеспечить абсолютную защиту.
Доступность функций и преимуществ технологий Intel® зависит от конфигурации системы, а для их работы может потребоваться оборудование, программное обеспечение или активация сервисов. Значения производительности могут изменяться в зависимости от конфигурации системы. Ни один продукт или компонент не может обеспечить абсолютную защиту. Проконсультируйтесь с производителем или продавцом системы. Подробная информация также представлена на веб-сайте https://www.intel.ru.
Для работы технологий Intel может потребоваться специальное оборудование, ПО или активация услуг. // Ни один продукт или компонент не может обеспечить абсолютную защиту. // Ваши расходы и результаты могут отличаться. // Производительность зависит от вида использования, конфигурации и других факторов. // См. наши юридические уведомления и отказ от ответственности. // Корпорация Intel выступает за соблюдение прав человека и избегает причастности к их нарушению. См. Глобальные принципы защиты прав человека в корпорации Intel. Продукция и программное обеспечение Intel предназначены только для использования в приложениях, которые не приводят или не способствуют нарушению всемирно признанных прав человека.
Intel Software Guard Extensions, серия учебных материалов. Часть 1, основы Intel SGX
Первая часть в серии учебных материалов по Intel Software Guard Extensions (Intel SGX) представляет собой краткое описание этой технологии. Дополнительные сведения см. в документации в составе Intel Software Guard Extensions SDK. Список всех учебных материалов в этой серии см. в статье Представляем серию учебных материалов, посвященных Intel Software Guard Extensions.
Технология Intel Software Guard Extensions
Программным приложениям зачастую приходится работать с конфиденциальной информацией, например с паролями, номерами счетов, финансовыми данными, ключами шифрования, медицинскими данными. Доступ к этим данным должен быть только у полномочных получателей. В терминологии Intel SGX такая конфиденциальная информация называется «секретом приложения».
Задача операционной системы состоит в применении политики безопасности в компьютере, чтобы эти секреты не были непреднамеренно раскрыты другим пользователям или приложениям. Операционная система не даст пользователю получить доступ к файлам другого пользователя (без предоставленного явным образом разрешения); не даст одному приложению получить доступ к памяти другого приложения; не даст пользователю без необходимых прав получить доступ к ресурсам ОС, исключая строго контролируемые ресурсы. В приложениях часто используются дополнительные защитные меры, например шифрование данных, чтобы исключить доступ третьими сторонами к данным, пересылаемым в хранилище или по сетевому подключению, даже если злоумышленникам удалось получить доступ к ОС и к оборудованию.
Несмотря на все эти защитные меры, в большинстве компьютерных систем все равно остаются уязвимые места. Разнообразные механизмы защищают одно приложение от другого и защищают ОС от пользователя, не имеющего разрешений, но приложения обычно практически никак не защищены от процессов, выполняющихся с более высоким уровнем прав, включая саму ОС. Вредоносные программы, обладающие правами администратора, имеют неограниченный доступ ко всем системным ресурсам и ко всем приложениям, запущенным в системе. Усовершенствованные вредоносные программы могут атаковать защитные механизмы приложения, чтобы извлечь ключи шифрования и даже секретные данные непосредственно из памяти.
Корпорация Intel разработала расширения Intel SGX для высокоуровневой защиты секретов и для защиты от таких программных атак. Intel SGX — это набор инструкций ЦП, дающих возможность приложениям создавать анклавы: защищенные области в адресном пространстве приложения, обеспечивающие конфиденциальность и целостность даже при наличии вредоносных программ с расширенными правами. Код анклавов поддерживается особыми инструкциями, он компилируется и загружается в виде файла библиотеки динамической компоновки Windows * (DLL).
Расширения Intel SGX позволяют снизить уязвимость приложений. На рис. 1 показана значительная разница между потенциальными областями атаки при наличии и при отсутствии анклавов Intel SGX.
Рисунок 1. Области атаки с анклавами и без анклавов Intel Software Guard Extensions
Как технология расширений Intel Software Guard Extensions помогает защищать данные
Intel SGX обеспечивает следующую защиту от атак, нацеленных на оборудование и программ.
Рисунок 2. Защита данных в анклавах Intel Software Guard Extensions в защищенных приложениях
Как это устроено
Для использования Intel SGX приложение должно быть разделено на два компонента (см. рис. 3).
В анклавах также следует свести к минимуму взаимодействие между доверенными и недоверенными компонентами. Анклавы могут выходить за пределы защищенной области памяти и вызывать функции в недоверенном компоненте (с помощью особых инструкций), но рекомендуется ограничивать такие зависимости, чтобы обеспечить более надежную защиту анклава от атак.
Рисунок 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 Extensions: часть 2, создание приложений мы рассмотрим диспетчер паролей, который будет создан с поддержкой Intel SGX. Мы опишем требования к созданию этого приложения, ограничения и пользовательский интерфейс. Следите за новостями.