虚拟机的可信计算技术研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟机的可信计算技术研究
【摘要】虚拟化技术作为云计算的关键技术,提高了企业计算资源的利用率。为了保证虚拟机运行环境的完整性和安全性,基于KVM虚拟机平台提出了一种可信虚拟计算架构。解决了可信虚拟平台下虚拟身份证明密钥的私密性问题,使得信任链能够从硬件TPM延伸到客户操作系统,为虚拟机的安全提供了保障。
【关键词】可信虚拟平台;身份证明密钥;信任扩展
1.引言
虚拟化技术的广泛应用,使得企业极大地提高了计算资源的利用率。由于虚拟化技术具有的隔离性,不同虚拟机可以提供不同的服务,并且不会影响到其他虚拟机的工作。此外,虚拟机具有动态特征,管理员能够动态地创建、启动、迁移或撤销虚拟机。虚拟机运行在虚拟机监控器[1](virtual machine monitor,VMM)模拟的硬件上,虚拟机监控器负责管理底层的真实硬件资源。虚拟机直接向用户提供计算服务,然而虚拟机监控器并没有对虚拟机进行度量,以确保虚拟机的完整性,因此虚拟机运行环境面临着严峻的安全问题。
自从可信计算组织TCG(TrustedComp-uting)[2]推出可信平台模块TPM (Trusted Platform Module)标准规范1.1和1.2,很快就有相应产品在市场中推广和应用,我国也相应推出了TCM(Trusted Cryptography Module)[3]标准规范与产品。TPM/TCM作为平台的信任根,目前已经配置在许多系统上。可信计算的核心是信任链的传递机制。在任何一个信任体系中都必须有一个公认的、不需要证明的起始点,这个起始点被称为是核心信任源CRTM(Core Root of Trust for Measurement),通过CRTM首先构建一个信任根,再建立一条信任链,从信任根开始到硬件平台,到操作系统,再到应用程序,一级认证一级,一级信任一级,把这种信任扩展到整个系统,从而确保整个系统的可信。
可信计算作为信息安全的一项重要技术,可以保证运行在真实硬件上的虚拟机监控器的完整性。然而信任链传递到虚拟机监控器层次就已经中止,并没有延伸到上层的虚拟机,虚拟机监控器与虚拟机之间的信任链并不存在。为了保证上层客户操作系统的完整性,需将虚拟化技术与可信计算技术结合,构建可信虚拟化平台,这也成为了目前业界的研究热点[5-10]。
构建可信虚拟化平台首要解决的问题是,在确保信任根不变的情况下,客户操作系统能够使用可信服务。为了让平台上的每一个虚拟机使用它所独有的TPM的安全存储、加密和签名功能,必须要解决虚拟机如何使用TPM的问题,即TPM的虚拟化问题[5]。TPM的虚拟化必须要确保硬件TPM的安全属性,问题难点并不在于TPM命令是如何实现的,而是在于如何支撑高层的安全概念,例如信任链的传递。
2.研究现状
基于虚拟化技术的可信计算,主要是利用虚拟化技术在一个可信物理平台上创建出多个虚拟机,并将从硬件TPM开始构建的信任链传递到每一个虚拟机,从而在一个可信物理平台上构建多个虚拟的可信计算平台。可信虚拟计算平台不仅保证了虚拟机的可信,还保证了提供不同应用服务的多个虚拟机之间的隔离。
目前虚拟化环境下TPM的虚拟化主要有3种方式:TPM的硬件扩展[6]、TPM的半虚拟化[7]和TPM的软件虚拟化[8,9,10]:
TPM硬件扩展方式通过扩展TPM上下文为每个虚拟机提供TPM环境,虚拟机监控器可能透明地为每个虚拟机提供隔离的TPM会话,每个虚拟机可以自行读取和保存TPM上下文。然而该方式需要TPM硬件支持,目前并不存在硬件虚拟化的TPM。
TPM半虚拟化在虚拟机监控器层次加入一个中间层,实现硬件TPM对虚拟机的认证以及负责对硬件TPM的调试控制。然而这种方式需要更改一些设备接口,在兼容性方面会受到一定的影响。
目前大多数应用主要采用软件来实现TPM的虚拟化,为虚拟机提供一个接近真实硬件TPM的接口。TPM_Emulator[8]是由瑞士苏黎士联合研究所开发的软件TPM模拟器,为没有提供TPM物理芯片的计算平台提供TPM的功能仿真与模拟。TPM_Emulator实现了TPM的绝大部分功能,但它仅面向单个计算平台。S.Berger[9]分析了TPM虚拟化的需求,提出了TPM虚拟化的方法,将一个硬件TPM映射成多个虚拟TPM,虚拟TPM为每一个虚拟机提供一个专用的基于软件的信任根。在此基础上,Frederic[10]提出了一种构建可信虚拟平台的方案,并实现了虚拟TPM和物理TPM的绑定,以及虚拟TPM信任链的构建。该方案利用身份证明密钥AIK(attestation identity key)对虚拟TPM的AIK、物理平台配置寄存器PCR及时间戳进行签名,从而构成虚拟AIK证书。
Berger与Frederic都是基于XEN虚拟机实现了可信虚拟计算平台,主要存在以下几个问题:1、XEN是一个半虚拟化的虚拟机,在没有CPU对虚拟化的支持下,运行在XEN上的操作系统必须经过修改才能运行,这就缩小了XEN 的应用范围;2、XEN是运行在Linux内核(Domain0)下层的一个产品,每次升级XEN时都需要重新编译整个内核。3、Berger提出了4种构建虚拟TPM信任链的思路,但是没有进一步研究。4、Frederic用物理AIK签名虚拟AIK的方式来生成虚拟AIK证书,从而实现信任链的传递。TPM规范中规定AIK密钥只能对TPM内部产生的信息进行签名,外部数据是无法使用AIK进行签名的。虚拟TPM的AIK是由虚拟TPM产生的,不属于物理TPM的内部信息,因此Frederic 的方法不符合TPM规范。
KVM虚拟机是由Ret Hat推出的一种虚拟化技术。KVM是虚拟机监控器内核的一部分,以内核可加载模块的形式存在,运行在KVM虚拟机上的客户操作系统不需要进行任何修改。虽然XEN先于KVM提出,但是上文中提到的问题却限制了XEN的应用范围,因此KVM虚拟机具备更好的应用前景。针对目前
可信设备软件虚拟化的问题,本文从物理TPM的虚拟化角度出发,以KVM虚拟机为基础平台,提出了可信虚拟计算平台的设计方案。建立物理PCR与虚拟PCR的映射关系实现虚拟TPM与底层TCB的绑定,将信任链延伸到虚拟机,使得虚拟机能够有效地利用TPM提供的平台环境证明和私密信息存储功能,从而构建可信的虚拟运行环境。
虚拟机监控器的安全性是本文论述正确性的基础。在虚拟化环境中虚拟机负责向外界提供服务,因此虚拟机监控器的安全威胁来自上层虚拟机。虚拟机监控器的启动时的安全性可以由TPM的信任链传递来保证。为了保证虚拟机监控器运行时的完整性,HyperSafe[11]通过不可绕过的内存锁和受限制的指针索引来使虚拟机监控器具有自保护能力。
3.可信虚拟计算平台的设计
本文的可信虚拟计算平台的架构如图1所示。其中,TPM芯片是整个平台的信任根,负责对KVM虚拟机监控器的引导环境、内核、TPM管理器和TPM 实例的完整性进行度量,从而构建虚拟计算环境的可信计算基TCB。TPM管理器负责TPM实例的创建和管理,为虚拟机与TPM实例、TPM实例与物理TPM 提供通信信道。TPM实例与虚拟机对应,为虚拟机提供硬件TPM相同的功能,包括绑定、签名、封装和密钥存储。
3.1 底层可信基的绑定
在虚拟计算环境下,可信计算基TCB包括虚拟机监控器及其底层固件、TPM 管理器及TPM实例,这些组件的完整性由硬件TPM度量,度量值保存在硬件TPM的平台配置寄存器PCR中。
TPM实例用于确保其对应虚拟机的完整性,度量虚拟机操作系统及上层应用程序,度量值保存在TPM实例的PCR中。为了让虚拟机使用可信度量功能,需要建立虚拟计算环境下的可信计算基,以确保虚拟机平台的完整性和可信虚拟平台的完整性。
TPM标准规范1.2规定了静态度量方式中24个平台配置寄存器PCR的使用方式,前16个PCR用于静态度量,后8个PCR用于动态度量。当可信虚拟平台启动时,可信计算基TCB会先被度量,从而保证平台的完整性。根据TPM规范,信任根对物理硬件及BIOS进行度量,度量值存放在0~6号PCR。执行权限转交给BIOS,BIOS对可信引导程序GrubIMA进行度量,度量值放在第7号PCR。执行权限转交给GrubIMA,GrubIMA对虚拟机监控器的内核、TPM管理器及TPM实例进行度量,度量值存放在第8号PCR中。
每个TPM实例除了需要记录它对应虚拟机的完整性信息,还需要记录底层可信基TCB的完整性信息。因此将每个TPM实例的前9个PCR与物理TPM的PCR进行映射,保存底层TCB的完整性信息,后7个PCR则用来保存虚拟机内的完整性信息(系统配置文件、应用程序的度量值),如图2所示。