В этом руководстве описываются требования к реализации и настройке для поддержки 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) и/или образов виртуальных машин

Использование модуля vTPM может быть запрошено на сервере через дополнительные спецификации типоразмера или как свойства метаданных образа будущей виртуальной машины. Поддерживаются две версии - 1.2 и 2.0 - и две модели - Спецификация интерфейса TPM (TIS) и буфер командного ответа (CRB). Модель CRB поддерживается только с версией 2.0.

Ограничения:

  • Поддерживаются только серверные операции, выполняемые владельцем сервера, так как для разблокировки файлов виртуального устройства на хосте требуются учетные данные пользователя.
  • Миграция в режиме реального времени (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