网络与信息安全学报, 2018, 4(12): 32-43 doi: 10.11959/j.issn.2096-109x.2018098

学术论文

基于VMI的虚拟机远程证明方案

王伟1,2, 陈兴蜀,2,3, 兰晓2, 金鑫1,2

1 四川大学计算机学院,四川 成都 610065

2 四川大学网络空间安全研究院,四川 成都 610065

3 四川大学网络空间安全学院,四川 成都 610065

VMI-based virtual machine remote attestation scheme

WANG Wei1,2, CHEN Xingshu,2,3, LAN Xiao2, JIN Xin1,2

1 College of Computer Science,Sichuan University,Chengdu 610065,China

2 Cybersecurity Research Institute,Sichuan University,Chengdu 610065,China

3 College of Cybersecurity,Sichuan University,Chengdu 610065,China

通讯作者: 陈兴蜀,chenxsh@scu.edu.cn

修回日期: 2018-11-29   网络出版日期: 2018-12-15

基金资助: 国家自然科学基金资助项目.  61802270
国家“双创”示范基地之变革性技术国际研发转化平台基金资助项目.  C700011

Revised: 2018-11-29   Online: 2018-12-15

Fund supported: The National Natural Science Foundation of China.  61802270
The Transformational Technology International Research Platform for National Dual Innovation Base.  C700011

作者简介 About authors

王伟(1992-),男,山东聊城人,四川大学硕士生,主要研究方向为可信计算、虚拟化安全。 。

陈兴蜀(1968-),女,贵州六枝人,博士,四川大学教授、博士生导师,主要研究方向为云计算与大数据安全、可信计算与信息保障。 E-mail:chenxsh@scu.edu.cn

兰晓(1990-),女,四川自贡人,博士,四川大学助理研究员,主要研究方向为认证密钥协商协议、区块链安全。 。

金鑫(1976-),男,辽宁营口人,四川大学博士生,主要研究方向为可信计算、虚拟化安全。 。

摘要

可信计算组织(TCG,trusted computing group)提出的虚拟机远程证明方案可以为云计算平台提供虚拟机完整性验证服务,而直接使用 TCG 提出的方案性能较低,并且会受到布谷鸟攻击的威胁。利用虚拟机自省技术(VMI,virtual machine introspection)设计了新的虚拟机远程证明方案。通过在虚拟机监视器(VMM,virtual machine monitor)中获取虚拟机远程验证证据的方法消除在虚拟机内执行布谷鸟攻击的路径,利用物理可信平台模块(TPM,trusted platform module)保证虚拟机远程验证证据的完整性,减少了身份证明密钥(AIK,attestation identity key)证书的产生数量,降低了私有证书颁发机构的负载。实验表明,方案可以有效验证虚拟机的完整性状态,在虚拟机数量较多的情况下,性能优于TCG提出的虚拟机远程证明方案。

关键词: 虚拟机远程证明 ; 布谷鸟攻击 ; 虚拟机自省技术 ; 可信平台模块 ; 身份证明密钥

Abstract

The virtual machine attestation scheme proposed by trusted computing group (TCG) can provide attestation service of virtual machine for cloud computing.However,the service using the scheme proposed by the TCG directly would be threatened by the cuckoo attack and its performance would be lower.Therefore,a new virtual machine remote attestation scheme based on virtual machine introspection (VMI) was proposed.Firstly,it eliminated the path to perform cuckoo attacks in virtual machines via obtaining virtual machines′ remote attestation evidence in virtual machine monitor (VMM).Secondly,it used physical trusted platform module (TPM) to ensure the integrity of virtual machines’ remote attestation evidence and reduced the number of attestation identity key (AIK) certificates required during remote attestation to balance the load of private CA.Experiments show that the proposed scheme can verify the status of virtual machines correctly and increase the performance of bulk virtual machines’ remote attestation significantly.

Keywords: virtual machine remote attestation ; the cuckoo attack ; virtual machine introspection ; TPM ; attestation identity key

PDF (1044KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

王伟, 陈兴蜀, 兰晓, 金鑫. 基于VMI的虚拟机远程证明方案. 网络与信息安全学报[J], 2018, 4(12): 32-43 doi:10.11959/j.issn.2096-109x.2018098

WANG Wei. VMI-based virtual machine remote attestation scheme. Chinese Journal of Network and Information Security[J], 2018, 4(12): 32-43 doi:10.11959/j.issn.2096-109x.2018098

1 引言

随着云计算的广泛应用,虚拟机的完整性状态受到越来越多的关注。可信计算技术[1]可以为云计算提供可靠的运行环境完整性解决方案。然而,传统的可信计算技术无法验证虚拟机状态的完整性,于是Berger等[2]提出了虚拟可信计算技术。

可信计算组织(TCG,trusted computing group)提出了基于可信平台模块(TPM,trusted platform module)的远程证明机制,并制定了虚拟可信平台规范,其中包括基于虚拟可信平台模块(vTPM,virtual trusted platform module)的虚拟机远程证明机制。

文献[3]提出直接使用 TCG 的远程证明协议会受到伪装攻击的威胁,研究该攻击路径并改进了远程证明协议;文献[4]首次提出布谷鸟攻击模型,与文献[3]提到的攻击原理类似;文献[5]利用串空间模型对远程证明协议进行分析,对布谷鸟攻击进行了实验验证;文献[6]提出用于检测布谷鸟攻击的时序模型,但每次远程证明需要重复进行TPM_Quote运算,消耗物理TPM芯片计算资源;文献[7]提出5条设计原则用于指导远程证明系统的开发;文献[8]以用户空间字符设备(CUSE,character device in user space)模拟TPM,向虚拟机提供vTPM设备,基于TCG的远程证明方案提出大规模虚拟机远程证明模型,但没有考虑布谷鸟攻击的影响;文献[9]提出基于属性的虚拟机远程证明方案,利用虚拟机自省(VMI,virtual machine introspection)技术获取虚拟机的特定属性;文献[10]针对TPM性能瓶颈导致的远程证明协议只支持有限数量虚拟机的问题,提出了基于虚拟机监视器(VMM,virtual machine monitor)的远程证明设计框架,但没有给出具体的实现方案,并且设计框架中忽略了虚拟机和远程验证证据之间的关联性。

针对以上问题,本文基于VMI技术设计了虚拟机远程证明方案,主要贡献如下。

1) 利用VMI技术在VMM中获取虚拟机远程验证证据,并与虚拟机进行有效绑定。

2) 重新设计了远程证明协议的证据收集阶段,利用物理TPM保证虚拟机远程验证证据的完整性。

3) 实现了原型系统,证明该方案可以有效验证虚拟机的运行状态、提高虚拟机远程证明的性能、消除虚拟机远程证明过程中在虚拟机内执行布谷鸟攻击的路径。

2 相关知识

2.1 虚拟机自省

自省是在虚拟机外部对虚拟机内部软件进行分析和监控的一类技术,Garfinkel等[11]第一次提出虚拟机自省的概念,并利用VMI技术构建了基于Hypervisor的入侵检测系统。

VMI技术可以在Hypervisor层访问虚拟机的内存和硬件状态信息,然而这些信息需要经过高级语义的重构才能够反映虚拟机内部软件的状态和行为,该问题被称为语义鸿沟。根据解决语义鸿沟问题所使用方法的不同,文献[12]将现有的VMI技术分为4类:基于目标虚拟机的依赖型自省、基于安全虚拟机的依赖型自省、基于软件结构知识的独立型自省和基于硬件结构知识的独立型自省。KVM下主流的VMI开源项目LibVMI[13]主要借助于虚拟机的内核符号表及内核重要结构体的成员偏移量来解决语义鸿沟问题,属于基于软件结构知识的独立型自省方式,其可以支持简单的虚拟机内部状态的监控,如进程链表、内核模块链表等。通过扩展 LibVMI 拥有的软件结构知识,增强 LibVMI 对于二进制内存的高级语义翻译能力,可以得到更多的虚拟机内部的实时状态信息。

2.2 虚拟机远程证明

TCG 提出的虚拟机远程证明机制分为两部分:验证虚拟机内部状态、验证虚拟机监视器的状态,基本的运行流程如图1所示。

协议运行前,宿主机和虚拟机分别向私有证书颁发机构申请身份证明密钥(AIK,attestation identity key)证书和虚拟机身份证明密钥(vAIK, virtual machine′s attestation identity key)证书。

1) 挑战者向某个虚拟机请求完整性验证证据,并传输随机值GuestNonce,位于虚拟机内部的远程证明代理RA_Agent接收该请求。

1a) RA_Agent采集完整性度量架构(IMA,integrity measurement architecture)模块的度量日志imaSML。

图1

图1   虚拟机远程证明


1b) RA_Agent采集SeaBIOS和TrustedGrub的度量日志biosSML。

1c) RA_Agent采集vPCR的值,并利用本地的vTPM执行TPM_Quote操作,即使用vAIK证书对GuestNonce和vPCR值进行签名。

2) RA_Agent 将采集的完整性证据发送给挑战者,然后挑战者依次验证 vPCR 完整性、imaSML 完整性、biosSML 完整性,进而根据具体的日志内容判定虚拟机当前状态。

3) 挑战者向虚拟机所在的宿主机请求VMM的完整性证据,并传输随机值HostNonce,位于宿主机内部的远程证明代理 RA_Agent 接收该请求。

3a) RA_Agent 采集 IMA 的度量日志imaSML。

3b) RA_Agent采集BIOS和TrustedGrub的度量日志biosSML。

3c) RA_Agent采集相应PCR的值,并利用本地的TPM执行TPM_Quote操作,即使用AIK证书对HostNonce和PCR值进行签名。

4) RA_Agent将采集的VMM完整性证据发送给挑战者,然后挑战者依次验证PCR完整性、imaSML 完整性、biosSML 完整性,进而根据具体的日志内容判定VMM当前状态。

2.3 布谷鸟攻击

文献[4首次提出布谷鸟攻击,它是一种针对远程证明过程的中间人攻击方式,其在虚拟机远程证明过程中的利用方式如图2所示,流程如下:1) 攻击者申请一台正常的虚拟机C,入侵目标虚拟机M,并劫持虚拟机M上的远程证明代理软件RA_Agent;2) 当挑战者对虚拟机M进行远程证明时,虚拟机M上的RA_Agent冒充挑战者将请求转发给正常虚拟机C,利用正常虚拟机C的完整性证据来欺骗挑战者;3) 挑战者把正常虚拟机C的完整性证据当成被劫持虚拟机M的完整性证据,认为虚拟机M的状态是正常的。

3 方案设计

3.1 总体设计

本文基于 VMI 技术对于虚拟机的远程证明过程进行了改进,主要思路是:将虚拟机内部的远程证明代理工作下移到宿主机的VMM中,利用VMI技术实现,如图3 所示,VMI_Agent 就是在VMM中完成此工作的代理。

具体的运行过程如下。

1) 挑战者向宿主机请求虚拟机和 VMM 的完整性证据,并传输随机值 Nonce,位于宿主机上的RA_Agent接收该请求。

图2

图2   布谷鸟攻击


图3

图3   总体设计


1a) RA_Agent 从 VMI_Agent 处获取虚拟机的完整性证据。

① VMI_Agent通过VMI技术获取虚拟机内IMA的度量日志imaSML,获取该日志的具体流程将在3.3.2节给出。

② VMI_Agent通过VMI技术获取虚拟机内SeaBIOS和TrustedGrub的度量日志biosSML,获取该日志的具体流程将在3.3.1节给出。

③ VMI_Agent 截获虚拟机和 vTPM 的交互过程,采集vPCR值,获取vPCR值的具体流程将在3.2节给出。

1b) RA_Agent获取宿主机IMA的度量日志imaSML。

1c) RA_Agent获取宿主机BIOS和TrustedGrub的度量日志biosSML。

1d) RA_Agent采集TPM的PCR值,并利用本地的TPM芯片执行TPM_Quote操作,即使用AIK证书对Nonce、PCR值和vPCR值进行签名,具体流程将在3.4节给出。

2) RA_Agent 将完整性证据发送给挑战者,然后挑战者验证证据完整性,并根据远程验证证据判定VMM状态、虚拟机状态。

3.2 获取虚拟机的vPCR

正常虚拟机和其vTPM交互的过程如图4(a)所示,虚拟机内核中的TPM_TIS驱动与VMM中实现的vTPM后端设备进行交互,通过vTPM后端驱动向虚拟机提供的接口发送命令和接收响应;同时虚拟机内核中的TPM_TIS驱动向虚拟机用户空间提供/dev/tpm0接口,以供用户空间的应用程序使用VMM中实现的vTPM后端设备。

图4(b)所示,VMI_Agent在VMM层截获虚拟机内核的 TPM_TIS 驱动和 vTPM 后端设备交互的消息,然后判断当前执行的TPM命令,如果是vPCR相关的操作,VMI_Agent则通过执行TPM_ReadPCR 操作更新其维护的 vPCR 列表。具体的执行流程如下。

1) 虚拟机内应用程序向TPM_TIS驱动发送TPM命令流Cnormal

2) VMI_Agent 截获 TPM_TIS 驱动发送给vTPM后端驱动的Cnormal,然后解析Cnormal,如果该命令与vPCR操作相关,则标记ReadAgain为True,否则标记为False。

3) VMI_Agent将Cnormal发送给vTPM后端设备执行。

4) VMI_Agent 截获 vTPM 后端设备返回给TPM_TIS的响应流Rnormal

5) VMI_Agent判断ReadAgain的值,如果为True,则构造一个TPM_ReadPCR的命令Creadpcr,并发送给vTPM后端设备;如果为False,则进入步骤7)。

6) VMI_Agent接收vTPM后端设备的响应流Rreadpcr,解析Rreadpcr,并更新其维护的vPCR列表。

7) VMI_Agent将响应流Rnormal返回给虚拟机内核的TPM_TIS驱动。

3.3 获取虚拟机的度量日志

3.3.1 获取虚拟机内的biosSML日志

biosSML 日志是 BIOS 用来保存度量历史记录的日志,同时 TrustedGrub 利用相应的中断向该日志中写入自身的度量历史记录,因此,该日志记录了BIOS和TrustedGrub这2个组件的度量内容。BIOS将计算机主板上所有硬件的信息以高级配置和电源管理接口(ACPI,advanced configuration and power management interface)表的形式提供上层操作系统,每个 ACPI 表都有特定的标识符。SeaBIOS是KVM虚拟化平台中QEMU用来模拟BIOS的开源项目,其集成了对于vTPM的支持,而且按照 TCG 规定的 ACPI 表格式[14]向上层虚拟机提供关于vTPM硬件相关的信息,如厂商、版本、biosSML 度量日志起始地址和长度等。目前,SeaBIOS使用TPM1.2 客户端版本的ACPI表,其标识符为“TCPA”。

图4

图4   虚拟机vPCR的获取


从虚拟机的角度来看,SeaBIOS提供的ACPI表之间是有关联的,如图5所示,可以根据ACPI表的根来检索其他ACPI表,而该ACPI表的根则由虚拟机内核符号表中导出的符号 acpi_gbl_root_table_list来指定。

biosSML日志的获取过程如下。

1) VMI_Agent 根据内核符号 acpi_gbl_root_table_list 的地址读取 ACPI 表的根所在结构体rootACPI的内容。

2) VMI_Agent解析结构体rootACPI的内容,获取ACPI表数组的起始地址SACPI_array

3) VMI_Agent依次读取从地址SACPI_array开始的每个ACPI表的内容,假设第i个ACPI表的内容是Ci

4)VMI_Agent解析当前内容Ci,判断其标识符是不是“TCPA”,如果是,则按照TCG规定的TPM 的 ACPI 表格式解析当前内容 Ci,取出biosSML 日志在虚拟机物理内存中的地址AddrbiosSML和日志最大长度 MaxLbiosSML,进入步骤5),否则,返回步骤3)。

5) VMI_Agent 访问从虚拟机物理地址AddrbiosSML开始的长度为MaxLbiosSML的一段内存区域 MembiosSML,按照日志的格式解析MembiosSML,得到虚拟机内部biosSML度量日志。

3.3.2 获取虚拟机内的imaSML日志

IMA是Linux内核的完整性度量架构,当加载应用程序、动态链接库或者内核模块时,IMA对加载对象的重要配置和代码段进行度量,将度量结果扩展到TPM的PCR10上,并将度量内容记录到日志imaSML中,用于远程证明。

imaSML 是一种特殊的日志文件,其本质上是 IMA 提供给上层应用程序的日志内容读取接口,真实的内容被存储在 IMA 维护的一段内存中。IMA使用链表来维护度量日志的内容,日志的每一条度量记录为链表上的一个节点,整个链表可以通过内核中导出的符号 ima_measurements来索引。

imaSML日志的获取过程如下。

1) VMI_Agent根据内核符号ima_ measurements读取该符号所在结构体Mima的内容。

2) VMI_Agent解析结构体Mima的内容,获取日志链表的表头节点地址HimaSML

3) VMI_Agent依次读取HimaSML开始的日志链表上的每一个节点,直至链表结尾,假设当前读取的第i个节点的内容为Ci

4)VMI_Agent解析内容Ci,然后获取当前日志记录在虚拟机内核地址空间中的位置Addri

图5

图5   biosSML日志的获取


图6

图6   imaSML日志的获取


5) VMI_Agent 读取虚拟机内核地址空间中地址Addri开始的一段内存Memi

6) VMI_Agent解析获得的内存Memi,根据解析的结果更新其维护的imaSML日志列表,然后返回步骤3) 。

3.4 远程证明协议的证据收集阶段

远程证明协议是挑战者与远程证明代理交互所遵循的规范,可以分为两部分:证据收集阶段、证据验证阶段。由于本文方案的证据收集方法不同于原本 TCG 的虚拟机远程证明方案,所以需要修改 TCG 提出的远程证明协议的证据收集阶段(如图7所示)来规范本文方案各个组件的工作方式。

协议运行前,宿主机向私有证书颁发机构申请AIK证书。

操作原语设定:Challenger 代表挑战者, RA_Agent 代表宿主机的认证代理,VMI_Agent代表虚拟机证据收集代理,TPM代表宿主机上的物理可信平台模块,Hash代表一种散列算法,Sig代表一种签名算法,Ver代表一种签名验证算法, CertAIK 代表宿主机申请的身份认证密钥证书, KAIK代表宿主机TPM生成的身份认证密钥。

具体交互过程如下:

1) Challenger->RA_Agent:Nonce;

2) RA_Agent->VMI_Agent:vm_i || Nonce,其中,i∈(0,m],若i > m,则进入步骤7);

3) VMI_Agent->RA_Agent:vPCR || vSML ||Hvm_i|| Hash(UUIDvm_i),其中,Hvm_i= Hash (vPCR0|| vPCR1|| … || vPCRM|| Hash(UUIDvm_i) || Nonce), M∈[0,24];

4) RA_Agent->TPM:PCRindex|| Hvm_i;

5) TPM->RA_Agent:vm_i_SAIK|| Hvm_i, vm_i_SAIK= TPM_Quote(PCRindex,Hvm_i) =Sig(KAIK,Hash (PCRindex|| H vm_i) );

6) RA_Agent:Pi= vPCR || vSML || Hash (UUIDvm_i) || vm_i_SAIK,然后i++,进入步骤2);

7) RA_Agent->TPM:PCRindex|| Nonce;

8) TPM->RA_Agent:SAIK|| Nonce,SAIK=TPM_Quote(PCRindex,Nonce) = Sig(KAIK,Hash (PCRindex|| Nonce) );

9) RA_Agent:P0= PCR || SML || Nonce ||SAIK,msg = P0|| P1|| … || Pm;

10) RA_Agent->Challenger:msg;

11) Challenger:Ver(CertAIK,Pi),其中,i∈[0,m],然后进入证据验证阶段。

接下来对上述每一步进行详细解释,如下。

步骤1:挑战者向宿主机上的认证代理RA_Agent发送随机值Nonce。

步骤2:RA_Agent向VMI_Agent发送虚拟机编号vm_i和Nonce,其中,i∈(0,m],m为一次远程证明可以验证的虚拟机个数。

图7

图7   虚拟机远程证明协议证据收集阶段


步骤3:VMI_Agent采集编号为vm_i的虚拟机的vPCR、vSML,并计算该虚拟机在云平台上唯一标识的散列值 Hash(UUIDvm_i),避免直接使用 UUID 泄露虚拟机身份,然后根据 vPCR 和Nonce计算得到Hvm_i,用以将远程证明证据和对应虚拟机进行有效绑定,计算方法为Hvm_i= Hash (vPCR0|| vPCR1|| … || vPCRM|| Hash(UUIDvm_i) ||Nonce),其中,M为编号vm_i的虚拟机的vPCR个 数,最 后 将 {vPCR || vSML || Hvm_i||Hash(UUIDvm_i)}返回给RA_Agent。

步骤4:RA_Agent给TPM发送命令TPM_Quote(PCRindex,Hvm_i),利用AIK密钥对Hvm_i和当前宿主机的 PCRindex 值进行签名,利用物理TPM保证虚拟机远程验证证据的完整性。

步骤5:TPM将签名结果{vm_i_SAIK|| Hvm_i}返回给RA_Agent。

步骤6:RA_Agent打包编号vm_i的虚拟机的完整性证据 Pi= {vPCR || vSML ||Hash(UUIDvm_i) || vm_i_SAIK},然后i自增,并判断i和m的大小关系,如果i>m,则进入步骤7,否则进入步骤2。

步骤7:RA_Agent向TPM发送命令TPM_Quote(PCRindex,Nonce),利用AIK密钥对Nonce和当前宿主机的PCRindex值进行签名。

步骤8:TPM返回签名结果{SAIK|| Nonce}。

步骤9:RA_Agent打包宿主机上VMM的完整性证据P0= {PCR || SML || Nonce || SAIK},然后打包虚拟机和VMM的完整性证据msg = {P0|| P1|| … || Pm}。

步骤10:RA_Agent将msg发送给挑战者。

步骤11:挑战者首先根据AIK证书验证msg中每个Pi(i∈[0,m])的完整性,然后进入证据验证阶段,分别根据VMM和每个虚拟机的度量日志和PCR/vPCR值判定各自的当前状态,并生成虚拟机远程证明报告。

4 安全性分析

本文提出基于VMI的虚拟机远程证明方案,首先将位于虚拟机内部的远程证明代理的工作放到VMM中完成,然后改进传统的远程证明协议以保证宿主机中采集到的虚拟机和VMM的证据完整性,该方案可以有效抵抗在虚拟机内部执行的布谷鸟攻击,并且减少远程证明过程中涉及的AIK证书的生成数量,降低私有证书颁发机构的负载。

4.1 消除布谷鸟攻击路径

如图2所示,布谷鸟攻击之所以会成功,是因为攻击者修改了目标虚拟机 M 上的远程证明代理程序,将挑战者引导向攻击者自己的正常虚拟机 C,成功欺骗挑战者。而本文方案在宿主机VMM中借助VMI技术获取虚拟机的度量日志和vPCR 值,不需要在虚拟机内部部署远程证明代理,因此,在虚拟机内部执行布谷鸟攻击的这条攻击路径是不存在的。

如果攻击者可以入侵宿主机,那么针对宿主机远程证明过程的布谷鸟攻击是可以成功的,本文建议使用文献[3所提出的方法增强宿主机远程证明过程的安全。

4.2 降低私有证书颁发机构的负载

在TCG提出的虚拟机远程证明过程中,需要依次对虚拟机和VMM进行远程证明,而且每次证明都会由私有证书颁发机构为虚拟机和 VMM分别颁发一个临时的 vAIK/AIK 证书,如果同时对多个虚拟机进行远程证明,会导致私有证书颁发机构的负载过大甚至产生拒绝服务攻击。本文方案将虚拟机的完整性证据采集代理放到 VMM中执行,取消了虚拟机远程证明过程中私有证书颁发机构为虚拟机颁发 vAIK 证书的步骤,减少了远程证明过程中产生AIK证书的数量,降低了虚拟机远程证明过程中私有证书颁发机构的负载以及对私有证书颁发机构实施拒绝服务攻击产生的风险。

5 原型系统实现与测试

5.1 系统实现

本文首先在 KVM 虚拟化平台上为每一个虚拟机提供基于 Libtpms[15]函数库的 vTPM 设备,然后在VMM中实现VMI_Agent,通过修改IBM的远程证明开源项目 TPM 2.0 Attestation Client Server实现RA_Agent和挑战者,最后以表1的配置为基础环境设计并实现了本文方案的原型系统。

表1   系统配置

服务器个数CPU内存磁盘TPM
控制节点1Intel(R)Core i5-640064 GB1 TBTPM2.0
计算节点2Intel(R)Core i5-640064 GB1 TBTPM2.0

新窗口打开| 下载CSV


5.2 功能测试与分析

功能测试主要测试基于 VMI 的虚拟机远程证明方案的有效性。

本文对IBM的远程证明开源项目进行了修改,与原系统相比,修改后的系统调整了宿主机视图(如图8(a)所示),并且增加了虚拟机视图(如图8(b)所示),然后通过部署在控制节点上的挑战者向计算节点发起虚拟机远程证明请求。图8(a)宿主机视图展示了两台计算节点的验证结果都是正常的,验证结果的最后一个表项“VMs′ Reports”链接了对该计算节点上运行的虚拟机的远程证明结果,表项的值为虚拟机的个数。图8(b)虚拟机视图展示了计算节点computer1上虚拟机的远程证明结果,虚拟机视图的验证内容和宿主机视图是一致的,不同的是虚拟机视图中验证结果的唯一标识是虚拟机UUID的散列值。

5.3 性能测试与分析

性能测试主要针对 2 种方案的比较:基于VMI 的虚拟机远程证明方案和 TCG 提出的虚拟机远程证明方案。本文在计算节点设置10组运行不同数量虚拟机的场景,对于每个场景分别实施2 种方案的远程证明,在特定场景下对每个方案分别进行20次远程证明,最后计算耗时平均值,结果如图9所示。

图8

图8   功能测试


图9

图9   性能测试


随着虚拟机数量的增加,2 种远程证明方案的耗时均呈线性增长的趋势。假设2种方案耗时均满足函数Y=aX+b,其中,X是虚拟机个数,Y是远程证明的耗时,a、b为参数。通过线性回归拟合可得,基于VMI的虚拟机远程证明方案耗时的参数a为1 287.55,TCG虚拟机远程证明方案耗时的参数a为3 148.44,由此可见,当X比较大时,本文方案性能较好。

表2 给出了一次完整的虚拟机远程证明过程中不同方案的通信开销、可以验证的虚拟机数量、TPM_Quote执行次数和产生的AIK证书数量。其中,在某个远程证明协议内部发送和接收一次消息称为一次交互(连接建立和释放时传输的消息不计算),m是本文方案一次远程证明可以验证的虚拟机个数。TCG RA是TCG提出的虚拟机远程证明方案,RIRP RA是文献[3]提出的抵抗布谷鸟攻击顽健性的远程证明方案,VMI RA是本文提出的基于VMI的虚拟机远程证明方案。

表2   方案性能对比

方案名称交互轮数验证的虚拟机数量TPM_QuoteAIK证书
TCG RA2122
RIRP RA4122
VMI RA1m(m≥1)m+1(m≥1)1

新窗口打开| 下载CSV


TCG RA 在一次虚拟机远程证明过程中,分别对虚拟机、VMM进行一次远程证明,因此需要2轮交互,每一轮都需要1个AIK证书和1次TPM_Quote 操作,1 次虚拟机远程证明过程只能验证1台虚拟机状态;RIRP RA为了解决布谷鸟攻击的威胁,在对虚拟机、VMM进行远程证明时增加了Diffie-Hellman密钥交换协议,因此需要4轮交互,TPM_Quote操作次数和AIK证书数量与TCG RA一样,一次虚拟机远程证明过程也只能验证 1 台虚拟机状态;本文方案在一次虚拟机远程证明过程中,通过VMI_Agent得到了虚拟机的远程验证证据,因此只需要1轮交互、1个AIK 证书,由于一次虚拟机远程证明过程可以验证m台虚拟机状态,而每个虚拟机远程验证证据都需要计算一次 TPM_Quote,再加上对于宿主机的远程证明过程,共需要 m+1 次TPM_Quote操作。

表2可以得出,对K台虚拟机进行远程证明,TCG RA和RIRP RA需要的AIK证书的数量是2K个,而VMI RA需要的AIK证书的数量是Km个,由此可见本文方案大大减少了远程证明过程中AIK证书的产生数量,降低了私有证书颁发机构的负载。进一步分析,对K台虚拟机进行远程证明,TCG RA 需要 2K 轮交互、2K 次TPM_Quote,RIRP RA需要4K轮交互、2K次TPM_Quote,VMI RA 需要Km轮交互、(m+1)Km次TPM_Quote,因此,当K值较大时,VMI RA的性能明显优于前2种方案。

6 结束语

为了消除在虚拟机远程证明过程中产生的布谷鸟攻击,本文提出利用 VMI 技术在VMM 中获取虚拟机远程验证证据的方法,重新设计了虚拟机远程证明协议的证据收集阶段。该方案可以消除虚拟机远程证明过程中在虚拟机内执行布谷鸟攻击的路径,减少远程证明过程中产生的AIK证书数量,进而降低私有证书颁发机构的负载,而且通过对原型系统的测试与分析可知,在虚拟机数量较多的情况下,本文方案的性能优于 TCG 提出的虚拟机远程证明方案。

The authors have declared that no competing interests exist.
作者已声明无竞争性利益关系。

参考文献

冯登国, 秦宇, 汪丹 ,.

可信计算技术研究

[J]. 计算机研究与发展, 2011,48(8): 1332-1349.

[本文引用: 1]

FENG D G , QIN Y , WANG D ,et al.

Research on trusted computing technology

[J]. Journal of Computer Research and Development, 2011,48(8): 1332-1349.

[本文引用: 1]

BERGER S , CÁCERES R , GOLDMAN K A ,et al.

vTPM:virtualizing the trusted platform module

[C]// The 15th Conference on USENIX Security Symposium. 2006: 305-320.

[本文引用: 1]

STUMPF F , TAFRESCHI O , RÖDER P , ,et al.

A robust integrity reporting protocol for remote attestation

[C]// The 2nd Work shop on Advances in Trusted Computing. Tokey,Japan, 2006.

[本文引用: 4]

PARNO B , .

Bootstrapping trust in a trusted platform

[C]// The USENIX Workshop on Hot Topics in Security. 2008.

[本文引用: 2]

冯伟, 冯登国 .

基于串空间的可信计算协议分析

[J]. 计算机学报, 2015,38(4): 701-706.

[本文引用: 1]

FENG W , FENG D G .

Analyzing trusted computing protocol based on the strand space model

[J]. Chinese Journal of Computers, 2015,38(4): 701-706.

[本文引用: 1]

FINK R A , SHERMAN A T , MITCHELL A O ,et al.

Catching the cuckoo:verifying TPM proximity using a quote timing side- channel

[C]// The Trust and Trustworthy Computing. 2011: 294-301.

[本文引用: 1]

COKER G , GUTTMAN J , LOSCOCCO P ,et al.

Principles of remote attestation

[C]// The International Journal of Information Security. 2010: 63-81.

[本文引用: 1]

BERGER S , GOLDMAN K , PENDARAKIS D ,et al.

Scalable attestation:a step toward secure and trusted clouds

[C]// The IEEE International Conference on Cloud Engineering. 2015: 185-194.

[本文引用: 1]

ZHANG T,B , LEE R , .

Cloud Monatt:an architecture for security health monitoring and attestation of virtual machines in cloud computing

[C]// The IEEE 42nd Annual International Symposium on Computer Architecture (ISCA). 2015: 362-374.

[本文引用: 1]

LAUER H , KUNTZE N .

Hypervisor-based attestation of virtual environments

[C]// The Ubiquitous Intelligence Computing Advanced and Trusted Computing Scalable Computing and Communications Cloud and Big Data Computing Internet of People and Smart World Congress. 2016: 333-340.

[本文引用: 1]

GARFINKEL T , ROSENBLUM M .

A Virtual machine introspection based architecture for intrusion detection

[C]// The Network and Distributed Systems Security Symposium. 2003: 191-206.

[本文引用: 1]

李保珲, 方滨兴, 徐克付 ,.

虚拟机自省技术研究与应用进展

[J]. 软件学报, 2016,27(6): 1384-1401.

[本文引用: 1]

LI B H , FANG B X , XU K F ,et al.

Research and application progress of virtual machine introspection technology

[J]. Journal of Software, 2016,27(6): 1384-1401.

[本文引用: 1]

彭春洪 .

基于KVM虚拟机的恶意行为检测系统设计与实现

[D]. 成都:电子科技大学, 2015.

[本文引用: 1]

PENG C H .

The design and implementation of the malicious behavior detecting system based on KVM virtual machine

[D]. Chengdu:University of Electronic Science and Technology of China, 2015.

[本文引用: 1]

DUFLOT L , LEVILLAIN O , MORIN B .

ACPI:design principles and concerns

[C]// The 2nd International Conference on Trusted Computing. 2009: 14-28.

[本文引用: 1]

HENDERSON A , YIN H , HAN H ,et al.

VDF:targeted evolutionary fuzz testing of virtual devices

[C]// The International Symposium on Research in Attacks,Intrusions,and Defenses. 2017: 3-25.

[本文引用: 1]

/