密钥管理与 vTPM 保护

ZSphere 支持通过外部密钥管理服务(KMS)或内置密钥提供程序(NKP),为虚拟可信平台模块(vTPM)的状态加密提供密钥,降低 TPM 状态文件离线泄露的风险。两种方式使用相同的虚拟机保护流程,主要区别在于密钥来源、管理方式和恢复要求。

已有统一密钥管理体系的环境可以接入外部 KMS;未部署外部服务的环境可以使用 NKP。vTPM 为虚拟机操作系统提供可信计算能力,BitLocker 等操作系统功能可据此实施磁盘保护,但接入密钥提供程序不会自动为虚拟机启用 TPM,也不会自动加密系统盘或数据盘。

密钥提供方式

标准密钥提供程序通过 KMIP 对接外部 KMS,内置密钥提供程序由平台本地后端提供密钥。两种方式的主要区别如下:

比较项 标准密钥提供程序(外部 KMS) 内置密钥提供程序(NKP)
密钥来源 通过 KMIP 从外部密钥管理服务创建或取得资源密钥。 通过平台本地后端管理密钥。
接入与运行依赖 需要配置服务地址、端口、协议版本、客户端身份和服务端信任材料,并保持外部服务可达。 由平台初始化密钥后端并维护密钥版本,依赖平台根密钥材料及管理节点间的同步。
备份与恢复 外部密钥的备份与高可用由 KMS 产品的部署方案保障。 支持独立备份和恢复,可为备份文件设置保护密码。
安全边界 密钥管理可接入独立管理体系,平台仍需取得并使用资源密钥。 密钥位于平台管理域内,其保护依赖平台及根密钥材料的安全性。

架构与工作机制

管理服务通过统一的资源密钥接口,为 vTPM 建立密钥引用,并将指定密钥提供程序的资源密钥交给主机使用。KMS 和 NKP 的密钥来源不同,后续的主机身份校验、密钥下发和 TPM 状态保护流程相同。

图 1. KMS 与 NKP 共用的 vTPM 密钥保护流程

管理服务通过 key-tool 从 KMS 或 NKP 取得资源密钥,校验主机身份并封装下发,由主机侧组件保护 TPM 状态。
  1. 管理节点通过 key-tool 从指定提供程序创建或取得资源密钥。外部 KMS 使用 KMIP 后端,NKP 使用平台本地后端。
  2. 下发密钥前,管理服务检查目标主机的公钥和指纹校验状态,并使用 HPKE 封装资源密钥。
  3. 主机侧的 KVM Agent 和 key-agent 配合准备 libvirt Secret,供 TPM 后端使用。
  4. swtpm 使用密钥保护 TPM 后端状态,虚拟机操作系统通过 vTPM 设备使用可信计算能力,无需直接访问 KMS 或 NKP。

虚拟机生命周期中的密钥保护

vTPM 状态、密钥引用和提供程序中的密钥需要保持匹配。虚拟机在创建、启动、迁移和恢复等环节,由平台准备相应的密钥和主机侧资源。

生命周期环节 保护机制与要求
创建与启用 为 vTPM 指定密钥提供程序;未显式指定时,可使用默认提供程序。外部 KMS 需要准备认证和信任材料。NKP 创建时初始化本地后端并同步根密钥,初始备份状态为未备份,建议投入使用前完成独立备份。
启动与重启 平台检查主机已有的 Secret,可用时复用;否则从密钥提供程序取得资源密钥并下发。虚拟机操作系统内的重启与平台重新启动虚拟机进程涉及的密钥准备过程不同。
迁移 平台在目标主机准备已有资源对应的密钥和 Secret。迁移时需要保持 TPM 状态与密钥引用匹配。
快照与克隆 创建和恢复快照时,需保持 TPM 状态和密钥引用匹配。克隆时若重置 TPM,虚拟机操作系统中绑定原 TPM 的凭据需要按操作系统要求恢复或重新绑定。
备份与恢复 虚拟机备份包含 TPM 状态和密钥引用信息,但不能替代密钥提供程序自身的备份。KMS 恢复后需确保原密钥仍可访问;NKP 恢复需使用原提供程序的备份,恢复其根密钥和元数据。重新创建同名 NKP 不等于恢复原密钥。
删除与销毁 移除 TPM 或彻底删除虚拟机时,平台会执行 TPM 状态、密钥引用和主机 Secret 的清理流程。删除 KMS 配置不等于销毁外部密钥,也不代表所有历史副本均已完成密码学擦除。操作前需检查相关虚拟机、快照和备份的依赖。

修改默认密钥提供程序不会自动改变已有资源的绑定。已有资源需要切换提供程序时,应单独执行重新加密;目标提供程序为 NKP 时,需先完成该 NKP 的备份。

异常处理与恢复

取钥或身份校验失败
KMS 不可达、认证材料不完整,或 NKP 的本地密钥服务不可用、根密钥材料丢失,均可能导致依赖取钥的操作失败。主机公钥校验失败时,平台拒绝下发密钥;目标主机的 Secret 准备失败时,平台阻断迁移。运行中的虚拟机不会仅因提供程序断连而由平台直接关机,但后续操作能否完成,取决于是否需要重新取得密钥。
密钥提供程序恢复失败
NKP 恢复时会校验提供程序名称和 UUID,并导入原根密钥及元数据。备份内容或保护密码错误会导致解析或导入失败;名称或 UUID 冲突时,恢复会被拒绝。
节点同步失败
NKP 的节点同步失败后,平台会记录失败并进行重试。节点同步与独立备份承担不同职责,仍需单独保存提供程序备份,以便在平台故障或重建后恢复密钥。

适用环境

vTPM 保护基于 KVM 虚拟化环境,配合 UEFI/NVRAM 使用。主机侧需要具备密钥服务及 libvirt、QEMU、swtpm 等组件,虚拟机操作系统需要具备相应的 TPM 驱动。外部 KMS 通过 KMIP 接入,具体产品与协议版本组合应以互认证结果为准。

vTPM 为虚拟机操作系统提供可信计算能力。使用 BitLocker 等磁盘保护功能时,需要在操作系统中安装或配置相应功能,并妥善保管恢复凭据。

安全与运维要求

密钥与备份保护
管理服务和主机在运行过程中需要使用资源密钥,外部 KMS 提供独立的密钥管理能力,并不表示密钥始终不离开 KMS。NKP 备份建议设置保护密码,并将密码与备份文件分开保管。
部署与容量
资源准备、需要重新取钥的启动、迁移和恢复会涉及密钥调用、封装及主机侧准备,NKP 还涉及本地后端调用和节点同步。虚拟机磁盘的每次读写无需访问外部 KMS。部署时应结合批量启动、HA 拉起、迁移并发和故障恢复需求,评估密钥服务的容量与可用性。
管理与审计
平台支持密钥提供程序管理、默认提供程序配置、资源重新加密,以及 KMS 的证书和客户端身份管理、NKP 的备份与恢复。管理操作以管理员权限为主,查询操作另有授权控制。平台对提供程序创建、更新、删除及 NKP 备份恢复等管理操作提供审计记录。