В вычислительной технике Trusted Platform Module (TPM) — название спецификации, описывающей криптопроцессор, в котором хранятся криптографические ключи для защиты информации, а также обобщённое наименование реализаций указанной спецификации, например, в виде «чипа TPM» или «устройства безопасности TPM» (Dell). Раньше назывался «чипом Фрица» (бывший сенатор Эрнест «Фриц» Холлингс известен своей горячей поддержкой системы защиты авторских прав на цифровую информацию, DRM). Спецификация TPM разработана некоммерческой организацией «Trusted Computing Group» (англ.). Текущая версия спецификации TPM — 1.2 ревизия 116, издание 3 марта 2011. [TCG 1]
Содержание
- Содержание
- История разработки [ править | править код ]
- Краткий обзор [ править | править код ]
- Архитектура TPM [ править | править код ]
- Ввод/Вывод (англ. I/O) [ править | править код ]
- Криптографический процессор [ править | править код ]
- Энергонезависимая память (англ. Non-Volatile Storage) [ править | править код ]
- Ключ подтверждения (англ. Endorsement Key, EK) [ править | править код ]
- Ключи подтверждения подлинности (англ. Attestation Identity Keys, AIK) [ править | править код ]
- Регистры конфигурации платформы (Platform Configuration Registers, PCR) [ править | править код ]
- Генератор случайных чисел (англ. Random Number Generator, RNG) [ править | править код ]
- Блок SHA-1 (англ. SHA-1 Engine) [ править | править код ]
- Генератор ключей RSA (англ. RSA Key Generator) [ править | править код ]
- Устройство RSA (англ. RSA Engine) [ править | править код ]
- Компонент Opt-In [ править | править код ]
- Доверенная платформа (англ. The trusted Platform) [ править | править код ]
- Возможные применения [ править | править код ]
- Реализация [ править | править код ]
- Критика [ править | править код ]
- Взломы [ править | править код ]
- 1 Включение модуля TPM в BIOS компьютера
- 2 Инициализация модуля TPM в Windows
- For endusers of computing devices with an Infineon TPM*
Содержание
История разработки [ править | править код ]
В январе 1999 года была создана рабочая группа производственных компаний «Альянс доверяемых компьютерных платформ» (англ. Trusted Computing Platform Alliance, TCPA) с целью развития механизмов безопасности и доверия в компьютерных платформах. Первоначально в TCPA входили ведущие разработчики аппаратного и программного обеспечения — HP, Compaq (в настоящее время подразделение HP), IBM, Intel, Microsoft. [1]
В октябре 1999 года была анонсирована проектная спецификация и открыта возможность другим компаниям присоединиться к альянсу. В августе 2000 года была выпущена для обсуждения предварительная публичная версия спецификации. Спецификация TCPA версии 1.0 была опубликована в феврале 2001 года, в ней были определены основные требования к TPM с точки зрения производителя электронных устройств. [2]
Затем была создана рабочая группа по созданию TPM, которая пересмотрела общую спецификацию с точки зрения практического применения доверяемого модуля (TPM). В августе 2001 года была выпущена спецификация версии 1.1 и создана рабочая группа по проектированию платформы ПК, на которую устанавливается доверяемый модуль. [2]
В апреле 2003 года была организована некоммерческая организация «Trusted Computer Group» (TCG), которая стала преемником TCPA и продолжила работать над развитием уже выпущенных спецификаций. В дополнение к уже созданным рабочим группам по проектированию TPM и платформы ПК были созданы группы по разработке спецификаций для мобильных устройств, ПК-клиентов, серверов, запоминающих устройств, инфраструктуры доверяемых вычислений, программного обеспечения (англ. Trusted Software Stack, TSS) и доверяемого сетевого соединения. В ноябре 2003 года была опубликована спецификация TPM версии 1.2, последняя версия с существенными изменениями, в которой по существу описана функциональность TPM. [2]
Краткий обзор [ править | править код ]
Trusted Platform Module (TPM), содержащий в себе криптопроцессор, обеспечивает средства безопасного создания ключей шифрования, способных ограничить использование ключей (как для подписи, так и для шифрования/дешифрования) с той же степенью неповторяемости, что и генератор случайных чисел. Также этот модуль имеет следующие возможности: удалённую аттестацию, привязку и надёжное защищённое хранение. Удалённая аттестация создаёт связь аппаратных средств, загрузки системы и конфигурации хоста (ОС компьютера), разрешая третьему лицу (вроде цифрового магазина музыки) проверять, чтобы программное обеспечение или музыка, загруженная из магазина, не были изменены или скопированы пользователем (см. DRM). Криптопроцессор шифрует данные таким способом, что они могут быть расшифрованы только на компьютере, где были зашифрованы, под управлением того же самого программного обеспечения. Привязка шифрует данные, используя ключ подтверждения TPM — уникальный ключ RSA, записанный в чип в процессе его производства, или другой ключ, которому доверяют. [3]
Модуль TPM может использоваться, чтобы подтвердить подлинность аппаратных средств. Так как каждый чип TPM уникален для специфического устройства, это делает возможным однозначное установление подлинности платформы. Например, чтобы проверить, что система, к которой осуществляется доступ — ожидаемая система.
Архитектура TPM [ править | править код ]

В спецификации TCG описан минимальный набор алгоритмов и протоколов, которым должен удовлетворять чип TPM. Кроме того, производителем могут быть реализованы дополнительные алгоритмы и протоколы (которые, разумеется, должны быть описаны производителем в соответствующей документации). [TCG 2]
В архитектуре чипа реализованы следующие защитные механизмы:
- защищённое управление памятью;
- шифрование шины и данных;
- тестирование режимов блокирования;
- активное экранирование.
В чипе реализованы алгоритмы асимметричной криптографии, обеспечивающие высокий уровень защиты. Некоторые элементы логического дизайна чипа являются нестандартными с точки зрения типовых методов проектирования интегральных схем (ИС). Применяются и специальные приёмы проектирования ИС: «запутывание» топологии слоёв ИС, усложняющее анализ функций элементов микросхемы. Ряд технологических особенностей чипов безопасности специально не разглашается компаниями-производителями, чтобы уменьшить вероятность взлома даже в том случае, когда для этого применяются современные методы анализа функционирования микросхем и дорогостоящее оборудование. [4]
Ввод/Вывод (англ. I/O) [ править | править код ]
Этот компонент управляет потоком информации по шине и управляет сообщениями между соответствующим компонентами TPM. I/O компонент вводит в действие политику доступа, связанную с функциями TPM. Правила доступа определяются флагами доступа, хранящимися в блоке Opt-In энергонезависимой памяти. [5]
Криптографический процессор [ править | править код ]
Осуществляет криптографические операции внутри TPM. Эти операции включают в себя:
- Генерация асимметричных ключей (RSA);
- Асимметричное шифрование/расшифрование (RSA);
- Хеширование (SHA-1);
- Генерация случайных чисел.
TPM использует эти возможности для генерации случайных последовательностей, генерации асимметричных ключей, цифровой подписи и конфиденциальности хранимых данных. Также TPM поддерживает симметричное шифрование для внутренних нужд. Все хранимые ключи по силе должны соответствовать ключу RSA длиной 2048 бит [5] .
Энергонезависимая память (англ. Non-Volatile Storage) [ править | править код ]
Используется для хранения ключа подтверждения, корневого ключа (англ. Storage Root Key, SRK), авторизационных данных, различных флагов доступа и блока Opt-In. Объём этого типа памяти ограничен (1280 байт). [6]
Ключ подтверждения (англ. Endorsement Key, EK) [ править | править код ]
EK — ключ RSA размером 2048 бит, идентифицирующий чип, а также всё устройство, фундаментальный компонент TPM. Открытая часть называется PUBEK, закрытая — PRIVEK. В соответствии с политикой безопасности PRIVEK не должен быть доступен вне чипа, он никогда не используется для генерирования подписей. PUBEK хранится в сертификате, используется только для установления владельца TPM и в процессе генерации AIK. EK генерируется до того, как конечный пользователь получит платформу. Стандарт позволяет изменить этот ключ, из-за чего использование TPM может быть ограниченным. [5]
Ключи подтверждения подлинности (англ. Attestation Identity Keys, AIK) [ править | править код ]
AIK — ключ RSA длиной 2048 бит, используемый только для подписей, для шифрования не используется. TPM может сгенерировать неограниченное количество AIK, эти ключи должны быть постоянными, но рекомендуется хранить AIK в виде блобов в постоянной внешней памяти, а не внутри энергонезависимой памяти TPM. В соответствии со спецификацией предполагается, что производители обеспечат достаточно места для многих блобов AIK, которые будут одновременно загружаться в энергозависимую память TPM. Переход AIK от одного TPM к другому запрещён. [6]
Регистры конфигурации платформы (Platform Configuration Registers, PCR) [ править | править код ]
PCR — это уникальные признаки TPM, в которых в зашифрованном виде содержится вся информация о целостности метрик системы, начиная с загрузки BIOS до завершения работы системы. Информация, содержащаяся в PCR, формирует корень доверия для измерений (RTM). Могут храниться как в энергонезависимой, так и в энергозависимой памяти. Эти регистры сбрасываются при старте и при перезагрузке системы. Спецификация предписывает минимальное количество регистров (16), каждый регистр содержит 160 бит информации. Регистры 0-7 зарезервированы для нужд TPM. Регистры 8-15 доступны для использования операционной системой и приложениями. [5] Изменения значений PCR необратимы и их значения нельзя записать напрямую, их можно только расширить новыми значениями, которые зависят от предыдущих. Все изменения значений PCR записываются в лог изменений, который хранится в энергозависимой памяти. [6]
Генератор случайных чисел (англ. Random Number Generator, RNG) [ править | править код ]
Используется для генерации ключей и случайностей в сигнатурах (подписях). [6] TPM должен быть способным обеспечить 32 случайных бита на каждый вызов. RNG чипа состоит из следующих компонентов:
- Источник энтропии и коллектор
Источник энтропии — процесс (или процессы), обеспечивающие энтропию. Такими источниками могут быть шум, счётчик тактов процессора и другие события. Коллектор энтропии — процесс, который собирает энтропию, удаляет смещение, выравнивает выходные данные. Энтропия должна передаваться только регистру состояния.
- Регистр состояния
Реализация регистра состояния может использовать 2 регистра: энергозависимый и независимый. При старте TPM загружает энергозависимый регистр из энергонезависимого. Любое последующее изменение регистра состояния от источника энтропии или от смешивающей функции влияет на энергозависимый регистр. При выключении TPM записывает текущее значение регистра состояния в энергонезависимый регистр (такое обновление может происходить и в любое другое время). Причиной такой реализации является стремление реализовать энергонезависимый регистр на флэш-памяти, количество записи в которую ограничено. TPM должен обеспечить отсутствие экспорта регистра состояния.
- Смешивающая функция
Берёт значение из регистра состояния и выдаёт выходные данные RNG. Каждое использование смешивающей функции должно изменять регистр состояния.
При потере питания происходит сброс RNG. Любые выходные данные RNG для TPM должны быть защищены.
Блок SHA-1 (англ. SHA-1 Engine) [ править | править код ]
Используется для вычисления сигнатур (подписей), создания блоков ключей и других целей общего назначения. Хеш-интерфейсы доступны вне TPM. Это позволяет окружению иметь доступ к хеш-функции.
Генератор ключей RSA (англ. RSA Key Generator) [ править | править код ]
Создаёт пары ключей RSA. TCG не определяет требований ко времени генерации ключей. [6]
Устройство RSA (англ. RSA Engine) [ править | править код ]
Используется для цифровых подписей и шифрования. Нет ограничений на реализацию алгоритма RSA. Минимально рекомендуемая длина ключа — 2048 бит. [5] Производители могут использовать китайскую теорему об остатках или любой другой метод. Значение открытой экспоненты должно быть 2 16 + 1 <displaystyle 2^<16>+1> .
Компонент Opt-In [ править | править код ]
Этот компонент отвечает за состояние TPM и статус владения пользователем TPM. За это отвечают три группы переменных: TPM включён/отключён (в отключённом состоянии все операции блокируются), TPM активирован/деактивирован (в деактивированном состоянии возможно выполнение операций, напр. смена владельца), пользователь прошёл/не прошёл аутентификацию как владелец модуля. Данная информация хранится в виде флагов. [5]
Доверенная платформа (англ. The trusted Platform) [ править | править код ]
Идея доверенной платформы или платформы, которой можно доверять (её ожидаемое поведение всегда совпадает с реальным), основана на понятии «корень доверия» (англ. Root of Trust ) — набор компонентов, которым нужно доверять. Полный набор корней доверия имеет минимальную функциональность, необходимую для описания платформы, что влияет на доверенность этой платформе. Есть три корня доверия: корень доверия для измерений (RTM), корень доверия для хранения (RTS) и корень доверия для сообщений (RTR). [3] RTM — вычислительный механизм, который производит надёжные измерения целостности платформы. RTS — вычислительный механизм, способный хранить хеши значений целостности. RTR — механизм, который надёжно сообщает о хранимой в RTS информации. Данные измерений описывают свойства и характеристики измеряемых компонентов. Хеши этих измерений — «снимок» состояния компьютера. Их хранение осуществляется функциональностью RTS и RTR. Сравнивая хеш измеренных значений с хешем доверенного состояния платформы, можно судить о целостности системы. [7]
Возможные применения [ править | править код ]
Аутентификация [ править | править код ]
TPM представляет собой токен аутентификации следующего поколения. Криптопроцессор поддерживает аутентификацию и пользователя, и компьютера, обеспечивая доступ к сети только авторизованным пользователям и компьютерам. [TCG 3] Это может использоваться, например, при защите электронной почты, основанной на шифровании или для подписания цифровых сертификатов, привязанных к TPM. Отказ от паролей и использование TPM позволяют создать более сильные модели аутентификации для проводного, беспроводного и VPN доступа. [8]
Защита данных от кражи [ править | править код ]
Это является основным назначением «защищённого контейнера». Самошифрующиеся устройства, реализованные на основе спецификаций Trusted Computing Group, делают доступными встроенное шифрование и контроль доступа к данным. Такие устройства обеспечивают полное шифрование диска, защищая данные при потере или краже компьютера. [TCG 4]
- Улучшение производительности
Аппаратное шифрование позволяет оперировать со всем диапазоном данных без потерь производительности.
- Усиление безопасности
Шифрование всегда включено. Кроме того, ключи генерируются внутри устройства и никогда не покидают его.
- Низкие издержки использования
Не требуются модификации операционной системы, приложений и т. д. Для шифрования не используются ресурсы центрального процессора. [8]
Большие перспективы имеет связка TPM+Bitlocker. Такое решение позволяет прозрачно от ПО шифровать весь диск. [7]
Управление доступом к сети (NAC) [ править | править код ]
TPM может подтверждать подлинность компьютера и даже его работоспособность ещё до получения доступа к сети и, если необходимо, помещать компьютер в карантин. [9]
Защита ПО от изменения [ править | править код ]
Сертификация программного кода обеспечит защиту игр от читерства, а программы, требующие особой осторожности, наподобие банковских и почтовых клиентов, — от намеренной модификации. [8] Сразу же будет пресечено добавление «троянского коня» в устанавливаемом приложении.
Защита от копирования [ править | править код ]
Защита от копирования основана на такой цепочке: программа имеет сертификат, обеспечивающий ей (и только ей) доступ к ключу расшифровки (который также хранится в TPM’е). Это даёт защиту от копирования, которую невозможно обойти программными средствами. [8]
Реализация [ править | править код ]
![]()
Производители [ править | править код ]
Хотя спецификация предполагает как аппаратную, так и программную реализации системы TPM, обеспечение должного уровня безопасности, установленного в общей спецификации, на сегодняшний день возможно только при аппаратной реализации [2] . Аппаратная реализация в виде чипа TPM была впервые выпущена в 2005 году. [10] На сегодняшний день чипом TPM оснащено более 500 000 000 компьютеров. [TCG 5] В будущем TPM сможет устанавливаться на такие устройства, как мобильные телефоны, устойства ввода и хранения информации. Микроконтроллеры TPM на сегодняшний день производятся и применяются многими компаниями. [TCG 6]
Критика [ править | править код ]
Проблема «доверия» [ править | править код ]
Trusted Platform Module критикуется некоторыми [11] IT-специалистами за название. Доверие (англ. trust ) всегда должно быть обоюдным, в то время как разработчики TPM пользователю не доверяют, что приводит к ущемлению свободы. По мнению отдельных IT-специалистов, [8] [12] для доверенных вычислений больше подходит название «вероломные вычисления» (англ. treacherous computing ), поскольку наличие модуля гарантирует обратное — систематический выход компьютера из подчинения. Фактически, компьютер перестаёт фунционировать в качестве компьютера общего назначения, поскольку любая операция может потребовать явного разрешения владельца компьютера. [12]
Потеря «владения» компьютером [ править | править код ]
Владелец компьютера больше не может делать с ним всё, что угодно, поскольку передаёт часть своих прав производителям программного обеспечения. В частности, TPM может мешать (из-за ошибок в ПО или намеренного решения разработчиков):
- переносить данные на другой компьютер;
- свободно выбирать программное обеспечение для своего компьютера;
- обрабатывать имеющиеся данные любыми доступными программами. [8]
Потеря анонимности [ править | править код ]
Компьютер, оборудованный TPM, имеет уникальный идентификатор, зашитый в чипе. Идентификатор известен производителю программного обеспечения и его невозможно изменить. Это ставит под угрозу одно из естественных преимуществ Интернета — анонимность [8] . На данный момент, если на компьютере нет троянских программ, в программном обеспечении нет явных ошибок, а cookie удалены, единственным идентификатором пользователя остаётся IP-адрес и заголовки HTTP. Наряду с повышением безопасности, наличие модуля TPM может иметь негативный эффект на свободу слова, что особенно актуально для развивающихся стран. Чтобы понять, к чему может привести удалённо читаемый и неизменяемый идентификатор компьютера, достаточно вспомнить аналогичную проблему с идентификационным номером процессора Pentium III.
Потенциальная угроза свободной конкуренции [ править | править код ]
Программа, ставшая лидером отрасли (как AutoCAD, Microsoft Word или Adobe Photoshop), может установить шифрование на свои файлы, делая невозможным доступ к этим файлам посредством программ других производителей, создавая, таким образом, потенциальную угрозу свободной конкуренции на рынке прикладного ПО. [8]
Проблемы неисправности модуля TPM [ править | править код ]
В случае неисправности модуля TPM-контейнеры, защищённые им, становятся недоступными, а данные, находящиеся в них — невосстановимыми. Для полной гарантии восстановления данных в случае порчи модуля TPM необходимо осуществлять сложную процедуру резервного копирования. Для обеспечения секретности система резервного копирования (backup) также должна иметь собственные TPM-модули.
Взломы [ править | править код ]
На конференции по компьютерной безопасности Black Hat 2010 было объявлено о взломе чипа Infineon SLE66 CL PE, изготовленного по спецификации TPM. [13] Данный чип используется в компьютерах, оборудовании спутниковой связи и игровых приставках. Для взлома использовался электронный микроскоп (стоимостью около $70 000). Оболочка чипа была растворена кислотой, для перехвата команд были использованы мельчайшие иголки. В Infineon утверждают, что они знали о возможности физического взлома чипа. Борчерт (Borchert), вице-президент компании, заверил, что дорогое оборудование и техническая сложность взлома не представляет опасности для подавляющего большинства пользователей чипов.
Во многих компьютерах и ноутбуках сегодня можно встретить дополнительный чип, который называется TPM. В операционной системе он определяется в разделе "Устройства безопасности". Что это за зверь такой и для чего он, собственно, нужен мы и поговорим сегодня.
Расшифрование (decryption) иногда некорректно называют дешифрование (deciphering). Разница между ними в том, что при расшифровании вам известен алгоритм и секретный ключ, которым зашифрованы данные, а при дешифровании – нет.
- Во-первых, чип нужно активировать в BIOS компьютера (если он не активирован).
- Во-вторых, нужно стать его владельцем на уровне операционной системы.
Рассмотрим эти шаги более подробно.
1 Включение модуля TPM в BIOS компьютера
Для включения модуля зайдите в BIOS и перейдите в раздел, связанный с безопасностью. Хотя BIOS может существенно отличаться на разных компьютерах, как правило, раздел с настройками безопасности называется "Security". В этом разделе должна быть опция, которая называется "Security Chip".
Настройки безопасности в BIOS
Модуль может находиться в трёх состояниях:
- Выключен (Disabled).
- Включён и не задействован (Inactive).
- Включён и задействован (Active).
В первом случае он не будет виден в операционной системе, во втором – он будет виден, но система не будет его использовать, а в третьем – чип виден и будет использоваться системой. Установите состояние «активен».
Тут же в настройках можно очистить старые ключи, сгенерированные чипом.
Очистка памяти чипа TPM
Очистка TPM может пригодиться, если вы, например, захотите продать свой компьютер. Учтите, что стерев ключи, вы не сможете восстановить данные, закодированные этими ключами (если, конечно, вы шифруете свой жёсткий диск).
Теперь сохраните изменения ("Save and Exit" или клавиша F10) и перезагрузите компьютер.
После загрузки компьютера откройте диспетчер устройств и убедитесь, что доверенный модуль появился в списке устройств. Он должен находиться в разделе «Устройства безопасности».
Чип TPM в диспетчере устройств Windows
2 Инициализация модуля TPM в Windows
В правой части оснастки находится меню действий. Нажмите «Инициализировать TPM…». Если эта возможность не активна, значит, ваш чип уже инициализирован. Если он инициализирован не вами, и вы не знаете пароль владельца, то желательно выполнить сброс и очистку памяти модуля, как описано в предыдущем пункте.
Оснастка для управления чипом TPM
Инициализация модуля TPM через оснастку
Пароль TPM сгенерирован, инициализация
По завершении программа сообщит об успешной инициализации модуля. После завершения инициализации все дальнейшие действия с модулем – отключение, очистка, восстановление данных при сбоях, сброс блокировки – будут возможны только с помощью пароля, который вы только что получили.
Пароль владельца для TPM создан
Теперь действие инициализации стало неактивным, зато появилась возможность отключить TPM, сменить пароль владельца и сбросить блокировку модуля, если это произошло (модуль блокирует сам себя для предотвращения мошенничества или атаки).
Инициализация TPM завершена
Firmware updates are available for Infineon`s Trusted Platform Modules (TPMs) based on TCG specification family 1.2 and 2.0 and will be rolled out to end users by device and OS manufacturers (e.g. hardware OEMs such as PC manufacturers).
Please follow this link for more information on interim measures for Microsoft Windows.
For endusers of computing devices with an Infineon TPM*
Your device might need an update. We are currently working with computing device manufacturers to make these updates available. For more information we recommend checking directly with your device manufacturer:
Please follow the links below or check your manufacturer’s website directly if it is not listed below:
For other operating systems or embedded and IoT devices please contact your device manufacturer.
Trusted Platform Module (TPM) is an international standard for a secure cryptoprocessors that can securely store critical data such as passwords, certificates and encryption keys. TPM is a dedicated microcontroller designed to secure hardware by integrating cryptographic keys into devices and is used for secured crypto processes within computing devices as well as for secured storage of critical data. TPMs are typically used in business laptops, routers and embedded and IoT devices. The technical TPM specification was written by an industry consortium called Trusted Computing Group (TCG).






