Шифрование дисков ВМ на уровне ОС ВМ (vTPM + Full Disk Encryption)
Платформа виртуализации поддерживает vTPM-устройства. vTPM — виртуальное исполнение TPM-криптопроцессоров. TPM-криптопроцессоры выполняют функции генераторов случайных чисел и отвечают за безопасное хранение ключей.
С vTPM безопасное хранение ключей обеспечивает гипервизор, который записывает ключи в файл .NVRAM ВМ. Файл зашифрован с использованием шифрования ВМ.
Для полного шифрования дисков можно воспользоваться возможностями шифрования самих гостевых ОС с помощью специализированных утилит, например BitLocker или LUKS. При шифровании ОС нужно вводить парольную фразы для расшифровки дисков при каждом включении или перезагрузке ОС. Для более удобного администрирования рекомендуется воспользоваться связкой vTPM + BitLocker/LUKS.
vTPM обеспечивает безопасное хранение ключей. Гостевая ОС загружается автоматически и разблокирует диски с помощью ключей в vTPM.
При включении vTPM для ВМ данные vTPM хранятся в домашнем каталоге ВМ, в конфигурационном файле .NVRAM. Данные vTPM шифруются средствами виртуализации вместе с файлами конфигурации, связанными с ВМ. Файлы конфигурации содержат данные и метаданные ВМ, но не являются файлами виртуального диска VMDK.

Требования для включения vTPM
- Требования к ВМ
EFI firmware
Версия виртуального оборудования (VM hardware version) не ниже 14
Во время настройки шифрования ВМ должна быть выключенна и не иметь снапшотов
- Поддерживаемые гостевые ОС
Linux
Windows Server 2008 и позднее
Windows 7 и позднее
- Права
Наличие прав Cryptographic operations.Encrypt new
Настройка ВМ с vTPM
Создайте новую ВМ со следующими параметрами:
Выберите конфигурацию с загрузчиком EFI.
Появится возможность включения vTPM.
В таблице Storage, в поле Storage Policy, оставьте политику без шифрования дисков.
В поле Storage Policy после таблицы выберите общую политику с шифрованием.
При такой конфигурации шифрование конфигурационных файлов ВМ обеспечивается на уровне средств виртуализации, шифрование дисков — на уровне ОС.

Windows Server
Установите ОС.
Убедитесь, что в списке Features включена функция BitLocker.
При необходимости установите компонент BitLocker:

Перейдите в панель управления BitLocker через Control Panel → All Control Panel Items → BitLocker Drive Ecnryption и включите BitLocker.
Включите шифрование дисков в ОС.
Чтобы проверить статус, в cmd выполните manage-bde -status.
Linux
В зависимости от версии ОС Linux шаги по настройке шифрования на уровне ОС могут отличаться.
- Установка ОС
в управлении разделами (Partition) жестких дисков выберите вариант с возможностью шифрования дисков;
убедитесь, что создан раздел с поддержкой шифрования на уровне ОС.
- Реализация дешифрации дисков
Установите компоненты clevis выполнив команду apt install clevis-tpm2 clevis-luks clevis-dracut.
Восстановите образ iniramfs с модулями clevis выполнив команду dracut -f /boot/initrd.img-$(uname -r).
Команда выполняется один раз и расшифровывает корневую файловую систему во время ранней загрузки.
Протестируйте модуль шифрования TPM:
echo Hello World! | clevis encrypt tpm2 '{}' > test.txtсat test.txt eyJhbGciOiJkaXIiLCJjbGV2aXMiOnsicGluIjoidHBtMiIsInRwbTIiOnsiaGFzaCI6InNoYTI ...cat test.txt | clevis decrypt tpm2Hello World!В примере фраза Hello World! шифруется и записывается в test.txt.
Для соответствующего раздела дискового пространства привяжите к LUKS главный ключ, сгенерированный TPM.
Существует специальный набор регистров конфигурации платформы (PCR), который называется PCR7.
cryptsetup luksDump /dev/sda3clevis luks bind -d /dev/sda3 tpm2 '{"pcr_ids":"7"}'Enter existing LUKS password: ******Проверьте, записан ли новый ключ на LUKS выполнив команду cryptsetup luksDump /dev/sda3.
Перезагрузите ВМ выполнив команду reboot.
При загрузке зашифрованный диск автоматически расшифровывается. Вы увидите приглашение для входа в систему.
Установите ОС, выполнив одно из следующих действий:
Для реализации автоматической дешифрации зашифрованных дисков при загрузке ОС выполните следующие действия:
- Требования для включения vTPM
- Windows Server
- Linux