一. 背景
随着虚拟化技术的普及,单台物理机上运行多个虚拟机逐渐成为主流,但是,单台物理机上的TPM芯片只有一个。为了让物理机上的多个虚拟机都能使用可信计算,2006年,IBM在USENIX论文《vTPM: Virtualizing the Trusted Platform Module》中首次提出了虚拟可信平台模块技术(vTPM)。vTPM是TPM的软件实现,让虚拟机也能够使用安全存储、密码操作等功能,而不需要专属的TPM芯片。
二. vTPM介绍
vTPM使用软件模拟TPM的功能。虚拟机引入vTPM后,能够生成和存储私钥,实现安全加密。与TPM类似,vTPM创建的密钥与操作系统隔离,降低了系统被攻击时密钥泄露的风险。
2.1
TPM虚拟化面临的挑战
为了达成与TPM一致的安全性,vTPM在实现上面临一些挑战。
一方面,vTPM除了要支持TPM相关的底层命令,还要实现信任链建立等高级功能。为了将信任链从物理TPM扩展到每一个虚拟TPM,vTPM在实现时,需要仔细管理签名密钥和证书。一些使用了相关功能的应用需要了解物理和虚拟TPM之间的语义差异,才能正确的构建、评估证书链,确保信任的传递。
另一方面,要确保虚拟机和vTPM实例在迁移时的一致性。挂起、迁移和恢复是硬件虚拟化的重要优势,对于vTPM而言,迁移时需要保护实例中数据的机密性和完整性,并且能够在新平台上重建信任链。
vTPM提供TPM服务给每个虚拟机,需要满足以下条件:
1. vTPM为虚拟机操作系统提供的使用模型和指令集,必须与TPM提供给物理机操作系统的一致。原先使用了TPM的软件,应当能够在不做修改的情况下,实现与vTPM的交互,且应该对正在与虚拟TPM通信无感知。
2. 必须确保虚拟机与vTPM在整个生命周期内的强关联性,例如将虚拟机从一台物理机迁移到另一台。现代虚拟化技术的一大优势就是能够提供挂起和恢复功能,用户能够主动冻结操作系统状态,并且能够在之后的某个时间点,甚至是在不同的物理机器上进行恢复。因此,vTPM需要支持自身状态的挂起及恢复,以及在不同物理机之间的迁移,并且要保证在虚拟机生命周期的各种状态期间,不会被未经授权方以及其他虚拟机窃取vTPM中存储的密钥。
3. 必须维护vTPM与其底层可信基(TCB)之间的强关联。物理TPM有数字签名功能,可用于验证TPM可信。而在虚拟环境中,vTPM作为一个用户进程运行,与硬件平台的关联可能发生变化,例如虚拟机迁移后,物理机器变了,可信基也跟着变化。跟踪并正确处理可信基的变化是实现TPM虚拟化面临的主要难题,各方不仅要具有在初始环境建立信任的能力,也要能够在之后的时间点及时建立vTPM环境的信任。
4. 基于虚拟TPM与物理TPM不同的安全特性,这二者需要做区分。vTPM证书用于向相关方提供足够的信息,以得出TPM正常运行所依赖的软件、固件和硬件环境的相关信息。
2.2
架构
论文提出了一种vTPM架构,如图1所示。
图1 vTPM架构
图1说明了vTPM的构成及其关系。整个vTPM由一个vTPM管理器和若干vTPM实例组成。
vTPM实例需要满足TCG TPM标准的规定。每个虚拟机会被分配专属的vTPM实例。vTPM管理器的功能包括创建vTPM实例,以及将虚拟机的请求分发到与之关联的vTPM实例。虚拟机通过客户端驱动和服务端驱动与vTPM通信,其中客户端驱动运行在想要访问vTPM实例的虚拟机中,服务端驱动则运行在托管vTPM的虚拟机中。
为了实现虚拟化TPM,论文基于TPM 指令集做了一定扩展。
Virtual TPM Management commands:管理vTPM实例的生命周期,提供创建、初始化和删除实例的功能。
Virtual TPM Migration commands:用于vTPM实例迁移。实现了安全的vTPM迁移协议,基于这个协议,可以安全地打包实例状态,迁移到新平台。该扩展命令要求保护vTPM实例内容。为了防止实例重复,单个vTPM实例每次只能迁移到一个目标平台,且迁移后需要确保正确恢复状态。
Virtual TPM Utility commands:一些额外功能,包括将一部分TPM命令从父实例路由到它的子实例。
2.3
vTPM的迁移
论文中设计的迁移过程如图2:
图2 vTPM迁移协议
为了实现vTPM的迁移,使用非对称加密与对称加密结合的方式,对源vTPM状态进行加密和打包,并在目标vTPM上进行解密。vTPM迁移基于TPM存储密钥的迁移,这是TPM标准支持的过程。
第一步,在目标机器上创建一个空的vTPM实例,称为目标vTPM,从目标vTPM生成并导出唯一标识符。将源vTPM锁定到同一个标识符,防止迁移到多个目标。导入新的唯一标识符前需要做验证,之后所有的vTPM状态都基于该唯一标识符导出。
第二步,对源vTPM的状态进行加密封装和传输。首先向源vTPM发送创建对称密钥的命令,该密钥被TPM父实例的存储密钥加密。然后收集源vTPM的各种状态加密并传输,收集时该vTPM被锁定且不可使用。将状态序列化后,还要生成迁移摘要,用于在目标vTPM验证。
第三步,为了在目标平台上重建vTPM的状态,需要将源vTPM父实例的存储密钥迁移到目标vTPM父实例,在对称密钥解密后,重建vTPM状态,并重新计算摘要。为了防止迁移过程中涉及的不受信软件更改或删除状态,仅在计算出的摘要与传输的摘要一致时,vTPM实例才会恢复运行。
三. 现状
目前很多使用虚拟化技术的主流厂商都引入了vTPM的能力。
VMWare支持在其虚拟机中添加TPM2.0虚拟加密处理器。
Google Cloud VMWare Engine提供vTPM支持。并且该技术作为其安全强化型虚拟机的一部分,让虚拟机实例的完整性可验证,帮助确认实例启动过程中未受到恶意软件的危害。
微软提供的Azure机密VM都配备了专属的vTPM模块,提供度量、报告等功能。
阿里云在服务器硬件可信的基础上,额外为虚拟机实例提供虚拟可信根(vTPM/vTCM),将信任体系扩展到ECS(弹性云服务器)虚拟化层面,构建了基于硬件和虚拟信任根的完善安全体系。
华为云在2023年6月的更新中新增了安全启动和vTPM支持。
四. 总结
vTPM技术是在虚拟化环境中建立信任的关键技术,可以为硬件平台上每个虚拟机提供可信计算功能。与TPM硬件相比,成本更低,同时更加灵活。在当前主流单机多实例的技术架构中,一定程度上更有竞争力。
参考文献
Berger, Stefan & Cáceres, Ramón & Goldman, Kenneth & Perez, Ronald & Sailer, Reiner & van Doorn, Leendert. (2006). VTPM: Virtualizing the trusted platform module.
https://trustedcomputinggroup.org/about/what-is-a-virtual-trusted-platform-module-vtpm/
内容编辑:创新研究院 杨博杰
责任编辑:创新研究院 陈佛忠
本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。
关于我们
绿盟科技研究通讯由绿盟科技创新研究院负责运营,绿盟科技创新研究院是绿盟科技的前沿技术研究部门,包括星云实验室、天枢实验室和孵化中心。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。
绿盟科技创新研究院作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。
我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。
长按上方二维码,即可关注我