Всё о TPM в системных требованиях Windows 11

Alexander Gavrilov · June 26, 2021

В интернетах циркулируют дикие слухи о том, что клятый Микрософт придумал очередной способ лишить нас свободы с помощью TPM. Разумеется, это совершенно не так.

TPM

Про TPM хорошо сказал хабровчанин ValdikSS в своей статье:

TPM — замечательная штука — что-то вроде смарт-карты, которая несет в себе RSA-ключ, зашитый производителем на этапе производства, с возможностью генерирования своих ключей, приватная часть которых никогда не покинет TPM, загрузки уже существующих ключей, с небольшим энергонезависимым хранилищем произвольных данных (NVRAM) на борту, генератором случайных чисел и еще кучей всего. Но самое интересное, что предоставляет TPM — конфигурационные регистры платформы (Platform Configuration Registers, PCR), которые можно расширить SHA-1-суммой каких-то произвольных данных. Очень важно отметить, что эти регистры нельзя ни сбросить, ни установить в нужное значение, а только дополнить новой SHA-1-суммой, от которой сам TPM возьмет новую SHA-1-сумму от конкатенации старого и нового значения. Проще говоря, TPM выполняет следующую команду, если вы отправляете в PCR NEW_HASH:

PCR[i] = SHA1(PCR[i] + NEW_HASH)

BIOS/UEFI материнской платы, если он поддерживает спецификации Trusted Computing Group (TCG), измеряет (т.е. отправляет в TPM хеши) всего, что участвует в загрузке с момента включения компьютера: BIOS/UEFI Boot Block, сам BIOS/UEFI, сервисы UEFI, SMBIOS, таблицы ACPI, Option ROM устройств (например, сетевых карт), MBR или загрузчик EFI, разделы диска, и еще кучу всего.

TPM может зашифровать произвольные данные RSA-ключом с привязкой к значениям PCR, и расшифровать их можно будет только в том случае, если значения PCR совпадут. Если мы зашифруем таким образом данные, то, в случае модификации BIOS/UEFI, загрузчика, модулей GRUB, ядра, initrd или всего лишь командной строки ядра, данные не расшифруются из-за несовпадения регистров.

Из популярного софта TPM используется, насколько мне известно, только в Microsoft BitLocker. TPM можно использовать в качестве хранилища сертификатов для всяких банк-клиентов, VPN и SSH-доступа, и очень обидно, что его использует так мало людей, единицы, учитывая его стоимость (≈$10, дешевле, чем типичные смарт-карты), возможности и тот факт, что он уже установлен во многие модели ноутбуков, а в последних процессорах от Intel вообще реализован на уровне ПО и доступен всем.

Хорошая новость: если у вас материнская плата на чипсете H110 (Intel) / A320 (AMD) или новее, то TPM у вас фактически есть в виде fTPM (Firmware-based Trusted Platform Module), который реализован поверх «ядра безопасности» (Intel ME / AMD PSP), встроенного в чипсет материнской платы.

Если ориентироваться по чипсетам сложно, можно ориентироваться по процессору. Skylake / Ryzen (и новее) — вам повезло. Достаточно включить в настройках UEFI опцию «Intel PTT» (Intel Platform Trust Technology) или «AMD fTPM».

Поскольку PTT работает поверх Intel ME, то в качестве экзотического случая можно рассмотреть параноиков, отключающих ME / PSP, и любителей использовать мобильные процессоры Intel на десктопных материнских платах (так называемые «ноутбучные мутанты», для работы которых часто необходимо отключать ME). Рекомендации: включить ME / PSP (если возможно) или читать далее.

Владельцам более старых систем рекомендуется заглянуть в руководство к материнской плате, чтобы определить, имеется ли на ней разъём для подключения внешнего модуля TPM. Если разъём есть, то при покупке модуля нужно учитывать нюансы:

  • количество контактов (пинов) — например, у MSI есть модули с интерфейсами SPI (12 контактов) и LPC (14 контактов). 12-контактный модуль не заработает в 14-пиновом разъёме.
  • совпадение производителя модуля с производителем материнской платы — совместимость между разными производителями не гарантируется.
  • версия TPM, поддерживаемая материнской платой — если заявлена поддержка TPM версии 1.2, то модуль версии 2.0 практически наверняка не заработает, т.к. для этого нужна поддержка со стороны прошивки. Можно пробовать обращаться в тех.поддержку производителя материнской платы, например, для одной из старых плат ASRock существовал бета-BIOS, с поддержкой TPM 2.0, который отсутствовал на официальном сайте и выдавался поддержкой по запросу.
  • версия TPM, реализованная в самом модуле — если ещё вчера в документации Microsoft было написано, что допускаются модули версии 1.2, то сегодня это упоминание исчезло. Завтра оно может снова вернуться, а может и нет, и вы останетесь с рабочим и отчасти даже полезным модулем (его можно использовать для усиления защиты BitLocker в Windows 10), но установить Windows 11 он вам не поможет.

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

Twitter, Facebook