一种基于tpm的虚拟机内应用程序完整性度量方法

文档序号:6634241阅读:349来源:国知局
一种基于tpm的虚拟机内应用程序完整性度量方法
【专利摘要】本发明提出一种基于TPM的虚拟机内应用程序的完整性度量方法,包括:在可信环境下获取可执行程序的度量值,并存放于Host OS中的参照列表中作为标准值;在程序运行时提取其代码段并计算该代码段的度量值,将其传送给Host OS的度量列表中;比较度量列表和参照列表来验证应用程序的状态。本发明基于TPM芯片确保虚拟机内应用程序的安全,将可信计算与虚拟机内的完整性度量技术相结合,一方面减少了虚拟机间监控技术的上下文切换开销,另一方面能够及时检测到针对虚拟机内应用程序的恶意攻击,提高了虚拟机系统的安全性,使该方法在商业应用和科学研究领域均有广泛地实用价值和应用前景。
【专利说明】一种基于TPM的虚拟机内应用程序完整性度量方法

【技术领域】
[0001]本发明提出了一种虚拟机内应用程序的完整性度量方法,具体涉及一种利用TPM保证客户虚拟机内应用程序安全性的方法。属于计算机科学的信息安全领域。

【背景技术】
[0002]如今,系统虚拟机(包括KVM、Xen、VMWare等)受到了越来越多的关注并得到了广泛的应用。与传统计算机系统相比,使用虚拟化技术,不但提高了硬件利用率、更便于软件环境的部署以及通过隔离性提高了系统安全。但虚拟机也面临着严峻的安全问题。一方面,针对虚拟机的攻击越来越多,如虚拟机逃逸攻击、虚拟机失窃、特定病毒等;另一方面,虚拟机本身也存在着安全漏洞,如虚拟机监控器模型不完备、虚拟机之间共享宿主机造成的安全威胁、虚拟机系统中潜在的硬件威胁等。已出现的入侵或攻击虚拟化环境的案例几乎涉及所有的商业和开源虚拟化技术,增强虚拟机的安全性和构建可信的虚拟化环境已经成为业界的迫切需求。
[0003]当前对计算机系统的完整性保护收到日益重视。度量方法,是一个较新的方法,它的原理是在某些时刻,对目标进行度量,得到目标的某些信息,将这些信息的值与事先记录的标准值进行比较,从而判断目标的完整性是否被破坏。虽然它不是针对虚拟机环境的,但其基本思想可借鉴到虚拟机的保护中。
[0004]与传统的信息安全防御技术不同,可信计算组织提出了可信计算,其提供了一种新的思路,它从保证安全问题发生源头及安全性入手,以此保证终端系统的安全性。TCG的核心部件是一个嵌入主板上的安全协处理器芯片TPM。TPM提供一个基于硬件的可信根,提供内部的密钥、存储空间和存放摘要值的寄存器等。此外由于TPM是基于硬件实现的,并且有精心设计的接口,因此能在很大程度上抵御软件攻击。
[0005]可信计算作为信息安全的一项重要技术,将其与完整性度量技术相结合实现虚拟机内应用程序的完整性保护,能够在一定程度上提高虚拟机系统的安全性和可信性,因此研究基于TPM的虚拟机内应用程序的完整性保护具有重要意义。


【发明内容】

[0006]本发明的目的是提供一种虚拟机内应用程序的完整性度量方法。该方法首先需要在可信环境下对客户虚拟机内的可执行程序产生度量值,它们在验证时将作为标准值。然后在程序运行时提取其代码段并计算出该代码段的度量值,将其传送给Host OS的度量列表中。最后通过比较度量列表和作为标准的参照列表中的对应项来验证应用程序的状态。
[0007]本发明的技术方案是这样的:
[0008]本发明共包括三个步骤,具体如下:
[0009](1)步骤S1:在可信环境下获取可执行程序的度量值,并存放于Host OS中的参照列表中;
[0010](2)步骤S2:在程序运行时提取其代码段并计算该代码段的度量值,将其传送到Host OS的度量列表中;
[0011](3)步骤S3:比较度量列表和参照列表来验证应用程序的状态;其中,步骤S1,可信环境可指不连接网络的状态下或虚拟机系统初次使用的情况下。由虚拟机中的度量模块获取所有需要度量的可执行文件的代码段,并对其进行哈希运算得到一个160bit的度量值,度量值通过虚拟机通信机制传递到Host OS的参照列表中,同时依次通过PCR的扩展运算扩展到TPM的PCR寄存器中。
[0012]其中,步骤S2,度量模块根据传送给它的进程ID号,提取正在运行程序的代码段,并对其进行哈希运算得到一个leobit的度量值,度量值连同可执行文件的名称一起通过虚拟机通信机制传递到Host OS的参照列表中,其中可执行文件的名称可作为相关度量值的索引。
[0013]其中,步骤S3,首先要确保度量列表和参照列表的完整性。以参照列表为例,有一个PCR寄存器保存着当前所有已产生的度量值的SHA-1运算的累计哈希值,由于PCR在TPM硬件中,它能够抵御任何软件攻击,因此PCR中的累积哈希值是可靠的。为了验证参照列表的完整性,可将参照列表中所有度量值按序依次进行SHA-1运算,将得到的累计哈希值与对应PCR中的值做比较,如果相同则证明参照列表是安全的。最后将度量列表中的度量值与参照列表中有相同索引的度量值做比较,即可发现此可执行文件是否受到了攻击。
[0014]3、优点及功效:
[0015]本发明所提出的基于TPM的虚拟机内应用程序完整性度量方法。与现有技术相t匕,其主要优点是:⑴实施灵活,KVM和Linux都是开源软件可以根据需要对其进行修改。
(2)性价比高,大部分机器都配有TPM芯片,并且有可用TPM模拟器来模拟TPM的功能,不要购买其他软硬件。(3)开销小,虚拟机内度量方法不需要虚拟机之间的上下文切换,因此比虚拟机外监控方法更高效。(4)安全性高,能成功的检测到对虚拟机内应用程序的攻击。

【专利附图】

【附图说明】
[0016]图1虚拟机内应用程序的完整性的整体流程图
[0017]图2TPM中PCR寄存器的分配方式图
[0018]图3应用程序状态验证流程图

【具体实施方式】
[0019]为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0020]本发明的主要思想是利用可信计算技术和虚拟机内的完整性度量技术对虚拟机内运行的应用程序进行安全保护,利用硬件保存度量结果,能够提高对虚拟机内应用程序攻击判断的准确性和可靠性。
[0021]下面以一实例进行说明,Host OS之上运行了两个虚拟机VM1和VM2,其中VM1中运行应用程序Pl,VM2中运行应用程序P2。
[0022]首先按照TPM2.0标准中规定了 PCR0 — PCR7由B1S和Bootloader使用,它们不可由应用程序使用,因此本发明使用PCR8来依次存储参照列表中的每一个的度量值,使用PCR9用来依次存储度量列表中的每一个度量值。TPM中PCR寄存器的具体分配方式如图2,规定完PCR寄存器的使用方式后,按照图1所示,虚拟机内应用程序的完整性度量架构即可运行,包括以下步骤:
[0023](1)步骤S1:在可信环境下获取可执行程序的度量值,并存放于Host OS中的参照列表中。
[0024]可信环境可指不连接网络的状态下或虚拟机系统初次使用的情况下。由虚拟机中的度量模块获取所有需要度量的可执行文件的代码段,选取进程的代码段作为度量对象是因其是进程必不可少的一部分,而且进程的代码段能够体现应用程序的动态变化情况。对进程的代码段进行哈希运算得到一个leobit的度量值,度量值通过虚拟机通信机制传递到Host OS的参照列表中,同时也依次通过PCR的扩展运算(PCR_Extend)扩展到TPM的PCR寄存器中。PCR的扩展运算可用如下表达式描述:
[0025]PCR_Extend(PCR[i],m) = SHA-1 (PCR[I],m)
[0026]这个扩展运算是一个SHA-1运算,SHA-1是安全哈希的一种,它的输入最大可可以有(264-1)位二进制数,而输出总是160bit的二进制数。对PCR[i]和m进行扩展运算后会重新写回PCR[i],因此PCR[i]中存放的是累计度量值。
[0027](2)步骤S2:在程序运行时提取其代码段并计算该代码段的度量值,将其传送到Host OS的度量列表中。
[0028]在程序运行时,获取其进程ID号。度量模块根据传送给它的进程ID号,提取正在运行进程的代码段,并对其进行哈希运算得到一个leobit的度量值,度量值连同可执行文件的名称一起通过虚拟机通信机制传送到Host OS的度量列表中,并将其扩展到PCR9中。其中可执行文件的名称可作为相关度量值的索引。
[0029](3)步骤S3:在度量列表和参照列表都完整的情况下,比较它们来验证应用程序的状态。
[0030]首先要确保度量列表和参照列表的完整性,证明它们没有受到恶意篡改。如图3所示,对于参照列表来说,TPM的PCR8寄存器保存着当前所有已产生的度量值的SHA-1运算的累计哈希值。为了验证参照列表的完整性,可将参照列表中所有度量值依次进行SHA-1运算,将得到的累计哈希值与PCR8中的值做比较,如果相同证明参照列表是完整的没有被恶意篡改。用同样的方式证明度量列表是完整性的。在度量列表和参照列表都是完整的情况下,将度量列表中的度量值与参照列表中有相同索引的度量值做比较,即可发现此可执行文件是否受到了攻击。
[0031]应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种基于TPM的虚拟机内应用程序完整性度量方法,其特征在于:该方法具体步骤如下: 步骤一:在可信环境下获取可执行程序的度量值,并存放于Host OS中的参照列表中作为标准值; 步骤二:在程序运行时提取其代码段并计算该代码段的度量值,将其传送给Host OS的度量列表中; 步骤三:比较度量列表和参照列表来验证应用程序的状态。
【文档编号】G06F21/55GK104298917SQ201410645962
【公开日】2015年1月21日 申请日期:2014年11月14日 优先权日:2014年11月14日
【发明者】肖利民, 商梦德, 阮利, 李书攀 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1