Как определить, есть ли на компьютере TPM (модуль доверенной платформы)

Вопрос или проблема

Желая поиграться с вещами, связанными с Trusted Platform Module, я установил TrouSerS и попытался запустить tcsd, но получил такую ошибку:

TCSD TDDL ERROR: Could not find a device to open!

Тем не менее, в моем ядре загружено несколько модулей TPM:

# lsmod | grep tpm
tpm_crb                16384  0
tpm_tis                16384  0
tpm_tis_core           20480  1 tpm_tis
tpm                    40960  3 tpm_tis,tpm_crb,tpm_tis_core

Итак, как определить, не хватает ли на моем компьютере TPM или это ошибка TrouSerS?

Ни dmidecode, ни cpuid не выводят ничего о “tpm” или “trust”. Просматривая /var/log/messages, с одной стороны, я вижу rngd: /dev/tpm0: No such file or directory, но с другой стороны вижу kernel: Initialise system trusted keyrings, и согласно этой документации ядра доверенные ключи используют TPM.

ИЗМЕНИТЬ: В меню настроек BIOS моего компьютера нет упоминаний о TPM.

Кроме того, просмотр /proc/keys показывает:

# cat /proc/keys 
******** I--Q---     1 perm 1f3f0000     0 65534 keyring   _uid_ses.0: 1
******** I--Q---     7 perm 3f030000     0     0 keyring   _ses: 1
******** I--Q---     3 perm 1f3f0000     0 65534 keyring   _uid.0: empty
******** I------     2 perm 1f0b0000     0     0 keyring   .builtin_trusted_keys: 1
******** I------     1 perm 1f0b0000     0     0 keyring   .system_blacklist_keyring: empty
******** I------     1 perm 1f0f0000     0     0 keyring   .secondary_trusted_keys: 1
******** I------     1 perm 1f030000     0     0 asymmetri Fedora kernel signing key: 34ae686b57a59c0bf2b8c27b98287634b0f81bf8: X509.rsa b0f81bf8 []

TPM не обязательно появляются в таблицах ACPI, но модули выводят сообщение, когда находят поддерживаемый модуль; например

[  134.026892] tpm_tis 00:08: 1.2 TPM (device-id 0xB, rev-id 16)

Таким образом, dmesg | grep -i tpm является хорошим индикатором.

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

Изначально TPM использовались в серверах и бизнес-ноутбуках (а также ChromeBooks, как объясняет icarus), и были редкостью в настольных или “небизнес” ноутбуках; это изменилось за последние несколько лет, и теперь Windows 11 требует наличия TPM. Все, что поддерживает Intel TXT, имеет TPM.

Также это можно обнаружить через sysfs:

[ -d "$(ls -d /sys/kernel/security/tpm* 2>/dev/null | head -1)" ] && \
    echo "TPM доступен" || echo "TPM отсутствует"

И с версии ядра 5.6 (коммит 7084eddf6be9 tpm: Add tpm_version_major sysfs file), версия может быть обнаружена с использованием файла sysfs:

$ cat /sys/class/tpm/tpm*/tpm_version_major
1

ПРИМЕЧАНИЕ: некоторые TPM не экспортируют sysfs (ошибка прошивки).

Другой способ – проверить /dev/tpm0 или /dev/tpmrm0. Все устройства TPM должны иметь /dev/tpm0. /dev/tpmrm0 есть только у TPM 2.0, но оно было добавлено в v4.12-rc1 (fdc915f7f719 tpm: expose spaces via a device link /dev/tpmrm):

[ -c /dev/tpmrm0 ] && echo "TPM 2.0" # с версии v4.12-rc1

[ -c /dev/tpm0 ] && echo "TPM 1.2 или 2.0"

.

Ответ или решение

Для выявления наличия TPM (Модуля доверенной платформы) в вашем компьютере, можно осуществить несколько шагов диагностики и проверки. Учтите, что TPM может быть встроен как в определенные серверы и бизнес-ноутбуки, так и в настольные компьютеры, особенно с учетом последних изменений в требованиях, как в случае с Windows 11.

Шаги для проверки наличия TPM:

  1. Постановка Задачи: Прежде всего, определите, действительно ли ваша система заявляет о наличии TPM в установках UEFI/BIOS. Если в меню BIOS нет упоминания о TPM, вероятно, его в системе нет, однако это не всегда гарантирует отсутствие устройства.

  2. Проверка модулей ядра: Убедитесь, что модули TPM загружены в ядре. Команда lsmod | grep tpm покажет, какие модули загружены и используются ли они.

  3. Анализ целостности ядра: Проверьте наличие сообщений о TPM при запуске с помощью dmesg | grep -i tpm. Если устройство поддерживается, ядро выдаст подтверждающее сообщение.

  4. Использование sysfs: Чтобы более точно определить наличие TPM, выполните команду echo "$(ls -d /sys/kernel/security/tpm* 2>/dev/null)". Если будет вывод, то TPM доступен в вашей системе.

  5. Доступность устройств в /dev: Проверьте наличие устройств /dev/tpm0 и /dev/tpmrm0. Например, команда [ -c /dev/tpm0 ] && echo "TPM 1.2 или 2.0" подтвердит наличие хотя бы одной из версий TPM.

  6. Версия TPM: Для определения версии TPM (если версия ядра 5.6 и выше), можно воспользоваться cat /sys/class/tpm/tpm*/tpm_version_major. Это отобразит основную версию TPM, например, 1 или 2.

  7. Проверка BIOS/UEFI: Если доступно, зайдите в настройки BIOS/UEFI и убедитесь, включен ли TPM в соответствующем разделе.

Рассмотрение возможных проблем и решений:

  • Если TPM не обнаруживается с помощью вышеописанных методов, убедитесь, что его поддержка включена в BIOS/UEFI. Иногда требуется обновление BIOS для активации возможности работы с TPM.
  • Ошибка TCSD TDDL ERROR: Could not find a device to open! может свидетельствовать о неисправности в установке TrouSerS или несовместимости с вашей системой. Убедитесь в корректности конфигурации программы и совместимости версий.

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

Оцените материал
Добавить комментарий

Капча загружается...