Trusted Platform Module (TPM, также известный как ISO / IEC 11889 ) - это международный стандарт для защищенного криптопроцессора, выделенного микроконтроллера, предназначенного для защиты оборудования с помощью встроенных криптографических ключей.
Trusted Platform Module (TPM) был разработан консорциумом компьютерной индустрии под названием Trusted Computing Group (TCG) и был стандартизирован Международная организация по стандартизации (ISO) и Международная электротехническая комиссия (IEC) в 2009 году как ISO / IEC 11889.
TCG продолжала пересматривать спецификации TPM. Последняя пересмотренная версия основной спецификации TPM версии 1.2 была опубликована 3 марта 2011 г. Она состоит из трех частей в зависимости от их назначения. Однако для второй основной версии TPM TCG выпустила спецификацию библиотеки TPM 2.0, которая основана на ранее опубликованной основной спецификации TPM. Его последняя редакция была выпущена 29 сентября 2016 года, с несколькими ошибками, последняя из которых датирована 8 января 2018 года.
Trusted Platform Module предоставляет
Компьютерные программы могут использовать TPM для аутентификации аппаратных устройств, поскольку каждый чип TPM имеет уникальный и секретный ключ подтверждения (EK), записанный при его создании. Снижение уровня безопасности до аппаратного уровня обеспечивает более надежную защиту, чем только программное решение.
Министерство обороны США (DoD) указывает, что "новые компьютерные активы (например, сервер, настольный компьютер, ноутбук, тонкий клиент, планшет, смартфон, персональный цифровой помощник, мобильный телефон), закупленные для поддержки DoD, будут включать TPM версии 1.2 или выше, если этого требует DISA STIGs и где такая технология доступна ». DoD предполагает, что TPM будет использоваться для идентификации, аутентификации, шифрования и проверки целостности устройства.
Основная задача TPM - гарантировать целостность платформы. В этом контексте «целостность» означает «вести себя должным образом», а «платформа» - это любое компьютерное устройство, независимо от его операционной системы. Это необходимо для обеспечения того, чтобы процесс загрузки запускался с надежной комбинации оборудования и программного обеспечения и продолжался до тех пор, пока операционная система не загрузилась полностью и не запустились приложения.
Ответственность за обеспечение указанной целостности с помощью TPM лежит на микропрограммном обеспечении и операционной системе. Например, Unified Extensible Firmware Interface (UEFI) может использовать TPM для формирования корня доверия : TPM содержит несколько регистров конфигурации платформы (PCR), которые обеспечивают безопасное хранение и отчетность о безопасности соответствующие показатели. Эти показатели можно использовать для обнаружения изменений в предыдущих конфигурациях и принятия решения о дальнейших действиях. Хорошие примеры можно найти в Linux Unified Key Setup (LUKS), BitLocker и PrivateCore vCage memory encryption. (См. Ниже.)
Примером использования TPM для обеспечения целостности платформы является Trusted Execution Technology (TXT), которая создает цепочку доверия. Он может удаленно подтвердить, что компьютер использует указанное оборудование и программное обеспечение.
Полное шифрование диска утилиты, такие как dm-crypt и BitLocker, может использовать эту технологию для защиты ключей, используемых для шифрования запоминающих устройств компьютера, и обеспечения целостности аутентификации для доверенного пути загрузки, который включает микропрограммное обеспечение и загрузочный сектор.
Операционные системы часто требуют аутентификации (с использованием пароля или других средств) для защиты ключей, данных или систем. Если механизм аутентификации реализован только программно, доступ подвержен атакам по словарю. Поскольку TPM реализован в специальном аппаратном модуле, был встроен механизм предотвращения атаки по словарю, который эффективно защищает от угадываний или автоматических атак по словарю, при этом позволяя пользователю достаточное и разумное количество попыток. Без этого уровня защиты достаточную защиту могли бы обеспечить только пароли высокой сложности.
Любое приложение может использовать микросхему TPM для:
Существуют и другие способы использования, некоторые из которых вызывают проблемы конфиденциальности. Функция «физического присутствия» TPM решает некоторые из этих проблем, требуя подтверждения на уровне BIOS для таких операций, как активация, деактивация, очистка или смена владельца TPM кем-то, кто физически присутствует на консоли машины.
Разработчик (и) | Microsoft |
---|---|
Repository | github.com / Microsoft / ms-tpm-20-ref |
Написано на | C, C ++ |
Тип | Реализация TPM |
Лицензия | Лицензия BSD |
Веб-сайт | доверенная вычислительная группа. org / tpm-library-спецификация |
Начиная с 2006 года, многие новые ноутбуки были проданы со встроенным чипом TPM. В будущем эта концепция может быть размещена на существующей микросхеме материнской платы в компьютерах или любом другом устройстве, где могут использоваться средства TPM, например, в мобильном телефоне. На ПК для подключения к микросхеме TPM используется шина LPC или SPI.
Trusted Computing Group (TCG) сертифицировала микросхемы TPM, произведенные Infineon Technologies, Nuvoton и STMicroelectronics, присвоив идентификаторы поставщиков TPM в Advanced Micro Devices, Atmel, Broadcom, IBM, Infineon, Intel, Lenovo, National Semiconductor, Nationz Technologies, Nuvoton, Qualcomm, Rockchip, Standard Microsystems Corporation, STMicroelectronics, Samsung, Sinosun, Texas Instruments и Winbond.
Существует пять различных типов реализаций TPM 2.0:
Официальная эталонная реализация TCG спецификации TPM 2.0 была разработана Microsoft. Он под лицензией BSD License, а исходный код доступен на GitHub. Microsoft предоставляет решение Visual Studio и сценарии сборки Linux autotools.
В 2018 году Intel открыла исходный код своего программного стека Trusted Platform Module 2.0 (TPM2) с поддержкой Linux и Microsoft Windows. Исходный код размещен на GitHub и под лицензией BSD License.
Infineon профинансировал разработку промежуточного программного обеспечения TPM с открытым исходным кодом, которое соответствует спецификации API расширенной системы (ESAPI) программного стека (TSS) TCG.. Он был разработан Институтом Фраунгофера для безопасных информационных технологий (SIT).
Программное обеспечение IBM TPM 2.0 является реализацией спецификации TCG TPM 2.0. Он основан на частях 3 и 4 спецификации TPM и исходном коде, предоставленном Microsoft. Он содержит дополнительные файлы для завершения реализации. Исходный код размещен на SourceForge и лицензируется по лицензии BSD.
В то время как TPM 2.0 обращается ко многим из тех же сценариев использования и имеет аналогичные функции, детали разные. TPM 2.0 не имеет обратной совместимости с TPM 1.2.
Спецификация | TPM 1.2 | TPM 2.0 |
---|---|---|
Архитектура | Универсальная спецификация состоит из из трех частей. | Полная спецификация состоит из специфической для платформы спецификации, которая ссылается на общую библиотеку TPM 2.0, состоящую из четырех частей. Спецификации платформы определяют, какие части библиотеки являются обязательными, необязательными или запрещенными для этой платформы; и подробно описать другие требования для этой платформы. Спецификации платформы включают клиент для ПК, мобильный и тонкий автомобильный. |
Требуются алгоритмы | SHA-1 и RSA. AES не является обязательным. Triple DES когда-то был необязательным алгоритмом в более ранних версиях TPM 1.2, но был запрещен в TPM 1.2 версии 94. Функция генерации маски на основе хэша MGF1, которая определена в PKCS # 1 | Спецификация профиля TPM клиентской платформы ПК (PTP) требует SHA-1 и SHA-256 для хэшей; RSA, ECC с использованием 256-битной кривой Баррето-Нерига и кривой NIST P-256 для криптографии с открытым ключом и асимметричной электронная подпись создание и проверка; HMAC для создания и проверки симметричной цифровой подписи; 128-битный AES для алгоритма с симметричным ключом ; и функция генерации маски на основе хэша MGF1, которая определена в PKCS # 1, требуются Спецификацией профиля TPM клиентской платформы TCG PC (PTP). Также определены многие другие алгоритмы, но они не являются обязательными. Обратите внимание, что Triple DES был считан в TPM 2.0, но с ограничениями некоторых значений в любом 64-битном блоке. |
Crypto Primitives | A генератор случайных чисел, открытый ключ требуются криптографический алгоритм, криптографическая хеш-функция, функция генерации маски, генерация и проверка цифровой подписи и прямая анонимная аттестация. Алгоритмы с симметричным ключом и исключающие или являются необязательными. Также требуется генерация ключа. | A генератор случайных чисел, криптографические алгоритмы с открытым ключом, криптографические хеш-функции, алгоритмы симметричного ключа, генерация и проверка цифровой подписи, функции генерации масок, эксклюзивное или, и На основе ECC Прямая анонимная аттестация с использованием 256-битной кривой Баррето-Наерига требуется в соответствии со спецификацией профиля TPM клиентской платформы TCG PC (PTP). Спецификация общей библиотеки TPM 2.0 также требует генерации ключей и функций деривации ключей. |
Иерархия | Один (хранилище) | Три (платформа, хранилище и подтверждение) |
Корневые ключи | Один (SRK RSA-2048) | Несколько ключей и алгоритмов на иерархию |
Авторизация | HMAC, PCR, местонахождение, физическое присутствие | Пароль, HMAC и политика (которая охватывает HMAC, PCR, местонахождение и физическое присутствие). |
NVRAM | Неструктурированные данные | Неструктурированные данные, счетчик, растровое изображение, расширение |
Авторизация политики TPM 2.0 включает 1.2 HMAC, местоположение, физическое присутствие и PCR. Он добавляет авторизацию на основе асимметричной цифровой подписи, косвенного обращения к другому секрету авторизации, счетчиков и временных ограничений, значений NVRAM, конкретной команды или параметров команды и физического присутствия. Он позволяет выполнять операции И и ИЛИ этих примитивов авторизации для построения сложных политик авторизации.
TCG столкнулась с сопротивлением развертыванию этой технологии в некоторых областях, где некоторые авторы не видят возможных применений. конкретно относится к Trusted Computing, что может вызвать проблемы с конфиденциальностью. Проблемы включают злоупотребление удаленной проверкой программного обеспечения (когда производитель - а не пользователь, владеющий компьютерной системой - решает, какое программное обеспечение разрешено запускать) и возможные способы отслеживания действий, предпринятых пользователем, записываемых в базу данных, в способ, который полностью не обнаруживается пользователем.
Утилита шифрования диска TrueCrypt, а также ее производная VeraCrypt не поддерживают TPM. Первоначальные разработчики TrueCrypt придерживались мнения, что исключительная цель TPM - «защита от атак, требующих от злоумышленника прав администратора или физического доступа к компьютеру». Злоумышленник, имеющий физический или административный доступ к компьютеру, может обойти TPM, например, установив аппаратный регистратор нажатий клавиш, сбросив TPM или захватив содержимое памяти и получив ключи, выданные TPM. Таким образом, осуждающий текст заходит так далеко, что утверждает, что TPM полностью избыточен. Издатель VeraCrypt воспроизвел первоначальное утверждение без каких-либо изменений, кроме замены TrueCrypt на VeraCrypt.
В 2010 году Кристофер Тарновски представил атаку на TPM на Black Hat Briefings, где он утверждал, что может извлекать секреты из одного TPM. Он смог сделать это после 6 месяцев работы, вставив зонд и проследив за внутренней шиной для ПК Infineon SLE 66 CL.
В 2015 году в рамках проекта Разоблачения Сноудена, было обнаружено, что в 2010 году команда ЦРУ США заявила на внутренней конференции, что провела анализ дифференциальной мощности атаку против TPM, которая смогла извлечь секреты.
В 2018 году было сообщено о недостатке конструкции в спецификации TPM 2.0 для статического корня доверия для измерения (SRTM) (CVE - 2018-6622 ). Это позволяет злоумышленнику сбрасывать и подделывать регистры конфигурации платформы, которые предназначены для безопасного хранения измерений программного обеспечения, которое используется для начальной загрузки компьютера. Для его исправления требуются исправления прошивки для конкретного оборудования. Злоумышленник злоупотребляет прерываниями питания и восстанавливает состояние TPM, чтобы заставить TPM думать, что он работает на незащищенных компонентах.
Основные Trusted Boot (tboot) распределения до ноября 2017 г. подвержены влиянию Атака динамического корня доверия для измерения (DRTM) CVE -2017-16837, которая затрагивает компьютеры, работающие на технологии Intel Trusted eXecution Technology (TXT) для процедуры загрузки.
В случае физического доступа компьютеры с TPM уязвимы для атак с холодной загрузкой, пока система включена или может загружаться без парольной фразы при завершении работы или гибернации, который является настройкой по умолчанию для компьютеров Windows с полным шифрованием диска BitLocker.
В октябре 2017 г. сообщалось, что библиотека кода, разработанная Infineon, который широко использовался в TPM, содержал уязвимость, известную как ROCA, которая позволяла выводить закрытые ключи RSA из открытые ключи. В результате все системы, зависящие от конфиденциальности таких ключей, были уязвимы для взлома, например кражи личных данных или спуфинга.
Криптосистемы, которые хранят ключи шифрования непосредственно в TPM без ослепления, могут быть с особым риском для этих типов атак, так как пароли и другие факторы будут бессмысленными, если атаки могут извлечь секреты шифрования.
В настоящее время TPM используется почти всеми производителями ПК и ноутбуков.
TPM реализуется несколькими поставщиками:
Существуют также гибридные типы; например, TPM может быть интегрирован в контроллер Ethernet, что устраняет необходимость в отдельном компоненте материнской платы.
Trusted Platform Module 2.0 (TPM 2.0) поддерживается Ядро Linux, начиная с версии 3.20.