Intel r trusted execution engine interface что это

Обновлено: 07.07.2024

Данная статья направлена, прежде всего, на начинающего специалиста, который только
приступил к исследованию методов и способов обеспечения информационной безопасности исполняемого программного кода. С такой задачей рано или поздно сталкиваются все разработчики ПО и системные инженеры, что и произошло на одном из проектов компании Альтирикс системс, в рамках которого необходимо было реализовать защищенное исполнение программного кода в условно не защищенной среде. Для чего, помимо, уже известных и хорошо описанных методов и средств защиты информации, была выбрана, достаточно редко применяемая в российских проектах технология Trusted Execution Environment (TEE) или, говоря по-русски, технология доверенных сред исполнения. Конкретно в этой статье мы решили описать практический пример использования анклавов процессора Intel для доверенной среды исполнения кода (Intel Software Guard Extensions или SGX).

Доверенные среды исполнения поддерживаются далеко не только процессорами данного производителя. Также, TEE поддерживается рядом процессоров AMD (Secure Execution Environment, Secure Technology), процессорами с архитектурой ARM (TrustZone), процессорами с архитектурой RISC-V. Кроме того, TEE поддерживается современными мейнфреймами IBM Z. Мы же выбрали Intel SGX для своего примера поскольку считаем, что на момент написания статьи (лето 2020г.) процессоры Intel наиболее популярны и доступны для начинающих специалистов на постсоветском пространстве. С полным перечнем моделей процессоров Intel с поддержкой Intel SGX можно ознакомиться на сайте Intel в разделе Intel product specifications (ARK), выбрав для поиска соответствующую технологию. И да, возможно, воспользоваться эмуляциями Intel SGX для учебных или исследовательских целей. Работа с несколькими из таких эмуляций выявила ряд сложностей в их настройке. Также нужно понимать, что для реальных “боевых” проектов никакая эмуляция технологии основанной на аппаратом функционале, естественно, недопустима.

Любой ваш отзыв, особенно, с замечаниями и дополнениями от специалистов уже имеющих опыт применения TEE в своих проектах, или же с вопросами от тех, кто точно так же только начинает погружаться в эту технологию, поспособствуют более детальному раскрытию данной темы в следующих статьях. Заранее спасибо!

Введение

Основной вопрос, который мы задаем в начале пути изучения доверенных сред исполнения: можем ли мы доверять компонентам системы компьютера? А если можем, то каким? Разработчики, а в частности инженеры Intel, дают на этот вопрос однозначный ответ: никому, кроме самого Intel. Что под этим подразумевается? Предлагаю поподробнее в этом разобраться.

Кольца привилегий

В целях безопасности, компоненты системы любого компьютера разделены по уровням привилегий. Во всех современных системах, базирующихся на процессорах Intel и не только, реализована кольцевая система уровней привилегий. От внешнего к внутреннему идет расширение полномочий для кода, который обрабатывается в данный момент процессором.


Кольцо №3. На внешнем кольце располагаются все пользовательские приложения, которые мы используем на компьютере в повседневной жизни, они имеют низший уровень доступа.
Кольцо №2 и №1. На данных уровнях располагаются операционные системы и драйвера устройств.
Кольцо №0. Режим супервизора. Здесь расположено ядро операционной системы (управление периферий, распределение ресурсов между процессами), а также системные драйвера.
Кольцо №-1. Гипервизор. Отвечает за распределение ресурсов в случае, если на компьютере одновременно запущены несколько операционных систем, а также отвечает за их изоляцию.
Кольцо №-2. Режим системного управления (SMM – System Management Mode). Управляет энергообеспечением системы, управляет платами расширения.

Мы можем формировать всё новые и новые кольца для ограничения полномочий компонентов иерархии, создавая всё более сложную и нагруженную систему. Однако, таким образом работа для злоумышленника только облегчится: чем сложнее система, тем проще найти в ней уязвимость. Но каким же образом обеспечить дополнительный уровень безопасности там, где это требуется? Ответ состоит из одного слова.

Анклавы

Основной задачей злоумышленника является получение уровня привилегий, который обеспечил бы ему доступ к необходимым ресурсам системы. Если это секрет приложения-жертвы, то злонамеренному приложению необходим именно тот уровень доступа, который отвечает за хранение секретов в системе. Отсюда напрашивается вывод, что управление секретами приложений стоит доверить самому внутреннему кольцу, ведь доступ туда получить сложнее всего. Однако, данный подход был несколько переосмыслен. Теперь все секреты хранятся на одном уровне с пользовательскими приложениями, как и код, который этими секретами управляет за одним условием: никто, абсолютно никто, кроме процессора, не может получить туда доступ. Программа и данные как бы упакованы в хранилище, в данном случае это хранилище называется анклавом (Enclave – закрытый, запертый), ключ от которого есть только у процессора.


Приложения, работающие с доверенной средой

Чем проще система, чем меньше кода в ней прописано, тем сложнее её вскрыть на основе дыр в защите (мы не говорим о принципиально незащищенных системах), получаем некоторую аксиому: код, работающий с секретом, должен быть максимально простым и коротким. Упаковывать в анклав весь код программы нецелесообразно, поэтому приложение, использующее анклавы, должно быть разделено на две части: «доверенную» и «недоверенную». В доверенной хранятся анклавы (их может быть несколько), а в недоверенной – основной код программы.

Доверенная часть представляет из себя набор функций и процедур, называемых ECALL (Enclave Call). Сигнатура таких функций должна быть прописана в специальном header-файле, а их реализация в файле с исходным кодом. В целом, подход схож с тем, что мы используем при обычном прописывании хедеров, однако, в данном контексте используется специальный C-подобный язык EDL (Enclave Definition Language). Также необходимо прописать прототипы тех функций, которые можно будет вызвать изнутри анклава, такие функции называются OCALL (Outside Call). Прототипы прописываются в том же хедере, где и ECALL-функции, а реализация, в отличие от ECALL, прописывается соответственно в недоверенной части приложения.
Доверенный и недоверенный код жестко связываются между собой сертификацией с использованием протокола Диффи-Хеллмана. За процедуру подписи отвечает процессор, где и хранится ключ обмена информации, обновляющийся каждый раз при перезагрузке системы. Содержимое анклавов хранится в общей памяти, используемой пользовательскими приложениями, однако хранение происходит в зашифрованном виде. Расшифровать содержимое может только процессор. В идеализированном мире, где код анклавов прописан без единого бага, а все железо работает точно так, как это задумал производитель и никак иначе, мы бы получили универсальную, полностью защищенную систему. Основным достоинством данной системы является исполнение секретной части на том же процессоре, где исполняются все остальные программы, в том числе и пользовательские.

Однако, в последние несколько лет перед широкой аудиторий предстало большое количество микроархитектурных уязвимостей современных процессоров, позволяющих получить доступ внутрь анклава: Foreshadow (уязвимость класса Spectre), SGAxe, Zombieload, CacheOut и многие другие. Нет никакой гарантии того, что это список не пополнится очередной серьезной аппаратной уязвимостью, программное исправление которой не иначе как программной «заплаткой» назвать будет нельзя. Возможно, мы доживем до того времени, когда миру будет представлена абсолютно новая архитектура процессоров, в которой будут исправлены все недостатки, а пока, стоит говорить о том, что у нас есть под рукой. А под рукой у нас есть универсальный, мощный инструмент, серьезно повышающий безопасность современных систем. Повышающий настолько, что он реализован в той или иной интерпретации в миллиардах устройств по всему миру: от умных часов, смартфонов до огромных вычислительных кластеров.

Hello world!

Перейдем от теории к практике. Напишем небольшую программу, которая реализует ставшую уже каноничной задачу: вывести строку «Hello world!». В данной интерпретации укажем ещё и место, откуда будет отправлено послание.

Для начала необходимо скачать и установить SDK для работы с SGX с официального сайта. Для скачивания необходимо пройти простую процедуру регистрации. На этапе установки будет предложено интегрировать пакет разработки в имеющуюся на компьютере версию VS, сделайте это. Всё готово для успешной реализации первого проекта с использованием SGX.


Запускаем VS и создаем проект Intel SGX.


Выбираем имя для проекта и для решения и ждем «далее».

Далее будет предложено выбрать конфигурацию проекта, ничего не меняйте, оставьте те значения, которые предложены изначально.


Затем добавьте к созданному решение ещё один проект: обычное консольное приложение C++.
В результате в диалоговом окне проектов должна получиться следующая картина:


Затем необходимо связать анклав с недоверенной частью. Жмем правой кнопкой на проект «Untrusted part».



Далее необходимо изменить некоторые свойства проектов.

image



Это необходимо проделать для корректной работы программы. Повторяем действия для обоих проектов.

Также необходимо обозначить в свойствах решения главный проект.


Всё, наша программа готова к реализации.

В данной программе будет 3 файла, с которыми мы будем работать: Enclave.edl (тот самый хедер), Enclave.cpp (прописана реализация ECALL’ов), Untrusted Part.cpp (главный файл проекта – недоверенная часть).

Поместим в файлы следующий код:

Untusted Part.cpp:


Жмем f7 – собираем решение, а затем ctrl+f5 для запуска.

Если у вас выдало ошибку следующего содержания:


убедитесь, что в BIOS активирован Intel SGX: Bios: Security/IntelSGX/Enabled.

В случае, если никаких ошибок не последовало, а перед экраном на консоли вы увидели следующие строки:

Вернемся к Intel TXE driver, значит что это такое? Это одним словом сложно так взять и написать. Но инфу я все же раскопал. Короче это драйвер который отвечает за работу технологии Intel TXT (Trusted Execution Technology, технология доверенного выполнения). Скажу сразу что нет смысла эту технологию описывать, там так все сложно, что даже мне непонятно. Если в двух словах, то эта технология защищает комп от вирусов, если быть точнее, то что-то она там мутит и короче работающие проги типа защищены от вирусного внедрения. То есть эта технология как бы изолирует программы от небезопасного влияния. И все это реализовано на аппаратном уровне, ну а что бы работало, то понятное дело что нужен драйвер

Полное название технологии такое: Intel® TXE: Intel® Trusted Execution Engine driver, звучит круто, на деле непонятно как работает

И еще, в принципе никакого особого значения этот драйвер не несет, ибо пока еще технология Intel TXE не особо популярна и как она работает толком никто не знает. Ну то есть знают программисты Intel, но вот обычные юзеры не знают как работает она и да и какого-то заметного эффекта я тоже думаю что никто не видел.. Вообще непонятно когда работает она, а когда нет. Но то что без нее можно обойтись это факт, главное иметь норм антивирус и не будет проблем

Вот нашел картинку, тут вроде идет процесс обновления драйверов, но какая-то ошибка случилась с установкой Intel(R) Trusted Execution Engine Interface:


А вот это ребята скриншот биоса и вроде это настройки данной технологии Intel TXE:


Кстати, вот откопал еще картинку, и тут я понял что драйвер Intel TXE может быть установлен еще при помощи программы Intel Driver Update Utility:


На этом все ребята, ибо реально инфы нет в интернете, ну ее оч мало. Самое разумное что нашел это ссылку на сайт Intel, я ее выше указал. Так что извините ребята, удачи вам

Поэтому, если вы получили системную ошибку о том, что « Это устройство не может запуститься (код 10),
STATUS_DEVICE_POWER_FAILURE’ , следуйте приведенным ниже решениям по устранению неполадок. Обратите внимание, что все шаги, описанные ниже, совместимы с системой Windows 10, хотя аналогичные рекомендации можно соблюдать и применять для более старых версий Windows.

  1. Применить обновления Windows 10
  2. Обновите драйверы
  3. Удалить и вручную переустановить драйверы
  4. Запустите сканирование системы
  5. Обновить BIOS

1. Примените обновления Windows 10


  1. На клавиатуре нажмите специальные клавиши Win + I .
  2. Откроется окно Системные настройки .
  3. Оттуда выберите поле Обновление и безопасность .
  4. В следующем окне перейдите на вкладку Центр обновления Windows .
  5. Теперь, если доступно обновление, оно будет автоматически отображаться в главном окне.
  6. Примените эти обновления и в конце перезагрузите систему Windows 10.

Вот как вы можете удалить недавно примененный патч прошивки для Windows 10:


  1. Перейдите в Центр обновления Windows из Системных настроек , как уже объяснено выше.
  2. Оттуда нажмите Дополнительно .
  3. Прокрутите и найдите ссылку Просмотреть историю обновлений ; щелкните по нему
  4. Теперь все обновления Windows 10, которые были применены на вашем компьютере, будут перечислены там.
  5. Поэтому вы можете удалить определенный патч.
  6. Когда закончите, перезагрузите устройство и убедитесь, что ошибка IMEI все еще существует или нет.

ТАКЖЕ ЧИТАЙТЕ: Центр обновления Windows не работает в Windows 10 [Fix]

2. Обновите драйверы

Обычно возникает ошибка драйвера из-за проблем несовместимости системы. Таким образом, вы можете легко решить такие проблемы, обновив эти драйверы:


  1. Откройте Диспетчер устройств на своем ПК: щелкните правой кнопкой мыши значок «Пуск» Windows и выберите пункт «Диспетчер устройств».
  2. В диспетчере устройств расширьте поле Системные устройства .
  3. Найдите запись Интерфейс Intel Management Engine .
  4. Щелкните правой кнопкой мыши интерфейс Intel Management Engine и выберите « обновить программное обеспечение драйвера ».
  5. Подождите, пока драйвер обновится и закройте окно в конце.
  6. Также перезагрузите ваше устройство.
  7. Это должно быть все.

Мы также рекомендуем TweakBit Driver Updater (100% безопасный и протестированный нами) для автоматической загрузки всех устаревших драйверов на ваш компьютер. Этот инструмент предотвратит потерю файлов и поможет вам избежать необратимого повреждения вашего ПК, вызванного загрузкой и установкой неправильных версий драйверов.

Отказ от ответственности: некоторые функции этого инструмента не являются бесплатными.

3. Удалите и переустановите драйверы вручную

Если обновление драйверов не является правильным решением для вас, то лучше будет удалить эти драйверы с вашего компьютера и вручную переустановить их после этого. Это должно решить проблемы несовместимости наряду с другими аналогичными проблемами, такими как внутренние поврежденные файлы. Вот то, что вам нужно следовать:

  1. Доступ к диспетчеру устройств, как вы это делали раньше.
  2. Расширьте системные устройства и щелкните правой кнопкой мыши интерфейс Intel Management Engine.
  3. Выберите «Удалить» и дождитесь завершения удаления. Вы также можете получить доступ к панели управления для удаления любых других связанных программ или файлов.
  4. После этого зайдите на официальный веб-сайт производителя и загрузите драйверы для интерфейса Intel Management Engine.
  5. Запустите исполняемый файл и следуйте инструкциям на экране для установки драйверов.
  6. Это должно быть все.
  • ТАКЖЕ ПРОЧИТАЙТЕ: 5 лучших обновлений драйверов для Windows 10

4. Запустите сканирование системы

5. Обновить BIOS

Если указанные выше действия по устранению неполадок не устраняют проблемы с драйвером интерфейса Intel Management Engine, попробуйте обновить BIOS. Теперь, в зависимости от вашего производителя и вашей конкретной материнской платы, вы можете завершить процесс обновления автоматически через интерфейс BIOS.

В противном случае вы должны загрузить обновления для вашей системы BIOS с официального сайта производителя. Надеемся, что это последнее решение также является методом, который устраняет неисправности IMEI.

Выводы

Это методы, которые должны помочь вам решить проблему с интерфейсом Intel Management Engine status_device_power_failure. Если вы все еще испытываете те же проблемы с Windows 10, не паникуйте; вернитесь сюда и используйте поле комментариев снизу для описания неисправности. После этого на основе предоставленной вами информации мы постараемся найти идеальное решение для вашей конкретной ситуации.

Примечание редактора . Этот пост был первоначально опубликован в декабре 2017 года и с тех пор был полностью переработан и обновлен для обеспечения свежести, точности и полноты.

Не устанавливается драйвер Microsoft для Intel Trusted Execution Engine Interface, горит треугольничек - система Windows 10 x86 1803, на компьютере Acer TP-S1002-15GT (SN: NTG53EU004549798767200, SNID: 54949778272). Такое ощущение, что слетели эти драйвера после обновления до 1803. Драйвер начинает устанавливаться, а потом выдает ошибку 10. В безопасном режиме то же самое. И то же самое с более старыми или свежими версиями этих драйверов Microsoft.

Тут кто-то писал, что у него была такая же проблема, и ему помогла техподдержка Microsoft прямо в режиме лив-чата он открыл им прямой доступ на комп, они что-то пофиксили, и все заработало. Помогите плз.

Эта цепочка заблокирована. Вы можете просмотреть вопрос или оставить свой голос, если сведения окажутся полезными, но вы не можете написать ответ в этой цепочке.

Вы указали, что используется сборка 1803, указанное устройство на сайте производителя имеет драйвера 2015 года.

Настоятельно рекомендуем Вам обратиться в поддержку используемого устройства и уточнить вопрос совместимости и актуальности используемых драйверов, так как описываемая вами ошибка указывает на несовместимость.

В случае отсутсвия драйверой для используемого устройства рекомендуется вернуться к сборке, заявленной и протестированной производителем.

Если у Вас имеются еще вопросы, пожалуйста, обращайтесь.

К сожалению, это не помогло.

Благодарим за отзыв, он поможет улучшить наш сайт.

Благодарим за отзыв.

Не устанавливается драйвер Microsoft для Intel Trusted Execution Engine Interface, горит треугольничек - система Windows 10 x86 1803, на компьютере Acer TP-S1002-15GT (SN: NTG53EU004549798767200, SNID: 54949778272). Такое ощущение, что слетели эти драйвера после обновления до 1803. Драйвер начинает устанавливаться, а потом выдает ошибку 10. В безопасном режиме то же самое. И то же самое с более старыми или свежими версиями этих драйверов Microsoft.

Тут кто-то писал, что у него была такая же проблема, и ему помогла техподдержка Microsoft прямо в режиме лив-чата он открыл им прямой доступ на комп, они что-то пофиксили, и все заработало. Помогите плз.

У меня в точности та же проблема, и тоже с Acer (Packard Bell). На сайте производителя тоже не всё гладко, там драйвер лежит вроде бы старый, не тот, который заявлен - это выяснилось после загрузки, посмотрел версию и в свойствах файла, и в диспетчере устройств. Вот сведения о последней работающей версии, загруженной с сайта:

А вот эта версия (нерабочая!) устанавливается, если нажать "Обновить драйвер":

При этой версии в диспетчере устройств появляется упомянутый жёлтый треугольник, и помогает только кнопка "Откатить" - возвращаемся к версии на предыдущем скриншоте.

Если возвращаться к одной из прежних версий Windows 10, то как это сделать?


Ребята, всем привет. Поговорим сегодня о такой технологии как Intel Trusted Execution Technology, вот вы знаете что это? Нет? Ничего, я сегодня вам расскажу. Ой ребята, я почитал, почитал про эту технологию и понял одно, это сложная штука. Короче это типа технология доверенного выполнения. Еще пишется, что это защита приложений на аппаратном уровне.

Начал пытаться понять и вот что понял. В общем вся суть состоит в том, что эта технология обеспечивает защиту данных, с которыми работают программы, но защита идет с применением модуля Trusted Platform Module (TPM). То есть если приложение работает в защищенном режиме, то в работу приложения не сможет вмешаться никакое стороннее приложение, ну например вирус. В защищенном режиме все слабые места работы шифруются при помощи TPM, это вообще типа криптопроцессор.

То есть получается что Intel Trusted Execution Technology помогает защитить программы от влияния вирусов. Также эта технология позволяет бороться с теми вирусами, которые загружаются вместе с виндой. Вот только непонятно, а как запустить программу в защищенном режиме?

Ребята, вот нашел картинку и думаю она в тему будет:


Теперь по поводу криптопроцессора TMP. Он может быть на самой материнке или же идти в виде отдельного блока. TMP работает через биос. Основные функции TMP это аппаратное шифрование и защищенное хранилище. Последнее используется для хранения секретных кодов, ключей и прочего.

По поводу включения этой технологии, то я даже не знаю.. где она включается? Пытался узнать в гугле, но там ничего не нашел, только такую картинку:


Так что, в биосе может включается? Может и так

Еще я знаю что в Windows 7 есть проблемы с работой модуля TMP.

Вот такие дела ребята, надеюсь вы поняли что это за технология. Удачи вам и чтобы все у вас было круто в жизни!

Читайте также: