Шифрование дисков ВМ на уровне ОС ВМ (vTPM + Full Disk Encryption)

Платформа виртуализации поддерживает vTPM-устройства. vTPM — виртуальное исполнение TPM-криптопроцессоров. TPM-криптопроцессоры выполняют функции генераторов случайных чисел и отвечают за безопасное хранение ключей.

С vTPM безопасное хранение ключей обеспечивает гипервизор, который записывает ключи в файл .NVRAM ВМ. Файл зашифрован с использованием шифрования ВМ.

Для полного шифрования дисков можно воспользоваться возможностями шифрования самих гостевых ОС с помощью специализированных утилит, например BitLocker или LUKS. При шифровании ОС нужно вводить парольную фразы для расшифровки дисков при каждом включении или перезагрузке ОС. Для более удобного администрирования рекомендуется воспользоваться связкой vTPM + BitLocker/LUKS.

vTPM обеспечивает безопасное хранение ключей. Гостевая ОС загружается автоматически и разблокирует диски с помощью ключей в vTPM.

При включении vTPM для ВМ данные vTPM хранятся в домашнем каталоге ВМ, в конфигурационном файле .NVRAM. Данные vTPM шифруются средствами виртуализации вместе с файлами конфигурации, связанными с ВМ. Файлы конфигурации содержат данные и метаданные ВМ, но не являются файлами виртуального диска VMDK.

../_images/sch__os-encryption.png

Требования для включения vTPM

Требования к ВМ
  • EFI firmware

  • Версия виртуального оборудования (VM hardware version) не ниже 14

  • Во время настройки шифрования ВМ должна быть выключенна и не иметь снапшотов

Поддерживаемые гостевые ОС
  • Linux

  • Windows Server 2008 и позднее

  • Windows 7 и позднее

Права

Наличие прав Cryptographic operations.Encrypt new

Настройка ВМ с vTPM

Создайте новую ВМ со следующими параметрами:

  1. Выберите конфигурацию с загрузчиком EFI.

    Появится возможность включения vTPM.

  2. В таблице Storage, в поле Storage Policy, оставьте политику без шифрования дисков.

  3. В поле Storage Policy после таблицы выберите общую политику с шифрованием.

При такой конфигурации шифрование конфигурационных файлов ВМ обеспечивается на уровне средств виртуализации, шифрование дисков — на уровне ОС.

../_images/s__edit-vm.png

Windows Server

  1. Установите ОС.

  2. Убедитесь, что в списке Features включена функция BitLocker.

    При необходимости установите компонент BitLocker:

../_images/s__windows-server-features.png
  1. Перейдите в панель управления BitLocker через Control Panel → All Control Panel Items → BitLocker Drive Ecnryption и включите BitLocker.

  2. Включите шифрование дисков в ОС.

  3. Чтобы проверить статус, в cmd выполните manage-bde -status.

Linux

В зависимости от версии ОС Linux шаги по настройке шифрования на уровне ОС могут отличаться.

Установка ОС

Установите ОС, выполнив одно из следующих действий:

  • в управлении разделами (Partition) жестких дисков выберите вариант с возможностью шифрования дисков;

  • убедитесь, что создан раздел с поддержкой шифрования на уровне ОС.

Реализация дешифрации дисков

Для реализации автоматической дешифрации зашифрованных дисков при загрузке ОС выполните следующие действия:

  1. Установите компоненты clevis выполнив команду apt install clevis-tpm2 clevis-luks clevis-dracut.

  2. Восстановите образ iniramfs с модулями clevis выполнив команду dracut -f /boot/initrd.img-$(uname -r).

    Команда выполняется один раз и расшифровывает корневую файловую систему во время ранней загрузки.

  3. Протестируйте модуль шифрования TPM:

    echo Hello World! | clevis encrypt tpm2 '{}' > test.txt
    сat test.txt eyJhbGciOiJkaXIiLCJjbGV2aXMiOnsicGluIjoidHBtMiIsInRwbTIiOnsiaGFzaCI6InNoYTI ...
    cat test.txt | clevis decrypt tpm2
    Hello World!

    В примере фраза Hello World! шифруется и записывается в test.txt.

  4. Для соответствующего раздела дискового пространства привяжите к LUKS главный ключ, сгенерированный TPM.

    Существует специальный набор регистров конфигурации платформы (PCR), который называется PCR7.

    cryptsetup luksDump /dev/sda3
    clevis luks bind -d /dev/sda3 tpm2 '{"pcr_ids":"7"}'
    Enter existing LUKS password: ******
  5. Проверьте, записан ли новый ключ на LUKS выполнив команду cryptsetup luksDump /dev/sda3.

  6. Перезагрузите ВМ выполнив команду reboot.

    При загрузке зашифрованный диск автоматически расшифровывается. Вы увидите приглашение для входа в систему.

Облако VMware