CN109358945A - 一种验证虚拟机硬件资源完整的方法和装置 - Google Patents

一种验证虚拟机硬件资源完整的方法和装置 Download PDF

Info

Publication number
CN109358945A
CN109358945A CN201811127640.3A CN201811127640A CN109358945A CN 109358945 A CN109358945 A CN 109358945A CN 201811127640 A CN201811127640 A CN 201811127640A CN 109358945 A CN109358945 A CN 109358945A
Authority
CN
China
Prior art keywords
hardware
pcr
virtual hardware
metric
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811127640.3A
Other languages
English (en)
Inventor
刘海伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201811127640.3A priority Critical patent/CN109358945A/zh
Publication of CN109358945A publication Critical patent/CN109358945A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种验证虚拟机硬件资源完整的方法和装置。所述方法通过在虚拟机引导阶段度量、记录虚拟硬件的度量值,然后在虚拟机启动后,判断虚拟硬件是否完整,当虚拟硬件不完整时,提供虚拟硬件度量日志来追溯哪个虚拟硬件不完整。解决了现有技术中当虚拟硬件不完整时,无法判断是哪个虚拟硬件不完整导致的整个虚拟机硬件的不完整的技术问题,提高了虚拟化平台安全的管理精度。

Description

一种验证虚拟机硬件资源完整的方法和装置
技术领域
本发明涉及云计算技术领域,尤其涉及一种验证虚拟机硬件资源完整的方法和装置。
背景技术
随着虚拟化技术的逐渐成熟,云计算平台越来越广泛的应用到政府、科研、企事业单位中。但是虚拟化带来的安全隐患也日益凸显。云计算平台虚拟出的虚拟硬件是否安全可靠成为云计算应用中的亟待解决的问题。基于可信计算中的远程证明的技术,通过比对最终PCR寄存器中的度量值与基准值,虽然可以判断虚拟硬件的完整性,但是当虚拟硬件不完整时,无法判断是哪个虚拟硬件不完整导致的整个虚拟机硬件的不完整。
发明内容
为了弥补现有技术的缺陷,本发明提供了一种验证虚拟机硬件资源完整的方法和装置,以解决现有技术中当虚拟硬件不完整时,无法判断是哪个虚拟硬件不完整导致的整个虚拟机硬件的不完整的技术问题,提高虚拟化平台安全的管理精度。
第一方面,本发明实施例提供了一种验证虚拟机硬件资源完整的方法,包括以下步骤:
S10,在操作系统引导阶段,度量将要加载的所述虚拟硬件,把度量值扩展到平台配置寄存器PCR中,同时把所述度量值记录到高级配置与电源接口ACPI Table中;
S20,在操作系统启动之后,读取所述PCR中的度量扩展值,同时从所述ACPI Table中解析出虚拟硬件度量日志VHML;
S30,在操作系统启动之后,逐个比较读取的所述度量扩展值与基准度量扩展值,当比较结果都相同时,则表明当前虚拟硬件资源是完整可信的,当任何一个比较结果不相同时,逐个遍历虚拟硬件度量日志VHML来判定不可信的虚拟硬件。
第二方面,本发明实施例提供了一种验证虚拟机硬件资源完整的装置,其特征在于,所述装置包括:
硬件度量记录部件,用于在操作系统引导阶段,度量将要加载的所述虚拟硬件,把度量值扩展到平台配置寄存器PCR中,同时把所述度量值记录到高级配置与电源接口ACPITable中;
硬件日志解析部件,用于在操作系统启动之后,读取所述PCR中的度量扩展值,同时从所述ACPI Table中解析出虚拟硬件度量日志VHML;
硬件完整性判定部件,用于在操作系统启动之后,逐个比较读取的所述度量扩展值与基准度量扩展值,当比较结果都相同时,则表明当前虚拟硬件资源是完整可信的,当任何一个比较结果不相同时,逐个遍历虚拟硬件度量日志VHML来判定不可信的虚拟硬件。
本发明的有益效果在于:本发明基于可信平台模块(vTrusted Platform Module,vTPM),提出一种基于硬件度量日志验证虚拟机硬件资源完整的方法,该方法在虚拟机虚拟硬件加载过程中,度量虚拟硬件的代码和配置,记录度量扩展值到vTPM的PCR寄存器时,也记录度量值到ACPI Table中,当虚拟硬件的代码和配置都是预期时,虚拟机的虚拟硬件资源是完整可信的;当虚拟硬件的代码和配置不是预期时,则遍历从ACPI Table中导出的虚拟硬件度量日志VHML,找出不完整的虚拟硬件。通过所述方法解决了现有技术中当虚拟硬件不完整时,无法判断是哪个虚拟硬件不完整导致的整个虚拟机硬件的不完整的技术问题,提高了虚拟化平台安全的管理精度。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种基于硬件度量日志验证虚拟机硬件资源完整的方法的流程示意图;
图2为本发明一实施例提供的虚拟硬件度量日志的ACPI Table的示意图;
图3为本发明一实施例提供的度量值扩展到PCR以及记录硬件日志的流程示意图;
图4为本发明一实施例提供的解析虚拟硬件度量日志VHML的方法流程示意图;
图5为本发明一实施例提供的一种判定虚拟硬件完整性的方法流程示意图;
图6为本发明一实施例提供的一种基于硬件度量日志验证虚拟机硬件资源完整的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不用于对本发明的限制。
本发明提出了一种基于硬件度量日志验证虚拟机硬件资源完整的方法。该方法基于vTPM的PCR寄存器和ACPI Table来记录虚拟硬件的完整性。vTPM是独立于虚拟机的安全设备,该设备符合可信计算组织TCG的TPM2.0规范,具有安全存储、密码运算等安全特性。其中PCR寄存器具有如下特性:
1、只有在特定时间段(操作系统引导阶段)可以进行扩展(写入);
2、在操作系统启动之后,PCR0-PCR7只能读取,不能修改;
3、扩展到PCR的值必须为SHA1、SHA256、SM3算法的哈希值;
4、PCR寄存器个数有限,记录硬件度量扩展值的只有0-7。
ACPI Tables是操作系统引导阶段与操作系统启动之后数据传递的桥梁,可以保存引导阶段的硬件配置、自定义数据。操作系统启动之后可以从ACPI Table中获取操作系统引导阶段的硬件配置和自定义数据。ACPI Table在操作系统启动之后也具有不可篡改性。
因此,基于vTPM的PCR寄存器和ACPI Table的特性,本发明一实施例提出了一种基于硬件度量日志验证虚拟机硬件资源完整的方法,如图1所示,包括以下步骤:
S10,在操作系统引导阶段,度量将要加载的所述虚拟硬件,把度量值扩展到平台配置寄存器PCR中,同时把所述度量值记录到高级配置与电源接口ACPI Table中;
S20,在操作系统启动之后,读取所述PCR中的度量扩展值,同时从所述ACPI Table中解析出虚拟硬件度量日志VHML;
S30,在操作系统启动之后,逐个比较读取的所述度量扩展值与基准度量扩展值,当比较结果都相同时,则表明当前虚拟硬件资源是完整可信的,当任何一个比较结果不相同时,逐个遍历虚拟硬件度量日志VHML来判定不可信的虚拟硬件。
本实施例提供的基于硬件度量日志验证虚拟机硬件资源完整的方法,基于vTPM的PCR寄存器和ACPI Table在操作系统启动之后的不可篡改特性,根据虚拟硬件度量日志VHML来验证虚拟机资源的完整性,解决了现有技术中当虚拟硬件不完整时,无法判断是哪个虚拟硬件不完整导致的整个虚拟机硬件的不完整的技术问题,提高了虚拟化平台安全的管理精度。
其中,在步骤S10中,把度量值扩展到PCR寄存器时,按照如下公式进行扩展:
PCRM[N]=Hash(PCRM[N-1]||Hash(EventData)),其中:
PCRM[N]:表示当前N状态要扩展的值;
PCRM[N-1]:表示扩展前N-1状态时PCRM中的值;
M:表示PCR0-PCR7的索引,取值为0-7;
N:表示扩展后的时刻,N-1:表示扩展前的时刻;
||:表示将两个值拼接成一个值;
Hash(EventData):表示对将要加载的虚拟硬件做哈希计算。
所谓扩展解释如下:按照相同的值,相同的顺序进行哈希,最终得到的值是相同的。但按照相同的值、不同的顺序进行哈希,或者按照不同的值、相同的顺序进行哈希,最终得到的值是不同的。
即:Hash(A||B)不等于Hash(B||A),
Hash(A||C)不等于Hash(A||B)。
这样,如果PCR中的扩展值相同,就表明不仅每个虚拟硬件是可信的,而且其加载顺序都是预期。
基于以上原理,具体实施步骤如下:
(1)对将要加载的虚拟硬件EventData(加载一个虚拟硬件,称之为加载一个事件,所以称之为EventData)做哈希计算得到Hash(EventData);
(2)按照下表1中,EventData与PCR寄存器的对应关系,确定该虚拟硬件将要扩展到那个PCR寄存器(确定0-7中的一个PCR寄存器M),然后读取该PCR中原有的值PCRM[N-1];
(3)将PCRM[N-1]与Hash(EventData)拼接成一个值
“PCRM[N-1]||Hash(EventData)”;
(4)对“PCRM[N-1]||Hash(EventData)”值再做一次哈希,存入PCRM寄存器中。
表1PCR0-PCR7寄存器中存储的虚拟硬件事件的含义
把度量值记录到到ACPI Table的方法如下:
(1)申请AddressRangeACPI类型(该类型的内存可以在操作系统引导阶段写入,操作系统启动后读取)、大小为0X100000(硬件日志的最大长度)的内存,得到该内存的起始地址,称之为LASA(Log Area Start Address),当前的日志区域大小LADL(Log Area DataLength,初始为0);同时,把LASA与LADL记录到TCPA签名(根据此签名,查找ACPI Table中记录硬件日志的关键信息LASA与LADL)的ACPI Table表中;
ACPI Table资源有限,不能直接记录度量日志,因此,只在ACPI Table中记录日志的起始地址LASA,日志大小LADL等关键信息,依据LASA、LADL这两个关键因素,我们就可以读取整个硬件日志的内容。
(2)根据表1确定EventData需要扩展到PCR寄存器的索引值PCRIndex(PCR0-PCR7)和EventType;
(3)计算EventData的大小,得到EventSize;
(4)按照下表2的格式,分别记录PCRIndex,EventType,Count(哈希算法的个数,可采用三种度量算法,此处为3),HashID(SHA1为0X04,SHA256为0X0B,SM3为0X12),HashVaule(度量对象的哈希值,SHA1为20字节,SHA256为32字节,SM3为32字节),EventSize和EventData;同时,记录该条日志的大小LogSize;
表2单条硬件度量日志格式
字段名称 字段含义 字段长度
PCRIndex PCR索引,0-7 4字节
EventType 事件类型 4字节
Count 算法个数 4字节
SHA1HashID SHA1算法ID 2字节
SHA1HashValue SHA1哈希值 20字节
SHA256HashID SHA256算法ID 2字节
SHA256HashValue SHA256哈希值 32字节
SM3HashID SM3算法ID 2字节
SM3HashValue SM3哈希值 32字节
EventSize 事件大小 4字节
EventData 硬件事件 EventSize
(5)把上述的结构记录到上述申请的LASA内存起始位置,同时,LADL增加LogSize;
(6)逐个记录加载的虚拟硬件的度量值(哈希值),追加到起始地址为LASA,偏移为LADL处,直至所有虚拟硬件被加载完毕。记录虚拟硬件度量日志的ACPI Table的示意图如图2所示。
综上所述,图3提供了在步骤S10中把度量值扩展到PCR寄存器及记录硬件日志的流程示意图,包括以下步骤:
S101,遍历虚拟机的虚拟硬件,并加载虚拟硬件EventData;
S102,把虚拟硬件的度量值扩展到PCR寄存器中;
S103,把度量值记录到ACPI Table中;
S104,检查虚拟硬件是否加载完毕,加载完毕之后则退出,否则返回步骤S101继续执行。
请参考图4,其为本发明具体实施例提供的一种解析虚拟硬件度量日志VHML的方法流程示意图,如图所示,包括以下步骤:
S201,创建虚拟硬件度量日志VHML文件;
S202,利用acpi_get_table系统函数从ACPI Table中读取TCPA签名的数据LADL与LASA;
S203,利用acpi_os_map_memory系统函数映射出起始地址为LASA、长度为LADL的硬件日志;
S204,判断LADL是否大于0,如果是,则读取4字节的PCRIndex、4字节的EventType、20字节的SHA1HashValue、32字节的SHA256HashValue、32字节的SM3HashValue、EventSize字节的EventData,并顺序写入虚拟硬件度量日志VHML;
S205,LADL去掉步骤S204中读取日志的长度(106+EventData);
S206,判断LADL是否大于0,如果是则进入步骤S204继续读取相关字段,写入虚拟硬件度量日志VHML;如果否,则退出。
请参考图5,其为本发明具体实施例提供的一种判定虚拟硬件完整性的方法流程示意图,其中,需要事先收集虚拟硬件的基准值,即:认为某一时刻(通常是虚拟机刚创建时)是完整时,读取PCR0-PCR7值,以此时寄存器的值作为基准值保存到数据库中。同时,按照相同的方法,也记录此时VHML中每个EventData对应的基准值。
如图5所示,包括以下步骤:
S301,依次读取PCR0-PCR7的值,并逐个与事先收集好的寄存器的基准值做比较;
S302,如果当前读取的PCR0-PCR7的值全部所述基准值相等,则当前虚拟硬件是完整的;如果有任何一个PCR寄存器与所述基准值不同,则虚拟硬件是不完整的,进入步骤S303;
S303,依次遍历VHML中EventData的度量值,并比较当前EventData的度量值与基准值是否相同,相同则继续遍历,不相同则表明当前的EventData是不完整的,标记出该不完整的EventData;
S304,遍历结束,汇总出不完整的EventData,即为不完整的虚拟硬件。
请参考图6,其为本发明具体实施例提供的一种基于硬件度量日志验证虚拟机硬件资源完整的装置600的结构示意图,如图所示,装置600包括:
硬件度量记录部件601,用于在操作系统引导阶段,度量将要加载的所述虚拟硬件,把度量值扩展到平台配置寄存器PCR中,同时把所述度量值记录到高级配置与电源接口ACPI Table中;
硬件日志解析部件601,用于在操作系统启动之后,读取所述PCR中的度量扩展值,同时从所述ACPI Table中解析出虚拟硬件度量日志VHML;
硬件完整性判定部件603,用于在操作系统启动之后,逐个比较读取的所述度量扩展值与基准度量扩展值,当比较结果都相同时,则表明当前虚拟硬件资源是完整可信的,当任何一个比较结果不相同时,逐个遍历虚拟硬件度量日志VHML来判定不可信的虚拟硬件。
本实施例提供的基于硬件度量日志验证虚拟机硬件资源完整的装置,基于vTPM的PCR寄存器和ACPI Table在操作系统启动之后的不可篡改特性,根据虚拟硬件度量日志VHML来验证虚拟机资源的完整性,解决了现有技术中当虚拟硬件不完整时,无法判断是哪个虚拟硬件不完整导致的整个虚拟机硬件的不完整的技术问题,提高了虚拟化平台安全的管理精度。
以上对于装置的实施例基于前述的方法实施例实现,在装置的实施例中未尽的描述,请参考前述的方法实施例。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (9)

1.一种验证虚拟机硬件资源完整的方法,其特征在于,包括以下步骤:
S10,在操作系统引导阶段,度量将要加载的虚拟硬件,把度量值扩展到平台配置寄存器PCR中,同时把所述度量值记录到高级配置与电源接口ACPI Table中;
S20,在操作系统启动之后,读取所述PCR中的度量扩展值,同时从所述ACPI Table中解析出虚拟硬件度量日志VHML;
S30,在操作系统启动之后,逐个比较读取的所述度量扩展值与基准度量扩展值,当比较结果都相同时,则表明当前虚拟硬件资源是完整可信的,当任何一个比较结果不相同时,逐个遍历虚拟硬件度量日志VHML来判定不可信的虚拟硬件。
2.根据权利要求1所述的方法,其特征在于,在所述步骤S10中,按照如下公式把度量值扩展到PCR寄存器中:
PCRM[N]=Hash(PCRM[N-1]||Hash(EventData)),其中:
PCRM[N]:表示当前N状态要扩展的值;
PCRM[N-1]:表示扩展前N-1状态时PCRM中的值;
M:表示PCR0-PCR7的索引,取值为0-7;
N:表示扩展后的时刻,N-1:表示扩展前的时刻;
||:表示将两个值拼接成一个值;
Hash(EventData):表示对将要加载的虚拟硬件做哈希计算。
3.根据权利要求2所述的方法,其特征在于,把度量值扩展到平台配置寄存器PCR中包括以下步骤:
对将要加载的虚拟硬件EventData做哈希计算得到Hash(EventData);
按照EventData与PCR寄存器的对应关系,确定该虚拟硬件将要扩展到的PCR寄存器,读取该PCR中原有的值PCRM[N-1];
将PCRM[N-1]与Hash(EventData)拼接成一个值“PCRM[N-1]||Hash(EventData)”;
对“PCRM[N-1]||Hash(EventData)”值再做一次哈希,存入PCRM寄存器中。
4.根据权利要求3所述的方法,其特征在于,把度量值记录到ACPI Table中包括以下步骤:
申请AddressRangeACPI类型、VHML最大长度的内存,得到该内存的起始地址LASA(LogArea Start Address)、当前的日志区域大小LADL(Log Area Data Length),把把LASA与LADL记录到TCPA签名的ACPI Table表中;
确定EventData需要扩展到PCR寄存器的索引值PCRIndex和EventType;
计算EventData的大小,得到EventSize;
按照单条硬件度量日志的格式记录到所述LASA内存起始位置,并且LADL增加该条日志的大小LogSize;
逐个记录加载的虚拟硬件的度量值,追加到起始地址为LASA,偏移为LADL处,直至所有虚拟硬件被加载完毕。
5.根据权利要求4所述的方法,其特征在于,所述步骤S10进一步包括以下步骤:
S101,遍历虚拟机的虚拟硬件,并加载虚拟硬件EventData;
S102,把虚拟硬件的度量值扩展到PCR寄存器中;
S103,把度量值记录到ACPI Table中;
S104,检查虚拟硬件是否加载完毕,加载完毕之后则退出,否则返回步骤S101继续执行。
6.根据权利要求1所述的方法,其特征在于,所述步骤S20进一步包括以下步骤:
S201,创建虚拟硬件度量日志VHML文件;
S202,从ACPI Table中读取TCPA签名的数据LADL与LASA;
S203,映射出起始地址为LASA、长度为LADL的硬件日志;
S204,判断LADL是否大于0,如果是,则读取相关字段,并顺序写入虚拟硬件度量日志VHML;
S205,LADL去掉步骤S204中读取日志的长度;
S206,判断LADL是否大于0,如果是则进入步骤S204继续读取相关字段,写入虚拟硬件度量日志VHML;如果否,则退出。
7.根据权利要求1所述的方法,其特征在于,所述步骤S30进一步包括以下步骤:
S301,依次读取PCR0-PCR7的值,并逐个与事先收集好的寄存器的基准值做比较;
S302,如果当前读取的PCR0-PCR7的值全部所述基准值相等,则当前虚拟硬件是完整的;如果有任何一个PCR寄存器与所述基准值不同,则虚拟硬件是不完整的,进入步骤S303;
S303,依次遍历VHML中EventData的度量值,并比较当前EventData的度量值与基准值是否相同,相同则继续遍历,不相同则表明当前的EventData是不完整的,标记出该不完整的EventData;
S304,遍历结束,汇总出不完整的EventData,即为不完整的虚拟硬件。
8.根据权利要求2所述的方法,其特征在于,哈希计算的算法为SHA1、SHA256、SM3算法。
9.一种验证虚拟机硬件资源完整的装置,其特征在于,所述装置包括:硬件度量记录部件,用于在操作系统引导阶段,度量将要加载的所述虚拟硬件,把度量值扩展到平台配置寄存器PCR中,同时把所述度量值记录到高级配置与电源接口ACPI Table中;
硬件日志解析部件,用于在操作系统启动之后,读取所述PCR中的度量扩展值,同时从所述ACPI Table中解析出虚拟硬件度量日志VHML;
硬件完整性判定部件,用于在操作系统启动之后,逐个比较读取的所述度量扩展值与基准度量扩展值,当比较结果都相同时,则表明当前虚拟硬件资源是完整可信的,当任何一个比较结果不相同时,逐个遍历虚拟硬件度量日志VHML来判定不可信的虚拟硬件。
CN201811127640.3A 2018-09-27 2018-09-27 一种验证虚拟机硬件资源完整的方法和装置 Pending CN109358945A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811127640.3A CN109358945A (zh) 2018-09-27 2018-09-27 一种验证虚拟机硬件资源完整的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811127640.3A CN109358945A (zh) 2018-09-27 2018-09-27 一种验证虚拟机硬件资源完整的方法和装置

Publications (1)

Publication Number Publication Date
CN109358945A true CN109358945A (zh) 2019-02-19

Family

ID=65347815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811127640.3A Pending CN109358945A (zh) 2018-09-27 2018-09-27 一种验证虚拟机硬件资源完整的方法和装置

Country Status (1)

Country Link
CN (1) CN109358945A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312140A (zh) * 2020-02-27 2021-08-27 慧与发展有限责任合伙企业 虚拟可信平台模块

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834860A (zh) * 2010-04-22 2010-09-15 北京交通大学 一种远程动态验证客户端软件完整性的方法
CN102930213A (zh) * 2012-10-25 2013-02-13 中国航天科工集团第二研究院七〇六所 基于虚拟机的安全监控系统和安全监控方法
CN103501303A (zh) * 2013-10-12 2014-01-08 武汉大学 一种针对云平台虚拟机度量的主动远程证明方法
CN103905461A (zh) * 2014-04-14 2014-07-02 北京工业大学 一种基于可信第三方的云服务行为可信证明方法和系统
CN104866392A (zh) * 2015-05-20 2015-08-26 浪潮电子信息产业股份有限公司 一种保护虚拟机安全的方法及装置
CN105159744A (zh) * 2015-08-07 2015-12-16 浪潮电子信息产业股份有限公司 一种虚拟机的度量方法及装置
CN107861793A (zh) * 2017-11-08 2018-03-30 浪潮(北京)电子信息产业有限公司 虚拟硬件平台启动方法、装置、设备及计算机存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834860A (zh) * 2010-04-22 2010-09-15 北京交通大学 一种远程动态验证客户端软件完整性的方法
CN102930213A (zh) * 2012-10-25 2013-02-13 中国航天科工集团第二研究院七〇六所 基于虚拟机的安全监控系统和安全监控方法
CN103501303A (zh) * 2013-10-12 2014-01-08 武汉大学 一种针对云平台虚拟机度量的主动远程证明方法
CN103905461A (zh) * 2014-04-14 2014-07-02 北京工业大学 一种基于可信第三方的云服务行为可信证明方法和系统
CN104866392A (zh) * 2015-05-20 2015-08-26 浪潮电子信息产业股份有限公司 一种保护虚拟机安全的方法及装置
CN105159744A (zh) * 2015-08-07 2015-12-16 浪潮电子信息产业股份有限公司 一种虚拟机的度量方法及装置
CN107861793A (zh) * 2017-11-08 2018-03-30 浪潮(北京)电子信息产业有限公司 虚拟硬件平台启动方法、装置、设备及计算机存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312140A (zh) * 2020-02-27 2021-08-27 慧与发展有限责任合伙企业 虚拟可信平台模块
CN113312140B (zh) * 2020-02-27 2023-12-19 慧与发展有限责任合伙企业 用于虚拟可信平台模块的系统、存储介质和方法
US11928495B2 (en) 2020-02-27 2024-03-12 Hewlett Packard Enterprise Development Lp Virtual trusted platform modules

Similar Documents

Publication Publication Date Title
US9250951B2 (en) Techniques for attesting data processing systems
US20180069756A1 (en) Automated change approval
CN103339613B (zh) 操作管理装置、操作管理方法和程序
US7809821B2 (en) Trust evaluation
CN106446061A (zh) 用于存储虚拟机镜像的方法及设备
CN109739831A (zh) 数据库之间数据校验方法及装置
CN109409096A (zh) 内核漏洞修复方法、装置、服务器及系统
US9262279B2 (en) Classifying and monitoring database operations based on a cost of recovery
CN106487603A (zh) 一种响应测试方法及装置
WO2023051308A1 (zh) 数据校验方法、装置、设备及存储介质
CN108182366A (zh) 一种度量虚拟机的文件的方法、装置及设备
CN109614154A (zh) 一种计算机安全启动方法
CN106980800B (zh) 一种加密固态硬盘认证分区的度量方法和系统
CN109117643A (zh) 系统处理的方法以及相关设备
CN109358945A (zh) 一种验证虚拟机硬件资源完整的方法和装置
CN105868127A (zh) 一种数据存储、读取方法及装置
CN113419905A (zh) 一种实现可信验证的方法及装置和安全模块
US11210003B2 (en) Method, device and computer program product for restoring data based on replacing child node identifiers with parent node identifier
CN106557700B (zh) 一种用于可信计算机的度量系统及方法
CN108769123B (zh) 一种数据系统及数据处理方法
CN116483641B (zh) 硬盘异常掉电测试方法、系统及介质
JP3498702B2 (ja) コンピュータシステム及びそれに用いるトレース情報制御方法
CN110716939B (zh) 数据管理方法、电子设备、系统及介质
KR101346809B1 (ko) 로그 파일의 무결성을 보호하기 위한 방법 및 장치
CN117093404B (zh) 可信动态度量过程中不可信进程自恢复方法、系统及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190219