Virtual TPM - заметки по настройке

Trusted Platform Module (TPM) — это специализированный аппаратный чип на материнской плате компьютера, который предназначен для повышения его безопасности путем хранения криптографических ключей, используемых для шифрования и дешифрования. vTPM v2.0 — это программная эмуляция традиционного чипа TPM 2.0. Она выполняет те же аппаратные функции безопасности, что и физический модуль TPM, такие как аттестация, генерация ключей и случайных чисел программным способом.

TPM module

Включение TPM

Конфигурация Virtual TPM контролируется с помощью метаданных, которые можно применять на уровне образа виртуальной машины. В настоящее время поддерживаются две версии TPM: 1.2 и 2.0 Для того, чтобы TPM заработал в Openstack, необходимо, для управления шифрованием, предварительно настроить службу Barbican . Служба vTPM может быть включена опционально на некоторых гипервизорах (агрегатах). Кроме того, для обеспечения эмуляции TPM, необходимо на вычислительных узлах установить пакет swtpm. Для включения поддержки программной эмуляции модуля TPM, необходимо в конфигурационном файле nova.conf на гипервизоре в секции [libvirt] установить swtpm_enabled = True.

Настройка образов виртуальных машин

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

Метаданные типоразмера Метаданные образа Описание
hw:tpm_version hw_tpm_version Необходимо указать версию TPM.
hw:tpm_model hw_tpm_model Необходимо указать модель TPM: tpm-tis (по умолчанию) или tpm-crb.

Ограничения и аспекты безопасности

Поддерживаются только серверные операции, выполняемые владельцем сервера, так как для разблокировки файлов виртуального устройства на хосте требуются учетные данные пользователя. Миграция в режиме реального времени (live migration), эвакуация и высокая доступность серверов с загруженным модулем vTPM в настоящее время не поддерживаются. С аппаратным TPM корнем доверия является секретный ключ, известный только пользователю TPM. Напротив, эмулированный TPM представляет собой файл на диске, к которому демон libvirt должен иметь доступ. Этот файл шифруется с помощью парольной фразы, хранящейся в службе управления ключами. Фраза в менеджере ключей связана с учетными данными владельца сервера (пользователя, который изначально его создал). Пароль извлекается и используется демоном libvirt для разблокировки. Хотя описанный выше механизм использует secret libvirt, который является одновременно частным (не может быть отображен через API libvirt или virsh) и эфемерным (существует только в памяти, а не на диске), теоретически пользователь с достаточными привилегиями может получить этот secret и/или данные vTPM из памяти.

Опубликовано: 20.11.2025