В этом руководстве описываются требования к реализации и настройке для поддержки Virtual Trusted Platform Module (vTPM) v2.0 в гиперконвергентной инфраструктуре ОТВ эв3.
Что такое Virtual Trusted Platform Module (vTPM)
Trusted Platform Module (TPM) — это специализированный аппаратный чип на материнской плате компьютера, который предназначен для повышения его безопасности путем хранения криптографических ключей, используемых для шифрования и дешифрования.
vTPM v2.0 — это программная эмуляция традиционного чипа TPM 2.0. Она выполняет те же аппаратные функции безопасности, что и физический Trusted Platform Module, такие как аттестация, генерация ключей и случайных чисел, но без необходимости в физическом чипе TPM.
Решение vTPM ОТВ эв3 использует службу Barbican с открытым исходным кодом для управления шифрованием. Служба vTPM ОТВ эв3 может быть включена опционально на гипервизорах, входящих в тот или иной пул вычислительных ресурсов.
Поддерживаемые версии и модели TPM
Конфигурация Virtual TPM контролируется с помощью метаданных, которые можно применять на уровне образа виртуальной машины. vTPM ОТВ эв3 в настоящее время поддерживает TPM версии 1.2 и 2.0
Включение vTPM:
- Необходимо развертывание службы управления ключами, такой как barbican, которая должна быть настроена для хранения секретов ключей, используемых для шифрования файлов виртуального устройства.
- Наличие на гипервизорах пакета swtpm, обеспечивающего эмуляцию TPM версий 1.2 и 2.0, а также связанные с этим пакетом библиотек.
- Установить параметр libvirt.swtpm_enabled конфигурации значение равное True. Это обеспечит включение поддержки обеих версий TPM - 1.2 и 2.0.
Настройка типоразмеров (flavor) и/или образов виртуальных машин
Ограничения:
- Поддерживаются только серверные операции, выполняемые владельцем сервера, так как для разблокировки файлов виртуального устройства на хосте требуются учетные данные пользователя.
- Миграция в режиме реального времени (live migration), эвакуация и высокая доступность серверов с загруженным модулем vTPM в настоящее время не поддерживаются.
Некоторые аспекты безопасности
С аппаратным TPM корнем доверия является секретный ключ, известный только пользователю TPM. Напротив, эмулированный TPM состоит из файла на диске, к которому демон libvirt должен иметь доступ. Этот файл шифруется с помощью парольной фразы, хранящейся в службе управления ключами. Фраза в менеджере ключей связана с учетными данными владельца сервера (пользователя, который изначально его создал). Пароль извлекается и используется демоном libvirt для разблокировки.
Хотя описанный выше механизм использует secret libvirt, который является одновременно частным (не может быть отображен через API libvirt или virsh) и эфемерным (существует только в памяти, а не на диске), теоретически пользователь с достаточными привилегиями может получить этот secret и/или данные vTPM из памяти.
Источники:
https://trustedcomputinggroup.org/resource/pc-client-work-group-pc-client-specific-tpm-interface-specification-tis/ https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/ https://qemu.readthedocs.io/en/latest/specs/tpm.html https://libvirt.org/formatdomain.html#elementsTpm https://libvirt.org/formatsecret.html#vTPMUsageType