Какова роль услуги платформы 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, серия учебных материалов. Часть 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. Мы опишем требования к созданию этого приложения, ограничения и пользовательский интерфейс. Следите за новостями.
990x.top
Простой компьютерный блог для души)
Intel Software Guard Extensions Platform Software что это? (Intel SGX)

Вот еще читаю, что у одного чела прога Cyberlink Advisor (что-то связанное с видео) ему выдает ошибка, что мол в системе не хватает Intel SGX. То есть это не шутки и Intel SGX реально нужно для программ, и даже могут ошибки появляться, если не установлено Intel SGX?.
Ребята, вот вам картинка, думаю все понятно и без слов:
Еще я узнал что в биосе может быть опция SGX Software controlled, это вроде как контроллер SGX, и его наверно можно включить или отключить.
Так, еще инфа — SGX нужно для просмотра оригинальных физических UHD дисков с защитой и шифрованием. Ребята, вот нашел картинку, если вы понимаете в английском то посмотрите, тут кажется есть полезная инфа:
Еще картинка с информацией, но тут тоже все на английском:
Так ребята, смотрите, это окно Программы и компонент из виндовс и я вижу что тут стоит прога Intel Software Guard Extensions Platform Software:
Значит какие у меня мысли? Эта прога нужна для работы Intel SGX, то есть каких-то инструкций, без которых некоторые проги могут выдавать ошибку, мол нет Intel SGX. Второе — я думаю что эту прогу нужно обязательно устанавливать, удалять не стоит, хоть это не драйвера. Вполне возможно что вы и не ставили эту прогу, ее поставила сама Windows при обновлении. На заметку — окно Программы и компоненты можно вызвать если зажать кнопки Win + R и написать туда команду appwiz.cpl и нажать ОК.
Так так.. но тут ребята я увидел вот эту картинку и это уже интересно:
Так получается что Intel Software Guard Extensions Platform Software это все таки драйвер или даже некое устройство? То есть это не просто ПО, а драйвер, а если драйвер то уже обязательно к установке…
Ну а вот это окно установки Intel Software Guard Extensions Platform Software и тут даже написано мол This platform may not be SGX-compatible:
Тут написано что эта платформа не может быть совместима с SGX. Вот еще интересная картинка, смотрите:
И что тут говорится? А пишется что ошибка установки, что мол платформа не поддерживает SGX и что попробуйте включить SGX в биосе. Но есть и второй пункт и в нем говорится что ваша операционка не поддерживает SGX. Так это получается.. что может быть такое что операционка не поддерживает SGX? Вот этого не знал конечно…
Вот еще картинка и снова на английском, тут написано что такое SGX:
Ребята, вот я еще нашел информацию о том что такое SGX и на этот раз уже на русском:
Ну вот ребята на этом и все, надеюсь что все что я тут написал, то хоть кому-то это было полезно 
Возьмите защиту своих данных под контроль
Что такое 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 в картинках
В прошлом году мы в блоге Intel уже публиковали пост о технологии Intel Software Guard Extensions (Intel SGX), поддержку которой внедрили в процессорах Intel Core шестого поколения. Тогда речь шла в основном об идеологических моментах; думается, настало время рассказать, как это работает. В этом посте будет много иллюстраций из подробной (более 200 слайдов) презентации Intel, посвященной этой технологии. В ней, конечно, сказано гораздо больше, чем здесь, так что вы теперь знаете, где можно продолжить изучение вопроса.
Кольца защищенного режима разделяют привилегированный код ядра и код приложений, а также отделяют приложения друг от друга. Однако при этом приложения не защищены от атак со стороны привилегированного кода. Зловредное приложение может проникнуть в него с помощью эксплойта и затем внедриться в беззащитную жертву. При этом участок для атаки очень широк: нападать можно и на компоненты ОС, и на само приложение, и даже на аппаратную подсистему.
Смысл SGX состоит в том, чтобы сузить периметр защиты, разместив все критически важные данные в отдельных областях-анклавах, недоступные даже из кода ядра. При этом, однако, не должен коренным образом изменяться процесс разработки и среда, где исполняется приложение.
Приложение состоит из двух частей: доверенного и общего. При запуске оно создает анклав в защищенной части памяти, состоящий из страниц размером 4 Кб. При вызове доверенной функции она видит данные анклава, любой другой внешний доступ (в том числе и со стороны ОС) запрещен. После окончания работы функции анклав остается в защищенной области.
Среда защищенного исполнения встроена в пользовательский процесс, у нее собственные код и данные. Она обеспечивает безопасность, целостность данных, контроль входных точек, поддерживает многопоточность.
При попытке доступа к анклаву проверяется, находятся ли по данному адресу данные вызывающего процесса (EPC, Enclave Page Cache). Далее подвергаются контролю полномочия функции (EPCM, Enclave Page Cache Metadata), и только потом предоставляется требуемый доступ.
Аттестация происходит следующим образом. Анклав запрашивает аппаратно подписанный отчет, содержащий, в том числе информацию о целостности анклава. Этот отчет отсылается на аттестующий сервер, где происходит его верификация. Анклаву высылается ключ приложения (открытая часть ключа), где генерируется подписывающий (приватный) ключ, зависящий от анклава и платформы. Ключ приложения шифруется подписывающим ключом и сохраняется для дальнейшего использования.
Функционал Intel Software Guard Extensions реализуется с помощью комбинации SGX инструкций, поддерживающих локальную аттестацию и предоставляемого Intel аттестационного анклава для поддержки удаленной аттестации.
Разработчики SGX предусмотрели защиту от различного рода атак на данные и код: угрозы со стороны пользовательского и системного ПО, а также загрузчика. Заметим, что средствами SGX невозможно защититься от side-channel уязвимостей, когда злоумышленники собирают статистику использования ЦПУ для определения характеристик исполняемого на нем кода. Для решения подобного рода задач предназначены средства динамического анализа программ, такие, например, как Pin.
Для предотвращения перехвата данных при обмене между процессором и памятью используется Memory Encryption Engine (MEE), работающий как расширение контроллера памяти и поддерживающий технологию SGX. Для определенных областей памяти осуществляется шифрование данных, передающихся по шине. MEE использует специальные комбинации криптографических примитивов для эффективного шифрования при очень жестких требованиях по задержкам.
Как выглядит разработка приложений, поддерживающих SGX? Чувствительные фрагменты кода и данных размещаются в отдельном shared object (.so). Далее определяются интерфейса анклава и генерируются заглушки. Библиотеки SGX взаимодействуют с кодом через API, для разработки используются обычные, привычные для разработчика тулчейны. Для облегчения процесса обработки уже имеется Intel SGX SDK.
Что обещает нам технология Intel SGX? Прежде всего то, что требования к техническим навыкам пользователя, работающего с конфиденциальной информацией, могут быть сильно сокращены. Ей больше не страшны вирусы, трояны и странные программы, которые могут иметься на его компьютере. Далее, повысится доверие к облачным платформам – им можно будет доверять свои приложения, поскольку они будут защищены от любого кода хоста. Конечно, все это дело довольно далекого будущего, ведь процессоры Skylake еще только появились. Но использовать SGX можно уже сейчас. Мы готовы углубляться в эту тему и отвечать на любые вопросы, с ней связанные.















