TPM (спецификация)

TPM(англ.Trusted Platform Module) — спецификация, описывающаякриптопроцессор, в котором хранятсякриптографические ключидля защитыинформации, а также обобщённое наименование реализаций указанной спецификации, например, в виде «чипа TPM» или «устройства безопасности TPM» (Dell). Разработана некоммерческой организациейTrusted Computing Group; текущая версия — 2.0 ревизия 1.59, выпущенная в ноябре 2019 года.
Вянваре1999 года, с целью развития механизмов безопасности и доверия в компьютерных платформах, была создана рабочая группа производственных компаний «Альянс доверенных вычислительных платформ» (англ.Trusted Computing Platform Alliance, TCPA). Первоначально в неё входили ведущие разработчики аппаратного и программного обеспечения —HP,Compaq(впоследствии —HPиHPE),IBM,Intel,Microsoft.
В октябре 1999 года была анонсирована проектная спецификация и для других компаний была открыта возможность присоединения к альянсу. В августе 2000 года была выпущена для обсуждения предварительная публичная версия спецификации. Спецификация TCPA версии 1.0 была опубликована в феврале 2001 года, в ней были определены основные требования к TPM с точки зрения производителя электронных устройств.
Затем была создана рабочая группа по созданию TPM, которая пересмотрела общую спецификацию с точки зрения практического применения доверяемого модуля (TPM). В августе 2001 года была выпущена спецификация версии 1.1 и создана рабочая группа по проектированию платформы персональных компьютеров, на которую устанавливается доверяемый модуль.
В апреле 2003 года была организована некоммерческая организация «Trusted Computer Group» (TCG), которая стала преемником TCPA и продолжила работать над развитием уже выпущенных спецификаций. В дополнение к уже созданным рабочим группам по проектированию TPM и платформы персональных компьютеров были созданы группы по разработке спецификаций для мобильных устройств, ПК-клиентов, серверов, запоминающих устройств, инфраструктуры доверяемых вычислений, программного обеспечения (англ. Trusted Software Stack, TSS) и доверяемого сетевого соединения. В ноябре 2003 года была опубликована спецификация TPM версии 1.2, последняя версия с существенными изменениями, в которой по существу описана функциональность TPM.
TPM, содержащий в себекриптопроцессор, обеспечивает средства безопасного создания ключей шифрования, способных ограничить использование ключей (как для подписи, так и для шифрования и дешифрования) с той же степенью неповторяемости, что игенератор случайных чисел. Также этот модуль имеет следующие возможности: удалённую аттестацию, привязку и надёжное защищённое хранение. Удалённая аттестация создаёт связь аппаратных средств, загрузки системы и конфигурации хоста (ОСкомпьютера), разрешая третьему лицу (вроде цифрового магазина музыки) проверять, чтобы программное обеспечение или музыка, загруженная из магазина, не были изменены или скопированы пользователем (см.DRM).Криптопроцессоршифрует данные таким способом, что они могут быть расшифрованы только на компьютере, где были зашифрованы, под управлением того же самого программного обеспечения. Привязка шифрует данные, используя ключ подтверждения TPM — уникальный ключRSA, записанный в чип в процессе его производства, или другой ключ, которому доверяют.
Модуль TPM может использоваться, чтобы подтвердить подлинность аппаратных средств. Так как каждый чип TPM уникален для специфического устройства, это делает возможным однозначное установление подлинности платформы. Например, чтобы проверить, что система, к которой осуществляется доступ — ожидаемая система.
В спецификации TCG описан минимальный наборалгоритмови протоколов, которым должен удовлетворять чип TPM. Кроме того, производителем могут быть реализованы дополнительные алгоритмы и протоколы (которые, разумеется, должны быть описаны производителем в соответствующей документации).
В архитектуре чипа реализованы следующие защитные механизмы:
В чипе реализованы алгоритмыасимметричной криптографии, обеспечивающие высокий уровень защиты. Некоторые элементы логического дизайна чипа являются нестандартными с точки зрения типовых методов проектированияинтегральных схем (ИС). Применяются и специальные приёмы проектирования ИС: «запутывание» топологии слоёв ИС, усложняющее анализ функций элементов микросхемы. Ряд технологических особенностей чипов безопасности специально не разглашается компаниями-производителями, чтобы уменьшить вероятность взлома даже в том случае, когда для этого применяются современные методы анализа функционирования микросхем и дорогостоящее оборудование.
Компонент ввода-вывода (I/O) управляет потоком информации пошинеи управляет сообщениями между соответствующим компонентами TPM. Компонент вводит в действие политику доступа, связанную с функциями TPM. Правила доступа определяютсяфлагамидоступа, хранящимися в блоке Opt-In энергонезависимой памяти.
Криптопроцессор осуществляет криптографические операции внутри TPM:
TPM использует эти возможности для генерации случайных последовательностей, генерации асимметричных ключей,цифровой подписии конфиденциальности хранимых данных. Также TPM поддерживает симметричное шифрование для внутренних нужд. Все хранимые ключи по силе должны соответствовать ключуRSAдлиной 2048 бит.
Энергонезависимая память используется для хранения ключа подтверждения, корневого ключа (англ.storage root key, SRK), авторизационных данных, различныхфлаговдоступа и блока Opt-In. Объём этого типа памяти ограничен (1280 байт).
Ключ подтверждения (англ.endorsement key, EK) — ключRSAразмером 2048 бит, идентифицирующий чип, а также всё устройство, фундаментальный компонент TPM. Открытая часть называется PUBEK, закрытая — PRIVEK. В соответствии с политикой безопасности PRIVEK не должен быть доступен вне чипа, он никогда не используется для генерированияподписей. PUBEK хранится всертификате, используется только для установления владельца TPM и в процессе генерации AIK. EK генерируется до того, как конечный пользователь получит платформу. Стандарт позволяет изменить этот ключ, из-за чего использование TPM может быть ограниченным.
Ключ подтверждения подлинности (англ.attestation identity keys, AIK) — ключ RSA длиной 2048 бит, используемый только для подписей, для шифрования не используется. TPM может сгенерировать неограниченное количество AIK, эти ключи должны быть постоянными, но рекомендуется хранить AIK в видеблобовв постоянной внешней памяти, а не внутри энергонезависимой памяти TPM. В соответствии со спецификацией предполагается, что производители обеспечат достаточно места для многих блобов AIK, которые будут одновременно загружаться в энергозависимую память TPM. Переход AIK от одного TPM к другому запрещён.
Регистры конфигурации платформы (англ.platform configuration registers, PCR) — уникальные признаки TPM, в которых в зашифрованном виде содержится вся информация о целостностиметриксистемы, начиная с загрузки BIOS до завершения работы системы. Информация, содержащаяся в PCR, формирует корень доверия для измерений (RTM). Могут храниться как в энергонезависимой, так и в энергозависимой памяти. Эти регистры сбрасываются при старте и при перезагрузке системы. Спецификация предписывает минимальное количество регистров (16), каждый регистр содержит 160 бит информации. Регистры 0-7 зарезервированы для нужд TPM. Регистры 8-15 доступны для использования операционной системой и приложениями. Изменения значений PCR необратимы и их значения нельзя записать напрямую, их можно только расширить новыми значениями, которые зависят от предыдущих. Все изменения значений PCR записываются влогизменений, который хранится в энергозависимой памяти.
Генератор случайных чиселангл.random number generator, RNGиспользуется для генерации ключей и случайностей в сигнатурах (подписях).
TPM должен быть способным обеспечить 32 случайных бита на каждый вызов.
Генератор случайных чисел чипа состоит из следующих компонентов:
Источник энтропии — процессы, обеспечивающие энтропию (шум,счётчик тактов процессораи другие события). Коллектор энтропии — процесс, который собирает энтропию, удаляет смещение, выравнивает выходные данные. Энтропия должна передаваться только регистру состояния.
Реализация регистра состояния может использовать 2 регистра: энергозависимый и независимый. При старте TPM загружает энергозависимый регистр из энергонезависимого. Любое последующее изменение регистра состояния от источника энтропии или от смешивающей функции влияет на энергозависимый регистр. При выключении TPM записывает текущее значение регистра состояния в энергонезависимый регистр (такое обновление может происходить и в любое другое время). Причиной такой реализации является стремление реализовать энергонезависимый регистр нафлэш-памяти, количество записи в которую ограничено. TPM должен обеспечить отсутствие экспорта регистра состояния.
Смешивающая функция берёт значение из регистра состояния и выдаёт выходные данные RNG. Каждое использование смешивающей функции должно изменять регистр состояния.
При потере питания происходит сброс RNG. Любые выходные данные RNG для TPM должны быть защищены.
БлокSHA-1используется для вычисления сигнатур (подписей), создания блоков ключей и других целей общего назначения. Хеш-интерфейсы доступны вне TPM. Это позволяет окружению иметь доступ кхеш-функции.
Генератор ключейRSAсоздаёт пары ключей RSA. TCG не определяет требований ко времени генерации ключей.
Устройство RSA используется для цифровых подписей и шифрования. Нет ограничений на реализацию алгоритма RSA. Минимально рекомендуемая длина ключа — 2048 бит. Производители могут использоватькитайскую теорему об остаткахили любой другой метод. Значение открытой экспоненты должно быть216+1{\displaystyle 2^{16}+1}.
Этот компонент отвечает за состояние TPM и статус владения пользователем TPM. За это отвечают три группы переменных: TPM включён/отключён (в отключённом состоянии все операции блокируются), TPM активирован/деактивирован (в деактивированном состоянии возможно выполнение операций, напр. смена владельца), пользователь прошёл/не прошёл аутентификацию как владелец модуля. Данная информация хранится в видефлагов.
Идея доверенной платформы (англ.The trusted Platform) или платформы, которой можно доверять (её ожидаемое поведение всегда совпадает с реальным), основана на понятии «корень доверия» (англ.Root of Trust) — набор компонентов, которым нужно доверять. Полный набор корней доверия имеет минимальную функциональность, необходимую для описания платформы, что влияет на доверенность этой платформе. Есть три корня доверия: корень доверия для измерений (RTM), корень доверия для хранения (RTS) и корень доверия для сообщений (RTR). RTM — вычислительный механизм, который производит надёжные измерения целостности платформы. RTS — вычислительный механизм, способный хранить хеши значений целостности. RTR — механизм, который надёжно сообщает о хранимой в RTS информации. Данные измерений описывают свойства и характеристики измеряемых компонентов. Хеши этих измерений — «снимок» состояния компьютера. Их хранение осуществляется функциональностью RTS и RTR. Сравнивая хеш измеренных значений с хешем доверенного состояния платформы, можно судить о целостности системы.
TPM представляет собойтокен аутентификацииследующего поколения. Криптопроцессор поддерживает аутентификацию и пользователя, и компьютера, обеспечивая доступ к сети только авторизованным пользователям и компьютерам. Это может использоваться, например, при защите электронной почты, основанной на шифровании или для подписанияцифровых сертификатов, привязанных к TPM. Отказ от паролей и использование TPM позволяют создать более сильные модели аутентификации для проводного, беспроводного и VPN-доступа.
Это является основным назначением «защищённого контейнера». Самошифрующиеся устройства, реализованные на основе спецификацийTrusted Computing Group, делают доступными встроенное шифрование и контроль доступа к данным. Такие устройства обеспечивают полное шифрование диска, защищая данные при потере или краже компьютера.
Преимущества:
Большие перспективы имеет связка TPM+Bitlocker. Такое решение позволяет прозрачно от ПО шифровать весь диск.
TPM может подтверждать подлинность компьютера и даже его работоспособность ещё до получения доступа к сети и, если необходимо, помещать компьютер в карантин.
Сертификация программного кода обеспечит защитуигрот читерства, а программы, требующие особой осторожности, наподобие банковских и почтовых клиентов, — от намеренной модификации. Сразу же будет пресечено добавление «троянского коня» в устанавливаемом приложении.
Защита от копированияоснована на такой цепочке: программа имеет сертификат, обеспечивающий ей (и только ей) доступ к ключу расшифровки (который также хранится в TPM’е). Это даёт защиту от копирования, которую невозможно обойти программными средствами.
TPM 1.2 используется для хранения данныхSafer Mode Extensions.
Хотя спецификация предполагает как аппаратную, так и программную реализации системы TPM, обеспечение должного уровня безопасности, установленного в общей спецификации, на сегодняшний день возможно только при аппаратной реализации. Аппаратная реализация в виде чипа TPM была впервые выпущена в 2005 году. На сегодняшний день чипом TPM оснащено более 500 000 000 компьютеров. В будущем TPM сможет устанавливаться на такие устройства, как мобильные телефоны, устройства ввода и хранения информации. Микроконтроллеры TPM на сегодняшний день производятся и применяются многими компаниями.
Trusted Platform Module критикуется некоторымиIT-специалистами за название.Доверие(англ.trust) всегда должно быть обоюдным, в то время как разработчики TPM пользователю не доверяют, что приводит к ущемлению свободы. По мнению отдельных IT-специалистов, для доверенных вычислений больше подходит название «вероломные вычисления» (англ.treacherous computing), поскольку наличие модуля гарантирует обратное — систематический выход компьютера из подчинения. Фактически, компьютер перестаёт функционировать в качестве компьютера общего назначения, поскольку любая операция может потребовать явного разрешения владельца компьютера.
Владелец компьютера больше не может делать с ним всё, что угодно, поскольку передаёт часть своих прав производителям программного обеспечения. В частности, TPM может мешать (из-за ошибок в ПО или намеренного решения разработчиков):
Компьютер, оборудованный TPM, имеет уникальный идентификатор, зашитый в чипе. Идентификатор известен производителю программного обеспечения и его невозможно изменить. Это ставит под угрозу одно из естественных преимуществИнтернета—анонимность. На данный момент, если на компьютере неттроянских программ, в программном обеспечении нет явныхошибок, аcookieудалены, единственным идентификатором пользователя остаётсяIP-адресизаголовки HTTP. Наряду с повышением безопасности, наличие модуля TPM может иметь негативный эффект на свободу слова, что особенно актуально для развивающихся стран. Чтобы понять, к чему может привести удалённо читаемый и неизменяемый идентификатор компьютера, достаточно вспомнить аналогичную проблему с идентификационным номером процессораPentium III.
Программа, ставшая лидером отрасли (какAutoCAD,Microsoft WordилиAdobe Photoshop), может установить шифрование на свои файлы,делая невозможным доступ к этим файлам посредством программ других производителей, создавая, таким образом, потенциальную угрозу свободной конкуренции на рынке прикладного ПО.
В случае неисправности модуля TPM-контейнеры, защищённые им, становятся недоступными, а данные, находящиеся в них — невосстановимыми. Для полной гарантии восстановления данных в случае порчи модуля TPM необходимо осуществлять сложную процедурурезервного копирования. Для обеспечения секретности система резервного копирования (backup) также должна иметь собственные TPM-модули.
На конференции по компьютерной безопасностиBlack Hat2010 было объявлено о взломе чипаInfineonSLE66 CL PE, изготовленного по спецификации TPM. Данный чип используется в компьютерах, оборудовании спутниковой связи и игровых приставках. Для взлома использовалсяэлектронный микроскопстоимостью около 70 000 $. Оболочка чипа была растворена кислотой, для перехвата команд были использованы мельчайшие иголки. В Infineon утверждают, что они знали о возможности физического взлома чипа. Йорг Борхерт, вице-президент компании, заверил, что дорогое оборудование и техническая сложность взлома не представляет опасности для подавляющего большинства пользователей чипов.
24 июня 2021 года, во время официальной презентации операционной системыWindows 11, было объявлено, что для работы компьютера под её управлением необходимо наличие в системе чипа TPM. В большинстве современных платформ ПК нет физического чипа, но имеется программная реализация модуля TPM (fTPM), в тех же, где её нет, имеется возможность подключения аппаратного модуля (то есть на материнской плате имеется разъём для его подключения). В течение нескольких дней после презентации цены на модули увеличились в 5 раз (с 20 до 100 $). Шен Йе (Shen Ye), один из руководителей компании HTC Vive, заявил, что спекулянты надеются на то, что в скором времени множество пользователей, не зная, как включить fTPM, кинется покупать модули, и на то, что можно будет на этом нажиться; из-за этого спекулянты стали массово скупать модули и таким образом спровоцировали повышение цен.
Trusted Computing Group