一种虚拟机运行时的可信验证方法和设备的制造方法_2

文档序号:8396103阅读:来源:国知局
5为本发明实施例提供的一种虚拟机运行时的可信验证设备的结构示意图。
【具体实施方式】
[0035]针对上述现有技术中存在的技术问题,本发明实施例提供了一种虚拟机运行时的可信验证的技术方案,应用于包括虚拟机和外部可信任实体的系统。在该技术方案中,虚拟机中包括配置信息收集模块,远程验证服务模块,以及VTPM ;虚拟机的操作系统内核中的配置信息收集模块在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将该其他内核模块的hash值,以及该可执行程序的hash值和脚本的hash值追加到VTPM的PCR(Program Control Register,程序控制寄存器)中;当虚拟机的远程验证服务模块接收到外部可信任实体发送的可信证据验证请求时,获取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回给所述外部可信任实体,以使所述外部可信任实体在根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信,在不影响云计算本身操作数据的功能的前提下,提高虚拟机可信验证的安全性和可实现性。
[0036]需要注意的是,本发明实施例提供的技术方案实现的基础是虚拟机所运行的宿主物理机及宿主操作系统在启动、迁移时已经过可信验证。
[0037]下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0038]如图1所示,为本发明实施例提供的一种虚拟机可信验证方法的流程示意图,可以包括以下步骤:
[0039]步骤101、虚拟机的操作系统内核中的配置信息收集模块在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的程序控制寄存器PCR中。
[0040]具体的,在本发明实施例中,虚拟机的操作系统内核中,配置信息收集模块会早于操作系统内核中的其他内核模块启动,从而,当操作系统内的其他内核模块启动时,配置信息收集模块可以将该其他内核模块的名称和hash值保存到配置信息列表中,并将该其他内核模块的hash值追加到VTPM的PCR中;
[0041]当虚拟机的操作系统运行时,配置信息收集模块可以将向内存中加载的可执行程序和脚本的名称和hash值保存到配置信息列表中,并将该可执行程序的hash值和脚本的hash值追加到VTPM的PCR中。
[0042]需要注意的是,在本发明实施例中,虚拟机的操作系统内核中的其他内核模块是指除了所述配置信息收集模块之外的,虚拟机的操作系统内核中包含的常规内核模块,其与虚拟机使用的具体操作系统有关,在此不做具体说明。
[0043]步骤102、虚拟机验证验证服务模块接收外部可信任实体发送的可信证据验证请求,获取所述配置信息列表,和所述VTPM的PCR中保存PCR值,并返回给所述外部可信任实体。
[0044]具体的,在本发明实施例中,可以通过虚拟机启动或迁移,或计时器驱动的方式触发外部可信任实体验证虚拟机的可信性。
[0045]当外部可信任实体监测到所述虚拟机启动或迁移时,或预设计时器超时时,外部可信任实体可以向虚拟机的远程验证服务模块发送可信验证请求,以请求验证服务模块返回配置信息列表,以及VTPM的PCR中保存的PCR值(即将上述其他内核模块的hash值,以及可执行程序的hash值和脚本的hash值追加到PCR中后得到的值),并根据该配置信息列表,以及PCR值对虚拟机的可信性进行验证。
[0046]远程验证服务模块接收到外部可信任实体发送的可信证据验证请求后,可以获取配置信息列表,以及VTPM的PCR中保存PCR值,并返回给外部可信任实体。
[0047]步骤103、外部可信任实体根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可?目。
[0048]具体的,外部可信任实体接收到远程验证服务模块发送的配置信息列表,以及所述PCR值后,可以对配置信息列表中包括的其他内核模块的hash值,以及可执行程序的hash值和脚本的hash值按照加载到内存中执行的顺序进行模拟追加操作(即模拟extend操作),并比较该模拟追加操作的结果和所述PCR值,并当比较结果为相同时,确定所述配置信息列表未被修改。
[0049]当外部可信任实体确定所述配置信息列表未被修改时,根据该配置信息列表中包括的其他内核模块,以及可执行程序和脚本的hash值查询本地特征数据库,若在本地特征数据库中查询到匹配的内核模块,以及可执行程序和脚本的hash值,且该匹配的内核模块,以及可执行程序和脚本为可信任状态,则确定所述虚拟机可信;若在本地特征数据库中未查询到匹配的内核模块,以及可执行程序和脚本的hash值,或查询到匹配的内核模块,以及可执行程序和脚本的hash值,且该匹配的内核模块,以及可执行程序和脚本为不可信任状态,则确定所述虚拟机不可信。
[0050]优选地,为了保证远程验证服务模块发送给外部可信任实体的相关数据的可靠性,在本发明实施例中,VTPM在将自身存储的所述PCR值返回给远程验证服务模块时,可以对所述PCR值进行签名,并将签名后的所述PCR值通过远程验证服务模块返回给外部可信任实体,外部可信任实体接收到相关数据后,需要先对签名进行验证,并当验证通过后进行后续流程。
[0051]在该情况下,远程验证服务模块返回给外部可信任实体的数据包括配置信息列表,AIK证书,签名后的所述PCR值。外部可信任实体接收到相关数据后,首先会根据AIK证书对所述PCR值的签名进行验证,并当验证通过后,进一步判断配置信息列表是否被修改。
[0052]进一步地,在本发明实施例中,外部可信任实体发送的可信证据验证请求中还可以包括随机数,相应地,验证验证服务模块接收到可信验证请求后,将该随机数转发给VTPM,由VTPM对该随机数,以及所述PCR值进行签名,并一起返回给外部可信任实体。
[0053]在该情况下,外部可信任实体接收到远程验证服务模块返回的相关数据后,并对该签名验证通过后,需要比较接收到的数据中的随机数和自身发送的可信证据验证请求中携带的随机数是否相同,并在相同的情况下,进一步判断接收到的配置信息列表是否被修改。
[0054]为了更好地理解本发明实施例提供的技术方案,下面结合具体的应用场景对本发明实施例提供的技术方案进行更加详细的描述。
[0055]在该实施例中,系统架构图可以如图2所示,其中,外部可信任实体(TTP)用于检查虚拟机上收集到的可信证据,实现对云提供商的可信性审计和验证配置;信息收集模块会记录并保存系统中所有运行程序的信息;远程验证服务模块将配置信息收集模块记录的日志发送到外部可信任实体。此外,虚拟机中还需要配置VTPM芯片,作为可信任根;软件上B1S,Bootloader需要根据SRTM规范扩展可信度量功能,操作系统内核需要内置IMA功能模块,也就是配置信息收集模块,并且在应用程序层部署远程验证服务模块,以及相关依赖程序如TrouSerS等。
[0056]在该实施例中,虚拟机可信验证可以分为可信证据采集和可信证据验证两个过程:
[0057]A、虚拟机运行时可信证据采集
[0058]参见图3,操作系统内核的配置信息收集模块对内核的关键接口设置hook函数,当它启动之后会计算其他内核模块的hash值并保存。此外,在操作系统运行时,配置信息收集模块会计算正要加载到内存的可执行程序以及脚本的hash值等,然后判断可执行程序或者脚本的名称和hash值是否已经保存到配置信息列表CL中,如果没有的话,则保存,并将其追加到TPM的PCR中,由于PCR的追加操作不可逆且配置信息收集模块本身在物理机启动时已经过验证,所以它真实记录了所有运行程序可信任链,保证了远程验证时CL的完整性。
[0059]B、运行时可信证据验证
[0060]1、外部可信任实体生成随机数,并将其发送给虚拟机的远程验证服务模块;
[0061 ] 2、远程验证服务模块将接收到的随机数传入VTPM,使用VTPM对当前的PCR值以及该随机数进行签名;远程验证服务模块将VTPM签名后的结果、AIK证书以及通过证据收集机制得到的配置信息列表CL返回给外部可信任实体;
[0062]3、外部可信任实体接收到证据信息后,首先会验证VTPM的签名,确保所接收PCR值和随机数的完整性;并验证该随机数与第I步中发送的随机数是否一致;如果不一致表明接收的信息与本次验证无关;如果一致,再根据配置信息列表模拟extend操作计算PCR值,如果该模拟extend操作得到的PCR值与返回的PCR的值一致,则表明配置信息列表是完整的,没有被修改的;
[0063]4、根据配置信息列表,查询特征数据库以确定虚拟机的当前状态,例如载入的内核模块、执行过的程序、打开过的文件等;如果所有这些内核模
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1