30.6.6. Доверенный платформенный модуль (TPM)
TPM (англ. Trusted Platform Module) — спецификация, описывающая криптопроцессор, предназначенный для безопасного хранения криптографических ключей и выполнения криптографических операций. Термин также используется как обобщённое наименование реализаций данной спецификации (например, аппаратный чип TPM или программная реализация).
Виртуальный TPM может быть добавлен:
Состояние TPM может храниться в разных форматах. Использование формата qcow2 позволяет:
создавать снапшоты ВМ с TPM;
использовать файловые хранилища (например, NFS или CIFS);
применять механизм Snapshots as Volume Chains (технология в статусе preview).
Добавление TPM в веб-интерфейсе выполняется через меню → :
Параметры TPM нельзя изменить после создания — его можно только удалить.
Команда добавления TPM:
# qm set <vm_id> -tpmstate0 [file=]<volume>[,format=<raw|qcow2|vmdk>][,import-from=<source volume>][,size=<размер диска>][,version=<v1.2|v2.0>]
где:
<volume> — существующий или новый том в формате STORAGE_ID:SIZE_IN_GiB (например, nfs-storage:1);
format — формат хранения состояния TPM (raw, qcow2, vmdk);
import-from — импорт состояния TPM из существующего тома;
size — размер тома (фактически игнорируется, используется фиксированный размер 4 MiB);
version — версия TPM (v1.2 или v2.0).
При создании нового тома используется синтаксис STORAGE_ID:SIZE_IN_GiB, где:
STORAGE_ID — хранилище, в котором будет создан том для хранения состояния TPM;
SIZE_IN_GiB — указываемый размер (фактически игнорируется, используется фиксированный размер 4 MiB).
Фактический размер тома состояния TPM всегда составляет 4 MiB.
При создании нового тома используйте синтаксис STORAGE_ID:SIZE, например:
# qm set 104 --tpmstate0 nfs-storage:1,format=qcow2,version=v2.0
Для импорта существующего состояния укажите размер 0 и параметр
import-from:
# qm set 104 --tpmstate0 local:0,import-from=local:existing-tpm-state
По сравнению с физическим TPM, эмулируемый TPM не обеспечивает аппаратной защиты ключей. Его состояние хранится в обычном томе хранилища, поэтому пользователь с доступом к данному хранилищу на уровне хоста теоретически может изменить соответствующие данные.
Некоторые гостевые ОС (например, Windows 11) требуют TPM 2.0 для установки и корректной работы.