一种虚拟机监控器本地完整性检测的系统及实现方法

文档序号:10569774阅读:277来源:国知局
一种虚拟机监控器本地完整性检测的系统及实现方法
【专利摘要】本发明公开了一种虚拟机监控器本地完整性检测的系统及实现方法,属于信息安全领域,本发明要解决的技术问题为如何能够实现用户对自己VM运行的底层环境进行验证,确保对VM的安全生产,采用的技术方案为:(1)、一种虚拟机监控器本地完整性检测的系统,该系统包括物理平台和VM,所述物理平台上设置有TPM或TCM芯片,在该物理平台上为每个VM虚拟各自对应的vTPM。(2)一种虚拟机监控器本地完整性检测的实现方法,该方法包括两个阶段,分别为标准PCR值封装阶段和PCR值对比解封装阶段。
【专利说明】
一种虚拟机监控器本地完整性检测的系统及实现方法
技术领域
[0001]本发明涉及信息安全领域,具体地说是一种虚拟机监控器本地完整性检测的系统及实现方法。
【背景技术】
[0002]VMM (Virtual Machine Monitor,虚拟机监控器)是一个系统软件,可以维护多个高效的、隔离的程序环境,该环境支持用户直接去访问真实硬件,这样的程序环境就称为虚拟机(Virtual Machine,VM)。物理机通过VMM管理计算机系统的真实资源,为虚拟机提供接口。即,VMM是VM与底层硬件交互的桥梁,一旦VMM被攻击或恶意修改,VM的安全就会受到威胁。
[0003]在云计算环境中,虽然逻辑上,用户有管理自己VM的权限,但物理上VM是运行在某台物理服务器上,同时受VMM的直接管理,而这种管理对用户来说是透明的,用户无法对自己VM运行的底层环境进行验证,进而对VM的安全产生顾虑。
[0004]专利号为CN103995732 A的专利文献公开了一种虚拟可信平台模块功能实现方法和管理设备,其中,该方法在采用ARMV8架构的处理器的异常层级EL3中执行,该方法包括:根据一个或多个VM的需求,生成一个或多个与每个VM对应的νΤΡΜ实例,将生成的一个或多个的νΤΡΜ实例存储在预设安全空间中,其中,每个νΤΡΜ实例有专用的实例通信队列给与其对应的VM使用,每个实例通信队列分配有物理地址;通过与VMM以及所述VM交互,使得VM获取VM的虚拟地址空间中与νΤΡΜ实例的通信队列物理地址对应的VM的通信队列虚拟地址,并使得VM通过VM的通信队列虚拟地址与νΤΡΜ实例的通信队列进行通信。该专利存在实施不便且安全性较低的缺点,而且不能够实现用户对自己VM运行的底层环境的完整性检测。
[0005]如何能够实现用户对自己VM运行的底层环境进行验证,确保对VM的安全生产是目前现有技术中存在的技术问题。

【发明内容】

[0006]本发明的技术任务是针对以上不足,提供一种虚拟机监控器本地完整性检测的系统及实现方法,来解决如何能够实现用户对自己VM运行的底层环境进行验证,确保对VM的安全生产的问题。
[0007]本发明的技术任务是按以下方式实现的,一种虚拟机监控器本地完整性检测的系统,该系统包括物理平台和VM(虚拟机),所述物理平台上设置有TPM或TCM芯片,且TPM或TCM芯片能够正常启动和运行,在该物理平台上为每个VM虚拟各自对应的vTPM(虚拟可信平台模块),该系统实现完整性检测的方法:将存有VMM状态的物理PCR映射到νΤΡΜ对应的vPCR中,VM用户指定VM中的机密数据,将机密数据与该vPCR中的状态信息封装为数据块并保存;数据块解封装时,只有在当前存储VMM状态信息的vPCR值与封装的数据块中的vPCR值一致时,才能成功解封装数据块得到机密数据。
[0008]其中,可信计算技术的核心是用来作为可信存储根和可信报告根的TPM/TCM芯片。嵌入TPM芯片的平台在启动过程中,会将每层平台状态通过扩展操作写入TPM的PCR中,TPM中的PCR只允许扩展和重置,不允许修改,从而保证了 PCR中状态的真实可靠性。TPM提供的封装功能可以将平台数据与指定状态(如特定PCR)绑定在一起,只允许在同样的状态下解封装。同时针对虚拟化的问题,可信计算组织(Trusted Computing Group, TCG)提出了虚拟可信平台架构,IBM公司也实现了νΤΡΜ框架,借此可以将可信传递到VM层次。
[0009]一种虚拟机监控器本地完整性检测的实现方法,该实现方法包括两个阶段,分别为标准PCR值封装阶段和PCR值对比解封装阶段;
所述标准PCR值封装阶段指的是在VMM首次启动时,将存有VMM(虚拟机监控器)状态的物理PCR映射到νΤΡΜ(虚拟可信平台模块)对应的vPCR中,由VM用户指定VM中的机密数据,将机密数据与该vPCR中的状态信息封装为数据块并保存;其中,标准PCR值封装阶段的前提是默认VMM首次启动为正常状态。
[0010]所述PCR值对比解封装阶段指的是在后续VM再启动时,先对数据块执行解封装操作,只有在当前存储VMM状态信息的vPCR值与数据块中的vPCR值一致时,才能成功解封装得到机密数据;如果解封装失败,VM用户报告VMM异常。其中,PCR值对比解封装阶段依赖于每当物理平台重启,TPM会如实记录当前物理平台状态,保证PCR中是真实的物理平台状态。[0011 ]作为优选,所述标准PCR值封装阶段具体的工作流程如下:
(1)、物理平台正常启动,按照8103->800丨10&(16广>03/¥11的顺序度量胃状态,并将度量值扩展到相应的PCR中;
(2 )、VM用户启动VM及VM对应的νΤΡΜ ;
(3)、将TPM(可信平台模块)的PCR[0]到PCR[8]映射到对应的νΤΡΜ(虚拟可信平台模块)的 PCR[0]到PCR[8]中;
(4)、用户指定本VM中的机密数据,请求νΤΡΜ将机密数据与指定PCR或PCR组封装为数据块(DataBlob);
(5)、VM用户将νΤΡΜ返回的数据块保存在本地。
[0012]作为优选,所述PCR值对比解封装阶段具体的工作流程如下:
(1)、物理平台重启;
(2)、按照B10S->BOOtlOader->0S/VMM的顺序度量VMM当前状态,并将度量值扩展到相应的PCR中;
(3 )、VM用户启动VM及VM对应的νΤΡΜ ;
(4)、将当前TPM的PCR[0]到PCR[8]映射到对应的νΤΡΜ的PCR[0]到PCR[8]中;
(5)、VM用户请求νΤΡΜ解封装标准PCR值封装阶段保存的数据块;
(6)、νΤΡΜ对比数据块中的PCR的值与对应的当前PCR值是否一致:
①、若一致,则解封装数据块并返回机密数据,VM正常运行;
②、若不一致,则νΤΡΜ返回错误,VM用户报告VMM检测异常。
[0013]本发明的一种虚拟机监控器本地完整性检测的系统及实现方法具有以下优点:
1、为了使VM的用户能够验证VMM的完整性,进而采取保护措施,本发明提出了如下的基本思路:在VMM首次启动时,将存有VMM状态的物理PCR映射到νΤΡΜ对应的vPCR中,由用户指定本VM中的机密数据,将其与该vPCR中的状态信息封装保存;在后续VM再启动时,需要先对封装数据块执行解封装操作,只有在当前存储VMM状态信息的vPCR值与封装数据块中的vPCR值一致时,才能成功解封装得到机密数据,如果解封装失败,虚拟机用户报告VMM异常,能够实现用户对自己VM运行的底层环境进行验证,确保对VM的安全生产;
2、本发明通过本地检测虚拟机监控器(Virtual Machine Monitor, VMM)真实的状态防止恶意VMM对VM机密数据的窥视或窃取的方法。
[0014]故本发明具有设计合理、结构简单、使用方便、一物多用等特点,因而,具有很好的推广使用价值。
【附图说明】
[0015]下面结合附图对本发明进一步说明。
[0016]附图1为TPM中的PCR与νΤΡΜ中的PCR映射关系示意图;
附图2为一种虚拟机监控器本地完整性检测的实现方法中的标准PCR值封装阶段的工作流程图;
附图3为一种虚拟机监控器本地完整性检测的实现方法中的PCR值对比解封装阶段的工作流程图。
【具体实施方式】
[0017]参照说明书附图和具体实施例对本发明的一种虚拟机监控器本地完整性检测的系统及实现方法作以下详细地说明。
[0018]实施例1:
如附图1所示,本发明的一种虚拟机监控器本地完整性检测的系统,该系统包括物理平台和VM(虚拟机),所述物理平台上设置有TPM或TCM芯片,且TPM或TCM芯片能够正常启动和运行,在该物理平台上为每个VM虚拟各自对应的νΤΡΜ(虚拟可信平台模块),该系统实现完整性检测的方法:将存有VMM状态的物理PCR映射到νΤΡΜ对应的vPCR中,VM用户指定VM中的机密数据,将机密数据与该vPCR中的状态信息封装为数据块并保存;数据块解封装时,只有在当前存储VMM状态信息的vPCR值与封装的数据块中的vPCR值一致时,才能成功解封装数据块得到机密数据。
[0019]实施例2:
本发明的一种虚拟机监控器本地完整性检测的实现方法,该实现方法包括两个阶段,分别为标准PCR值封装阶段和PCR值对比解封装阶段;标准PCR值封装阶段指的是在VMM(虚拟机控制器)首次启动时,将存有VMM状态的物理PCR映射到VTPiRtS的vPCR中,由VM用户指定VM中的机密数据,将机密数据与该vPCR中的状态信息封装为数据块并保存;PCR值对比解封装阶段指的是在后续VM再启动时,先对数据块执行解封装操作,只有在当前存储VMM状态信息的vPCR值与数据块中的vPCR值一致时,才能成功解封装得到机密数据;如果解封装失败,VM用户报告VMM异常。
[0020]如附图2所示,标准PCR值封装阶段的前提是默认VMM首次启动为正常状态。标准PCR值封装阶段具体的工作流程如下:
(1)、物理平台正常启动,按照8103->800丨10&(16广>03/¥11的顺序度量胃状态,并将度量值扩展到相应的PCR中;
(2 )、VM用户启动VM及VM对应的νΤΡΜ ; (3)、将TPM的PCR[0]到PCR[8]映射到对应的νΤΡΜ的PCR[0]到PCR[8]中;
(4)、用户指定本VM中的机密数据,请求νΤΡΜ将机密数据与指定PCR或PCR组封装为数据块;
(5)、VM用户将νΤΡΜ返回的数据块保存在本地。
[0021]如附图3所示,PCR值对比解封装阶段依赖于每当物理平台重启,TPM会如实记录当前物理平台状态,保证PCR中是真实的物理平台状态。PCR值对比解封装阶段具体的工作流程如下:
(1)、物理平台重启;
(2)、按照B10S->BOOtlOader->0S/VMM的顺序度量VMM当前状态,并将度量值扩展到相应的PCR中;
(3 )、VM用户启动VM及VM对应的νΤΡΜ ;
(4)、将当前TPM的PCR[0]到PCR[8]映射到对应的νΤΡΜ的PCR[0]到PCR[8]中;
(5)、VM用户请求νΤΡΜ解封装标准PCR值封装阶段保存的数据块;
(6)、νΤΡΜ对比数据块中的PCR的值与对应的当前PCR值是否一致:
①、若一致,则解封装数据块并返回机密数据,VM正常运行;
②、若不一致,则νΤΡΜ返回错误,VM用户报告VMM检测异常。
[0022]通过上面【具体实施方式】,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的两种【具体实施方式】。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
[0023]除说明书所述的技术特征外,均为本专业技术人员的已知技术。
【主权项】
1.一种虚拟机监控器本地完整性检测的系统,其特征在于:该系统包括物理平台和VM,所述物理平台上设置有TPM或TCM芯片,在该物理平台上为每个VM虚拟各自对应的νΤΡΜ,该系统实现完整性检测的方法:将存有VMM状态的物理PCR映射到νΤΡΜ对应的vPCR中,VM用户指定VM中的机密数据,将机密数据与该vPCR中的状态信息封装为数据块并保存;数据块解封装时,只有在当前存储VMM状态信息的vPCR值与封装的数据块中的vPCR值一致时,才能成功解封装数据块得到机密数据。2.一种虚拟机监控器本地完整性检测的实现方法,其特征在于:该实现方法包括两个阶段,分别为标准PCR值封装阶段和PCR值对比解封装阶段; 所述标准PCR值封装阶段指的是在VMM首次启动时,将存有VMM状态的物理PCR映射到νΤΡΜ对应的vPCR中,由VM用户指定VM中的机密数据,将机密数据与该vPCR中的状态信息封装为数据块并保存; 所述PCR值对比解封装阶段指的是在后续VM再启动时,先对数据块执行解封装操作,只有在当前存储VMM状态信息的vPCR值与数据块中的vPCR值一致时,才能成功解封装得到机密数据;如果解封装失败,VM用户报告VMM异常。3.根据权利要求2所述的一种虚拟机监控器本地完整性检测的实现方法,其特征在于:所述标准PCR值封装阶段具体的工作流程如下: (1)、物理平台正常启动,按照8103->800丨10&(16广>03/¥11的顺序度量¥1^状态,并将度量值扩展到相应的PCR中; (2 )、VM用户启动VM及VM对应的νΤΡΜ ; (3 )、将TPM的PCR [ O ]到PCR [ 8 ]映射到对应的νΤΡΜ的PCR [ O ]到PCR [ 8 ]中; (4)、用户指定本VM中的机密数据,请求νΤΡΜ将机密数据与指定PCR或PCR组封装为数据块; (5 )、VM用户将νΤΡΜ返回的数据块保存在本地。4.根据权利要求2所述的一种虚拟机监控器本地完整性检测的实现方法,其特征在于:所述PCR值对比解封装阶段具体的工作流程如下: (1)、物理平台重启; (2)、按照B1S->B00tl0ader->OS/VMM的顺序度量VMM当前状态,并将度量值扩展到相应的PCR中; (3 )、VM用户启动VM及VM对应的νΤΡΜ ; (4 )、将当前TPM的PCR [ O ]到PCR [ 8 ]映射到对应的νΤΡΜ的PCR [ O ]到PCR [ 8 ]中; (5)、VM用户请求νΤΡΜ解封装标准PCR值封装阶段保存的数据块; (6 )、vTPMX^t比数据块中的PCR的值与对应的当前PCR值是否一致: ①、若一致,则解封装数据块并返回机密数据,VM正常运行; ②、若不一致,则νΤΡΜ返回错误,VM用户报告VMM检测异常。
【文档编号】G06F9/455GK105930199SQ201610229787
【公开日】2016年9月7日
【申请日】2016年4月14日
【发明人】郝虹, 戴鸿君, 于治楼
【申请人】浪潮集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1