TPM 2.0 и Arch: что можно сделать уже сейчас
TPM 2.0: аппаратный крипто-процессор, который живёт на материнке и может хранить ключи шифрования. На Arch Linux с ним можно сделать одну полезную вещь прямо сейчас: привязать автоматическую разблокировку LUKS2-диска к состоянию прошивки. Диск будет открываться сам при нормальной загрузке, а пароль останется запасным вариантом. Всё штатное, из коробки, без сторонних демонов.
Что такое TPM 2.0 и зачем он Arch-пользователю
TPM (Trusted Platform Module): микросхема на материнской плате (или программная эмуляция в прошивке). Она генерирует и хранит ключи, считает хеши состояния загрузки и умеет «запечатывать» секреты: отдаёт ключ только если система загрузилась в ожидаемом состоянии.
Для Arch-пользователя TPM полезен в одном сценарии: диски зашифрованы LUKS2, а TPM хранит ключ, который автоматически раскрывает раздел при загрузке. Аналогичный механизм работает в Windows BitLocker и macOS FileVault. Есть и другие применения: SSH-ключи, GnuPG, OpenSSL. Но главное и самое готовое к использованию: именно LUKS2 + systemd.
Как проверить, что TPM работает
Сначала убедись, что прошивка видит TPM. Зайди в BIOS/UEFI и найди опцию: для AMD это обычно fTPM, для Intel: PTT (Platform Trust Technology). Если включена, идём дальше.
Проверка в Arch:
ls /dev/tpm*
Должны появиться /dev/tpm0 и/или /dev/tpmrm0. Если пусто, TPM либо отключён в BIOS, либо аппаратно отсутствует.
Установи tpm2-tools:
sudo pacman -S tpm2-tools
Посмотреть возможности чипа:
tpm2_getcap properties-fixed | grep -i "TPM2_PT_MANUFACTURER\|TPM2_PT_FIRMWARE_VERSION"
Или быстрый способ через systemd:
systemd-analyze has-tpm2
Если ответ «yes», всё в порядке, можно двигаться дальше.
Как настроить автоматическую разблокировку LUKS через TPM
Главный кейс: при загрузке система сама открывает зашифрованный раздел, без ввода пароля. Пароль при этом остаётся в LUKS-слоте как запасной вариант.
Перед любыми манипуляциями сделай бэкап заголовков LUKS: потеря заголовка равна потере данных.
Шаг 1. Проверить список TPM-устройств
systemd-cryptenroll --tpm2-device=list
Вывод покажет доступные TPM-чипы и драйвер. Если TPM один, дальше используем auto.
Шаг 2. Записать TPM-ключ в LUKS-слот
sudo systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=0+7 /dev/sdaX
Здесь /dev/sdaX: зашифрованный раздел LUKS2. Команда запросит пароль LUKS (чтобы открыть слот), затем сгенерирует ключ, запишет его в TPM и свяжет с PCR 0 и 7. Затем раздел будет автоматически раскрываться при загрузке.
Шаг 3. Проверить результат
sudo systemd-cryptenroll /dev/sdaX
В выводе появится строка tpm2: новый слот создан. Для корневого раздела на Arch потребуется настроить initramfs с хуками systemd и sd-encrypt. Порядок важен, неправильная последовательность сделает систему незагружаемой. Если ставил Arch недавно, в пошаговом руководстве это уже может быть сделано.
Что такое PCR и как их трогать
PCR (Platform Configuration Register): регистры внутри TPM, в которых хранятся хеши состояния системы. Каждый отвечает за свою часть загрузочного процесса:
| PCR | Что хранит | Кто меняет |
|---|---|---|
| PCR 0 | Прошивка (UEFI-код) | Прошивка при обновлении |
| PCR 1 | Данные прошивки (порядок загрузки) | Прошивка |
| PCR 7 | Состояние Secure Boot (ключи, сертификаты) | Прошивка, shim |
Команда --tpm2-pcrs=0+7 означает: «выдать ключ только если PCR 0 и PCR 7 совпадают со значениями при записи». Обновил прошивку, PCR 0 изменился. Диск не откроется автоматически, придётся ввести пароль.
Список всех текущих значений PCR:
systemd-analyze pcrs
Какие PCR выбирать на практике
0+7: минимальный набор. Проверяет прошивку и Secure Boot.7+11: вариант BitLocker. PCR 11 хеш cmdline ядра (при использовании UKI).7+15: привязка к LUKS-тому. PCR 15 меняется после раскрытия диска, ключ становится недоступен после первой разблокировки.
Менять PCR после записи TPM-ключа: плохая идея. Если значения изменились, TPM не выдаст ключ, и диск откроется только паролем. Если пароль забыл, данные потеряны.
Что НЕ надо делать с TPM
Не шифровать диск только TPM-ключом без пароля. Потеря железа (материнка сгорела, украдена) = потеря данных навсегда. Пароль или recovery key: обязательный fallback.
Не добавлять много PCR без понимания последствий. Чем больше привязок, тем выше шанс, что система не откроет диск после безобидного обновления. Начни с 0+7, потом докрутишь.
Не обновлять прошивку без понимания PCR. Обновление UEFI меняет PCR 0, и TPM-ключ перестанет работать. Не критично: пароль спасёт, но неприятно.
Не полагаться на TPM как на замену хорошей разметке диска. TPM: дополнительный слой. Базовая защита это всё ещё правильная разметка GPT с LUKS.
Отзыв TPM-ключа
Если TPM-ключ нужно отозвать (продал машину, сменил прошивку):
sudo systemd-cryptenroll /dev/sdaX --wipe-slot=tpm2
Ключ удаляется из LUKS-слота, TPM больше не раскроет диск. Пароль остаётся.
Частые вопросы
TPM заменяет пароль LUKS? Нет. TPM добавляет ещё один способ раскрыть диск: автоматический, при правильном состоянии загрузки. Пароль остаётся в отдельном слоте как fallback.
Что будет, если обновить прошивку? PCR 0 изменится, TPM-ключ не сработает. Диск откроется паролем, после чего ключ можно перезаписать заново.
TPM на ноутбуке тот же? Да. На большинстве ноутбуков TPM: fTPM (AMD) или PTT (Intel), программная реализация в прошивке. Работает так же, как дискретный чип.
Стоит ли включать PCR 15? Для корневого раздела: да. PCR 15 меняется после раскрытия LUKS, что предотвращает повторное использование ключа злоумышленником. Требует настройки initramfs и GPT-автомонтирования.
Можно ли использовать TPM и keyfile одновременно? Да, это штатный режим. TPM-ключ в одном слоте, keyfile в другом. Работают независимо.
Заключение
TPM 2.0 на Arch Linux не экзотика, а штатная фича systemd. Проверил наличие чипа, установил tpm2-tools, записал ключ через systemd-cryptenroll, и диск раскрывается сам при загрузке. Пароль остаётся запасным вариантом. Главное: понимать PCR: обновил прошивку, забыл пароль, потерял диск. TPM не волшебная палочка, но удобный инструмент, если знаешь, как с ним обращаться.
Полезные ресурсы
- Trusted_Platform_Module. ArchWiki: проверка TPM, PCR, LUKS, SSH, GnuPG
- Systemd-cryptenroll. ArchWiki: запись TPM/FIDO2/паролей в LUKS2-слоты
- Secure Boot на Arch. PCR 7 меняется при включении Secure Boot, разблокировка может сломаться
Не получилось? Поможем настроить
Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Комментарии