Дешифрование томов LUKS на одном жестком диске на нескольких машинах с TPM2

Содержание
  1. Вопрос или проблема
  2. ПРОЦЕДУРА НАСТРОЙКИ TPM2 (RHEL 9.4)
  3. 1) УБЕДИТЕСЬ, ЧТО TPM2 ВКЛЮЧЕН В BIOS:
  4. 2) УБЕДИТЕСЬ, ЧТО ЗАЩИЩЕННЫЙ ЗАПУСК ВКЛЮЧЕН В BIOS:
  5. 3) УБЕДИТЕСЬ, ЧТО МИКРОЧИП TPM2 ДОСТУПЕН:
  6. 4) УБЕДИТЕСЬ, ЧТО ЗАЩИЩЕННЫЙ ЗАПУСК ВКЛЮЧЕН:
  7. 5) УСТАНОВИТЕ ВСЕ НЕОБХОДИМЫЕ ПОДПАКЕТЫ:
  8. 6) ОПРЕДЕЛИТЕ TOM LUKS-ЗАШИФРОВАННЫЕ:
  9. 7) ОПРЕДЕЛИТЕ РЕГИСТРЫ КОНФИГУРАЦИИ ПЛАТФОРМЫ (PCR), КОТОРЫЕ БУДУТ ИСПОЛЬЗОВАТЬСЯ:
  10. 8) ПРИВЯЗАТЬ TOM К УСТРОЙСТВУ TPM 2.0 С ПОМОЩЬЮ КОМАНДЫ CLEVIS LUKS BIND:
  11. 9) ИСПОЛЬЗУЙТЕ SYSTEMD-CRYPTENROLL, ЧТОБЫ ЗАРЕГИСТРИРОВАТЬ УСТРОЙСТВА БЕЗОПАСНОСТИ HARDWARE TPM2 В LUKS2 ЗАШИФРОВАННЫХ TOMах:
  12. 10) ОТРЕДАКТИРУЙТЕ ФАЙЛ КОНФИГУРАЦИИ CRYPTTAB:
  13. 11) ВКЛЮЧИТЬ СИСТЕМУ РАННЕГО ЗАПУСКА, ЧТОБЫ ОБРАБОТАТЬ ПРИВЯЗКУ ДИСКА (РЕГЕНЕРИРОВАТЬ INITRAMFS):
  14. Ответ или решение
  15. Дешифровка LUKS-тома на двух компьютерах с TPM2: Как настроить
  16. Настройка нескольких TPM устройств
  17. Шаг 1. Добавление дополнительных пинов Clevis
  18. Шаг 2. Управление ключевыми слотами
  19. Шаг 3. Обновление конфигураций
  20. Шаг 4. Генерация нового initramfs
  21. Заключение

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

Я пытаюсь настроить один жесткий диск для автоматического расшифрования на 2 разных машинах с чипами TPM2. Все машины работают в оффлайн-режиме и не позволяют настроить сервер Tang.

Я успешно расшифровываю том LUKS на одной машине, используя чип TPM2. Процедура, которую я следовал:

ПРОЦЕДУРА НАСТРОЙКИ TPM2 (RHEL 9.4)

1) УБЕДИТЕСЬ, ЧТО TPM2 ВКЛЮЧЕН В BIOS:

Запустите настройки BIOS, перейдите в меню Advanced -> Trusted Computing:

TPM 2.0 Устройство найдено
Версия прошивки:           7.85
Производитель:                     IFX

Поддержка устройства безопасности     [Включено]
Активные банки PCR            SHA-1, SHA-256
Доступные банки PCR         SHA-1, SHA-256

SHA-1 PCR Банк              [Включен]
SHA-256 PCR Банк            [Включен]

Ожидаемая операция           [Нет]
Иерархия платформы          [Включена]
Иерархия хранения           [Включена]
Иерархия одобрения         [Включена]
PH Радиализация            [Отключена]
СуперМикро BIOS-основанное предоставление TPM     [Отключено]

Поддержка
    TXT Поддержка             [Отключена]

2) УБЕДИТЕСЬ, ЧТО ЗАЩИЩЕННЫЙ ЗАПУСК ВКЛЮЧЕН В BIOS:

Запустите настройки BIOS, перейдите в меню Security -> Secure Boot

Режим системы                 Развернут
Защищенный запуск                 Активен

Защищенный запуск                 [Включен]

Режим защищенного запуска            [Стандартный]
Поддержка CSM                 [Отключена]

3) УБЕДИТЕСЬ, ЧТО МИКРОЧИП TPM2 ДОСТУПЕН:

dmesg | grep -i tpm
journalctl -k --grep=tpm
tpm2_pcrread
ls /dev/tpm*

4) УБЕДИТЕСЬ, ЧТО ЗАЩИЩЕННЫЙ ЗАПУСК ВКЛЮЧЕН:

dmesg | grep -i secure  

5) УСТАНОВИТЕ ВСЕ НЕОБХОДИМЫЕ ПОДПАКЕТЫ:

clevis-luks
clevis-dracut
systemd-cryptenroll

6) ОПРЕДЕЛИТЕ TOM LUKS-ЗАШИФРОВАННЫЕ:

lsblk
ll /dev/mapper

7) ОПРЕДЕЛИТЕ РЕГИСТРЫ КОНФИГУРАЦИИ ПЛАТФОРМЫ (PCR), КОТОРЫЕ БУДУТ ИСПОЛЬЗОВАТЬСЯ:

[uapi-group.org/specifications/specs/linux_tpm_pcr_registry/][1]

Примечание: Для наших целей мы выбрали ID PCR 1,3,4,5,7. Если вы решите использовать PCR 9, вам нужно будет перепривязать при использовании dracut для регенерации initramfs.

8) ПРИВЯЗАТЬ TOM К УСТРОЙСТВУ TPM 2.0 С ПОМОЩЬЮ КОМАНДЫ CLEVIS LUKS BIND:

clevis luks bind -d /dev/sda2 tpm2 '{"hash":"sha256","key":"rsa","pcr_bank":"sha256","pcr_ids":"1,3,4,5,7"}'
*Введите существующий пароль LUKS*

Примечание: Проверьте с помощью следующей команды:
clevis luks list -d /dev/sda2

9) ИСПОЛЬЗУЙТЕ SYSTEMD-CRYPTENROLL, ЧТОБЫ ЗАРЕГИСТРИРОВАТЬ УСТРОЙСТВА БЕЗОПАСНОСТИ HARDWARE TPM2 В LUKS2 ЗАШИФРОВАННЫХ TOMах:

systemd-cryptenroll /dev/sda2 --tpm2-device=auto --tpm2-pcrs=1+3+4+5+7
*Введите существующий пароль LUKS*

10) ОТРЕДАКТИРУЙТЕ ФАЙЛ КОНФИГУРАЦИИ CRYPTTAB:

vim /etc/crypttab

Примечание: Формат должен быть следующим для всех разделов:
luks-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none luks,tpm2-device=auto,tpm2-pcrs=1+3+4+5+7

11) ВКЛЮЧИТЬ СИСТЕМУ РАННЕГО ЗАПУСКА, ЧТОБЫ ОБРАБОТАТЬ ПРИВЯЗКУ ДИСКА (РЕГЕНЕРИРОВАТЬ INITRAMFS):

dracut -fv --regenerate-all

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

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

Дешифровка LUKS-тома на двух компьютерах с TPM2: Как настроить

Введение

Ваша задача по настройке одного жесткого диска для автоматического дешифрования на двух различных машинах с модулями TPM2 является сложной, но осуществимой. В данной статье мы рассмотрим, как добавление нескольких пинов Clevis или ключевых слотов может позволить вам использовать разные TPM-устройства для доступа к вашему LUKS-шифрованному объему.

Настройка нескольких TPM устройств

Чтобы ваш LUKS-том мог дешифроваться на нескольких машинах, необходимо использовать дополнительные PIN-коды или идентификаторы ключевых слотов. Процесс включает несколько этапов.

Шаг 1. Добавление дополнительных пинов Clevis

Каждый компьютер с TPM может иметь свой собственный Clevis PIN для взаимодействия с LUKS-томом. Чтобы добавить новый PIN, выполните следующую команду на дополнительной машине, используя существующий LUKS-пароль:

clevis luks bind -d /dev/sda2 tpm2 '{"hash":"sha256","key":"rsa","pcr_bank":"sha256","pcr_ids":"1,3,4,5,7"}'

Проверьте, что пин был добавлен успешно:

clevis luks list -d /dev/sda2

И каждый раз, когда вы добавляете новый пин, LUKS-том будет шифроваться так, чтобы каждый TPM мог разблокировать его.

Шаг 2. Управление ключевыми слотами

Вы можете добавить до 8 слотов ключей в LUKS. Каждый слотов может быть связан с другим TPM или даже другим методом дешифрования. Чтобы управлять ключевыми слотами, воспользуйтесь следующими командами:

  1. Просмотр текущих слотов:

    cryptsetup luksDump /dev/sda2

    Здесь вы увидите, какие слоты уже использованы.

  2. Добавление новых слотов:

    Используйте команду cryptsetup для добавления слота:

    cryptsetup luksAddKey /dev/sda2

    Введите новый ключ для добавления, когда будет предложено.

  3. Удаление слотов:

    Если необходимо удалить ключ, используйте:

    cryptsetup luksRemoveKey /dev/sda2

    Вводите старый ключ, который вы хотите удалить.

Шаг 3. Обновление конфигураций

После добавления новых пинов или ключевых слотов убедитесь, что конфигурация в /etc/crypttab проверена, чтобы включить правильные параметры для всех подключаемых устройств TPM.

vim /etc/crypttab

Проверьте, чтобы строки активно отражали все необходимые соединения с TPM.

Шаг 4. Генерация нового initramfs

После внесения всех изменений обязательно выполните команду для генерации нового initramfs:

dracut -fv --regenerate-all

Это обновит конфигурацию системы, чтобы она могла видеть все токены TPM.

Заключение

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

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

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