Механизм доверенного исполнения Intel® (Intel® TXE) для NUC6CAY, NUC8CCH
Введение
При этом загрузке устанавливается Механизм доверенного исполнения Intel® и встроенное ПО.
Лицензия на использование программного обеспечения Intel
Файлы, доступные для скачивания
Подробное описание
Цель
Устанавливает драйвер Механизм доверенного исполнения Intel® (Intel® TXE) и встроенное ПО. Драйвер Intel TXE необходим для работы функций безопасной загрузки и безопасности платформы.
Не уверены, что это подходящий драйвер для вашего устройства Intel® NUC?
Запустите Приложение Intel® Driver & Support Assistant для автоматического обнаружения обновлений драйверов.
Этот скачиваемый файл подходит для нижеуказанных видов продукции.
Автоматическое обновление драйвера и программного обеспечения
Идентифицируйте свою продукцию и установите обновления драйверов Intel® и ПО для вашей ОС Windows*.
Содержание данной страницы представляет собой сочетание выполненного человеком и компьютерного перевода оригинального содержания на английском языке. Данная информация предоставляется для вашего удобства и в ознакомительных целях и не должна расцениваться как исключительная, либо безошибочная. При обнаружении каких-либо противоречий между версией данной страницы на английском языке и переводом, версия на английском языке будет иметь приоритет и контроль. Посмотреть английскую версию этой страницы.
Для работы технологий Intel может потребоваться специальное оборудование, ПО или активация услуг. // Ни один продукт или компонент не может обеспечить абсолютную защиту. // Ваши расходы и результаты могут отличаться. // Производительность зависит от вида использования, конфигурации и других факторов. // См. наши юридические уведомления и отказ от ответственности. // Корпорация Intel выступает за соблюдение прав человека и избегает причастности к их нарушению. См. Глобальные принципы защиты прав человека в корпорации Intel. Продукция и программное обеспечение Intel предназначены только для использования в приложениях, которые не приводят или не способствуют нарушению всемирно признанных прав человека.
СОДЕРЖАНИЕ
Подробности
Желаемой характеристикой алгоритма криптографического хеширования является то, что (для всех практических целей) результат хеширования (называемый хеш-дайджестом или хешем) любых двух модулей будет давать одно и то же значение хеш-функции только в том случае, если модули идентичны.
Измерения
Цепочка доверия
Измерения модулей кода ACM и BIOS расширены до PCR0, который, как говорят, содержит статический корень измерения доверия (CRTM), а также измерения доверенной вычислительной базы BIOS (TCB). BIOS измеряет дополнительные компоненты в PCR следующим образом:
Динамическая цепочка доверия начинается, когда операционная система вызывает специальную инструкцию безопасности, которая сбрасывает динамические PCR (PCR17–22) до значений по умолчанию и запускает измеряемый запуск. Первое динамическое измерение выполняется аппаратными средствами (то есть процессором) для измерения другого модуля с цифровой подписью (называемого SINIT ACM), который также предоставляется производителем набора микросхем и чья подпись и целостность проверяются процессором. Это называется динамическим корнем измерения доверия (DRTM).
Целостность LCP и ее списки заведомо исправных измерений защищены путем хранения хеш-измерения политики в TPM в защищенном энергонезависимом месте, которое может быть изменено только владельцем платформы.
Выполнить как надежная ОС
Как только LCP удовлетворяется, SINIT ACM позволяет MLE работать в качестве доверенной ОС, разрешая доступ к специальным регистрам безопасности и разрешая доступ TPM Locality 2 на уровне 2. Теперь MLE может выполнять дополнительные измерения динамических PCR. Динамические ПЦР содержат измерения:
Заявление
Значения ПЦР доступны как локально, так и удаленно. Кроме того, TPM имеет возможность поставить цифровую подпись для значений PCR (т. Е. Котировки PCR), чтобы любой объект мог проверить, что измерения исходят от TPM и защищены им, что позволяет удаленной аттестации обнаруживать фальсификацию, повреждение и т. Д. и вредоносное ПО. Кроме того, эти значения можно использовать для определения среды выполнения (конкретная версия BIOS, уровень ОС, конфигурация и т. Д.) И сравнения их с собственными списками заведомо исправных значений для дальнейшей категоризации платформы. Эта возможность оценивать и назначать уровни доверия платформам известна как Trusted Compute Pools.
Некоторые примеры использования доверенных вычислительных пулов:
Trusted Execution Environment на примере Intel SGX. Основные принципы простыми словами. «Hello World!»
Данная статья направлена, прежде всего, на начинающего специалиста, который только
приступил к исследованию методов и способов обеспечения информационной безопасности исполняемого программного кода. С такой задачей рано или поздно сталкиваются все разработчики ПО и системные инженеры, что и произошло на одном из проектов компании Альтирикс системс, в рамках которого необходимо было реализовать защищенное исполнение программного кода в условно не защищенной среде. Для чего, помимо, уже известных и хорошо описанных методов и средств защиты информации, была выбрана, достаточно редко применяемая в российских проектах технология 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».
Далее необходимо изменить некоторые свойства проектов.
Это необходимо проделать для корректной работы программы. Повторяем действия для обоих проектов.
Также необходимо обозначить в свойствах решения главный проект.
Всё, наша программа готова к реализации.
В данной программе будет 3 файла, с которыми мы будем работать: Enclave.edl (тот самый хедер), Enclave.cpp (прописана реализация ECALL’ов), Untrusted Part.cpp (главный файл проекта – недоверенная часть).
Поместим в файлы следующий код:
Жмем f7 – собираем решение, а затем ctrl+f5 для запуска.
Если у вас выдало ошибку следующего содержания:
убедитесь, что в BIOS активирован Intel SGX: Bios: Security/IntelSGX/Enabled.
В случае, если никаких ошибок не последовало, а перед экраном на консоли вы увидели следующие строки:
Txei драйвер для чего
Здравствуйте. Хотим рассказать как решить проблему при установке драйвера PCI контроллер.
Недавно к нам принесли ноутбук Asus, после установки драйвера Trusted Execution Engine Interface выяснилось, что драйвер работает не корректно.
Необходимо было установить операционную систему Windows 7. После установки операционной системы были установлены последовательно, как положено с перезагрузкой, все драйвера. Драйвера устанавливались с официального сайта asus.
Обнаружилась такая проблема. Драйвер для устройства Trusted Execution Engine Interface работает не корректно. Обновление драйвера результатов не дало, все осталось без изменений.
Было решено удалить драйвера для этого устройства полностью. После удаления и перезагрузки система показала, что нет драйверов для — PCI контроллер шифрации/дешифрации.
Коротко PCI контроллер — это универсальная шина для подключения различных устройств, стали искать решение проблемы в этом направлении.
PCI контроллер — Как решить эту проблему:
Первый вариант решения этой проблемы, выставить в настройках BIOS в разделе Advanced параметр OS Selection, операционную систему, ту которую устанавливаете, в нашем случае windows 7. Если этой опции нет то необходимо обновить BIOS.
Затем там же в BIOS функцию Boot Option UEFI ставим Disabled, отключаем ее. Теперь устанавливаем операционную систему с вашего носителя DVD или USB не имеет значения.
После установки операционной системы устанавливаем драйвера кроме драйвера Intel(R) Trusted Execution Engine Interface.
Скачать его можно с официального сайта microsoft
или у нас с яндекс диска, версия для х64, версия для х86.
Затем устанавливаем драйвера для Intel(R) Trusted Execution Engine Interface или PCI устройство шифрации/дешифрации.
Как сделали мы.
В нашем случае переустановка операционной системы не производилась и даже не вносились изменения в BIOS мы просто удалили драйвера, для этого устройства, затем скачали и установили обновление о котором говорилось выше. Все больше мы ничего не делали драйвера определились системой и установились автоматически. Просто перезагрузили ноутбук после окончания обновления.
Надеюсь эта информация вам помогла в решении вашего вопроса.
Важное обновление встроенного ПО Intel® Management Engine (Intel-SA-00086)
Тип материала Поиск и устранение неисправностей
Идентификатор статьи 000025619
Последняя редакция 17.08.2021
Уязвимость Intel® Management Engine (Intel® ME 6.x/7.x/8.x/9.x/10.x/11.x), Intel® Trusted Execution Engine (Intel® TXE 3.0) и Intel® Server Platform Services (Intel® SPS 4.0) (Intel-SA-00086)
| Примечание | В этой статье представлены проблемы, относящиеся к уязвимостям системы безопасности, обнаруженные во встроенном ПО Intel® Management Engine. Эта статья не содержит информацию, связанную с уязвимостью побочного канала процессора (известна как Meltdown/Spectre). Если вам нужна информация о проблеме Meltdown/Spectre, откройте темуФакты анализа побочных каналов и продукции Intel®. |
В ответ на проблемы, идентифицированные сторонними исследователями, корпорация Intel выполнила всесторонний анализ безопасности для улучшения надежности встроенного ПО:
Корпорация Intel идентифицировала уязвимости для системы безопасности, которые могут потенциально повлиять на определенные ПК, серверы и платформы Интернета вещей.
Данной уязвимости подвержены системы, использующие встроенное ПО Intel ME 6.x-11.x, серверы, использующие встроенное ПО SPS версии 4.0, и системы, использующие TXE версии 3.0. Вы можете найти эти версии встроенного ПО у определенных процессоров:
Для определения воздействия идентифицированной уязвимости на вашу систему загрузите и запустите средство определения версий Intel CSME Version Detection по следующим ссылкам.
Доступные ресурсы
Ресурсы для пользователей Microsoft и Linux*
Ресурсы от производителей систем/системных плат
Часто задаваемые вопросы:
В: Средство определения версий Intel CSME Version Detection Tool сообщает, что моя система уязвима. Что мне делать?
О: Корпорация Intel предоставила производителям систем и системных плат необходимые обновления встроенного ПО и программного обеспечения для устранения уязвимостей, идентифицированных в рекомендации для безопасности Intel-SA-00086.
Обратитесь к производителю вашей системы или системной платы за информацией о планах в отношении обновлений, доступных для конечных пользователей.
Некоторые производители предоставили Intel прямые ссылки, созданные для их клиентов для получения дополнительной информации и загрузки доступных обновлений программного обеспечения (см. список далее).
В: Почему мне нужно обращаться к производителю моей системы или системной платы? Почему корпорация Intel не может предоставить необходимое обновление для моей системы?
О: Корпорация Intel не может предоставить универсальное обновление из-за настроек встроенного ПО программы управления, которые выполнены производителями систем и системных плат.
В: Моя система отображается в инструменте обнаружения версий Intel CSME Version Detection Tool как возможно уязвимая. Что мне делать?
О: Статус возможной уязвимости обычно отображается, когда не установлен любой из следующих драйверов:
Обратитесь к производителю вашей системы или системной платы для получения соответствующих драйверов.
В: Производителя моей системы или системной платы нет в вашем списке. Что мне делать?
О: В следующем списке представлены ссылки, полученные от производителей систем или системных плат, которые предоставили нужную информацию в корпорацию Intel. Если производителя вашей системы нет в списке, обратитесь к нему за помощью, используя стандартный способ обращения за поддержкой (веб-сайт, телефон, эл. почта и т.д.).
В: Какие типы доступа могут применять атакующие для использования идентифицированных уязвимостей?
О: Если производитель аппаратных средств воспользуется рекомендуемыми корпорацией Intel механизмами защиты от записи, атакующему потребуется получить физический доступ к флэш-памяти встроенного ПО платформы для использования уязвимостей, идентифицированных в следующих рекомендациях:
Злоумышленник получает физический доступ, вручную обновляя платформу, устанавливая образ вредоносного встроенного ПО с помощью устройства программирования, физически подключаемого к флэш-памяти платформы. Защита от записи флэш-дескриптора обычно устанавливается на платформе в конце производства. Защита от записи флэш-описателя обеспечивает защиту настроек флэш-памяти от преднамеренного или непреднамеренного изменения после производства.
Если производитель аппаратных средств не активирует рекомендуемые корпорацией Intel механизмы защиты от записи флэш-описателя, атакующему потребуется доступ к работающем ядру (логический доступ, кольцо 0 операционной системы). Атакующему необходим данный доступ для использования идентифицированных уязвимостей посредством установки на платформе вредоносного образа встроенного ПО с помощью вредоносного драйвера платформы.
Уязвимость, идентифицированная в документе CVE-2017-5712, может быть использована удаленно через сеть в сочетании с действительными административными учетными данными для Intel® Management Engine. Уязвимость не может быть применима, если действительные административные учетные данные недоступны.
Если вам необходима дополнительная помощь, обратитесь в службу поддержки Intel для оформления онлайновой заявки на обслуживание.






