Полное шифрование диска на LUKS это признание де-факто, но его ежедневная цена - пароль при каждом включении. TPM2 меняет картину: модуль на плате хранит ключ и отдаёт его только системе, загруженной с известными, неизменёнными компонентами. Вас больше не спрашивают пароль при старте, зато подменённый загрузчик не получит ничего. В статье разбираем практическую настройку через systemd-cryptenroll: подготовка, привязка к PCR, поведение при обновлении прошивки и ядер, и обязательный запасной план на случай сюрпризов.

Как это работает, измерения и печати доверия

При загрузке компоненты цепочки измеряются: прошивка хеширует себя и расширяет значения регистров PCR, загрузчик добавляет свои данные, ядро и initramfs свой след. TPM выдаёт секрет только если текущие значения совпадают с теми, при которых секрет записывался - механизм называется sealing к политике PCR. systemd-cryptenroll --tpm2-device auto с параметрами регистров записывает ключ в LUKS-слот, и загрузка происходит без вопросов, если ни одна мера не изменилась.

Политика не обязана включать все регистры подряд: обычно выбирают 0 (прошивка), 2 и 4 (загрузчик) и опционально 7 (Secure Boot). Любое изменение перечисленного, будь то обновление UEFI или смена ядра, отклоняет измерение, и система встречает вас паролем. Это и есть железная дисциплина, которую TPM приносит в дом - неудобство превентивное, но объяснимое.

Проверка модуля и записывание ключа

Сверка оборудования первая: systemd-cryptenroll --tpm2-device list покажет доступный TPM. На древних машинах TPM может быть версии 1.2 - она не годится, статья говорит о TPM2. Работы выполняются на шифрованном томе LUKS2: проверяется cryptsetup luksDump на предмет формата. Дальше команда записи выглядит так:

systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=0+2+4+7 /dev/nvme0n1p3

Процедура спросит существующий пароль тома для присоединения нового слота и затем запишет ключ в специальный слот под TPM. После этого стоит проверить слот: cryptsetup luksDump видно присутствие нового метода разблокировки, а bootctl покажет, какие инструменты отвечают за старт. Следующий старт произойдёт молча - машина пройдёт до логина сама.

Замечание для Fedora и systemd-boot составляющей: современный systemd стартует расшифровку через systemd-cryptsetup, и генерация initramfs должна включать dracut-модуль tpm2-tss или эквивалент, иначе ядро физически не видит TPM до тех пор, пока не поздно. В Debian mkinitramfs подхватывает всё само при наличии установленного пакета tpm2-tools.

Политика PCR, что выбирать и что меняется при обновлениях

Свободный список регистров это главное меню недели. Базовый рецепт: PCR 0, 2, 4, 7. Если используется обновление прошивок через fwupd, знайте: версия UEFI входит в PCR 0 и регулярно меняется при обновлениях - машина будет просить пароль после каждого апдейта прошивки, пока вы не перезапишете ключ. Сценарий для взрослых: отключаем PCR 0, живём только на 2, 4 и 7 - безопасность остаётся вменяемой, потому что Secure Boot по-прежнему контролирует, что подписано, а порядок компонентов фиксируется в других регистрах.

Практическая гигиена: держите под рукой пароль восстановления, и перед крупным обновлением (прошивка, смена ядра с новой цепочкой, замена загрузчика) делайте повторную привязку сразу после успешного старта новой конфигурации: systemd-cryptenroll --tpm2-device=auto --wipe-slot=tpm2 --tpm2-pcrs=0+2+4+7 потом заново enroll. Получается бесшовное перемещение секрета под новые измерения.

Запасные планы, что делать, когда TPM буянит

Правило номер один: LUKS-слот с паролем никогда не удаляется. Если TPM отказал, новый TPM не загружен, прошивка обновилась непрошенно - пароль всегда приведёт вас домой. Правило номер два: распечатать recovery key LUKS и хранить в конверте вне квартиры, притом отдельно от ноутбука, для почти непредставимых событий. Правило номер three: репетируйте отпирание паролем раз в несколько месяцев, чтобы мышечная память не стыла.

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

Диагностика, когда молчит

Если система неожиданно вернулась к паролю после старта - разбирательство короткое. Проверить загрузочную цепочку systemd-analyze pcrs и сопутствующими командами, посмотреть systemd-cryptenroll --tpm2-device list на вопрос видимости чипа, взглянуть journalctl -b -u systemd-cryptsetup за сообщением о несоответствии измерений. Обычно ответ лежит на поверхности: новая прошивка, изменённый Secure Boot или конвульсии версии shim. После каждой такой истории связка перезаписывается заново, и пароль снова уходит спать.

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

PCR и смысл каждого регистра на практике

Чтобы политика не была чёрным ящиком, стоит простым языком понять распределение. PCR 0 отражает прошивку и её конфигурацию; PCR 2 хранит измерения опциональных ROM и код расширений; PCR 4 фиксирует загрузчик первого уровня (тот, с которого началась загрузка); PCR 7 кодирует состояние Secure Boot, включая базы доверенных сертификатов. Политика 0+2+4+7 это противник почти любой подмены начальной загрузки; а политика без PCR 0 сохраняет защиту от подмены загрузчика, не прося вас перепривязывать ключ после каждого апдейта прошивки.

Полезно заглянуть в журнал расширений: systemd-analyze pcrs показывает последние значения, а комплект tpm2-tools умеет извлекать журнал измерений целиком. Эти сведения не нужны ежедневно, но в дни "почему не разблокировалось" именно они меняют расследование со жреческой материи на вопросы с ответами.

Обновление прошивки и ядер без потери доступа

Отработанный алгоритм маршрута обновления прост. Сначала ставится апдейт прошивки или ядра, машина перезагружается, TPM отказывается выдавать ключ, вводится пароль тома. Затем не забываем сделать главное: пере-привязку - systemd-cryptenroll с ключом --wipe-slot=tpm2 вычищает старую запись, и следом команда записи с новой политикой создаёт свежий слот. С сегодняшнего дня обновления перестают быть приключением: каждый ребут проходит пароль один раз, и после обновления связки всё снова молчит.

Если обновления ядер летят часто, уменьшайте охват регистров: 2+4+7 без прошивки сохраняет защиту от подменённого загрузчика и спокойно пропускает обновления микрокода, а PCR 0 добавляют те, чьи угрозы включают подмену самой прошивки. Такой выбор - вопрос модели угроз, а не универсальной догмы.

Особенные темы, clevis, Tang и диски для серверов

Для безлюдных серверов существует альтернатива: clevis с плагином tang осуществляет сетевую выдачу ключа, и диск раскрывается по ответу сервера в доверенной сети. Подход решает датацентровую проблему "как перезагрузиться без человека", но тогда ключ доступен любому, кто оказался в вашей сети, и защиту от диска в кармане это не даёт. Домашнему хранилищу под столом удачнее простой TPM, а машине в чужом зале честнее полный пароль и удалённая консоль, - каждой задаче своё орудие.

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

Финальные замечания по внедрению

Рецепт занимает вечер: проверить модуль, прописать нужные PCR, записать слот, перезагрузиться, посмотреть молчание. После первого бесшумного старта большинство людей уже не хотят возвращаться к паролям, и это верный знак: хорошая безопасность должна быть такой - чинной, незаметной и совершенно неоглядной. Храните recovery-ключ отдельно, репетируйте ввод пароля раз в сезон и спите на диске спокойно.

Частые ловушки, на которых спотыкаются все

Первая ловушка это забытость: passphrase уходит глубоко в памятку, а при первом сбое TPM его вдруг никто не помнит. Противоядие обычное - записывать recovery-ключ и научиться вводить пароль диска раз-два в год. Вторая ловушка: аутентификация привязана к PCR, коих поменял абсолютно всё - даже перевод опции - и владелец вынужден постоянно пере-привязывать. Здесь рецепт - держать минимальный набор регистров осознанно, и именно осознанность отличает систему на верность себе от слепого дефолта.

Третья ловушка: TPM отключён в прошивке или же находится в режиме, смешанном с чужим софтом. В настройках UEFI встречаются пункты вроде Intel PTT или AMD fTPM, и их состояние надо проверить до начала процедуры. Четвёртая: у некоторых ноутбуков после отключения батареи сбрасывается TPM, и стратегия осторожного пользователя предполагает такое раз в год - скептически, но с историей успеха.

Памятка финального контура

Короткое правило перед сном: проверить слоты тома командой luksDump, убедиться, что парольный слот жив, и что TPM-слот записан. Проверить, что в ответ на старт система молчит. Убедиться, что ключ восстановления напечатан и закрыт в сейфе у родственников или просто в сейфе. После этого можно завернуть статью и не возвращаться к ней три года: именно столько обычно и живёт настройка, переживая обновления дистрибутива и перестановки памяти.

Домашняя лаборатория и ноутбук, где граница применимости

На домашнем сервере круглосуточного включения TPM-разблокировка бесценна: электричество моргнуло, машина моргнула следом и вернулась в строй без вашего участия, потому что секрет живёт в кремнии на материнской плате. На ноутбуке, который носится по кафе, TPM решает другую задачу: краутер с украденным устройством получит машину, просящую пароль, потому что несанкционированный загрузочный набор не пройдёт измерений, и данные останутся вашими. Эти две ситуации часто путают, а между ними пролегает очень содержательная граница: TPM защищает от подмены загрузки, а не от того, что устройство вообще попадает в чужие руки.

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

Именно с таким набором решений модуль TPM перестаёт быть загадочным словом из спецификации ноутбука и становится ежедневным союзником: стартует быстро, спрашивает редко, защищает всегда - и это та самая цена, за которую стоило разбираться в политиках PCR один четверг вечером.

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

И, что немаловажно, вся схема строится из штатных компонентов системы: здесь нет сторонних агентов и экспериментального кода - только LUKS, TPM и systemd, которым доверяют уже достаточно, чтобы позволить им заботиться о вашем диске каждое утро.
На этом история закончена.
И пусть так и будет всегда.
Именно так.
Всё.
Конец.
Всё сказанное.
Готово.
Итог.
Пусть ваш ноутбук стартует без паролей честно и надёжно.