CN104715183B - 一种虚拟机运行时的可信验证方法和设备 - Google Patents
一种虚拟机运行时的可信验证方法和设备 Download PDFInfo
- Publication number
- CN104715183B CN104715183B CN201310686971.1A CN201310686971A CN104715183B CN 104715183 B CN104715183 B CN 104715183B CN 201310686971 A CN201310686971 A CN 201310686971A CN 104715183 B CN104715183 B CN 104715183B
- Authority
- CN
- China
- Prior art keywords
- configuration information
- virtual machine
- hash values
- module
- information list
- 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.)
- Active
Links
Abstract
本发明公开了一种虚拟机运行时的可信验证方法和设备,该方法包括:配置信息收集模块在配置信息列表中保存虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将其他内核模块的hash值,以及可执行程序的hash值和脚本的hash值追加到VTPM的PCR中;当远程验证服务模块接收到外部可信任实体发送的可信证据验证请求时,获取配置信息列表,和VTPM的PCR中保存的PCR值,并返回给外部可信任实体,以使外部可信任实体在根据PCR值确定配置信息列表未被修改后,根据本地特征数据库对配置信息列表进行验证,并根据验证结果确定虚拟机是否可信。在本发明中,提高了虚拟机可信验证的安全性和可实现性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种虚拟机运行时的可信验证方法和设备。
背景技术
用户使用基础设施云计算系统时需将自己的资料和应用部署在运行于远端物理机器上的虚拟机上,为了保证资料和应用的安全且不影响使用,用户需要信任云计算服务提供者本身,对该虚拟机在运行时的可信性(即,虚拟机是否正确运行了它所声称的功能,包括:虚拟机上所有的程序文件如核心系统、配置文件、脚本、可执行程序等是否被篡改,虚拟机中是否有其它危险程序在运行等)有需求,因此有必要在虚拟机运行时,采集和验证虚拟机系统的可信性。
TPM(Trusted Platform Module,可信平台模块)是TCG(Trusted ComputingGroup,可信计算组织)定义的一个可信模块。TPM芯片是指根据TPM规范实现TPM功能的安全芯片。TPM有三个功能:安全存储、平台完整性报告以及平台验证。TPM密钥的作用是提供加解密和数字签名的功能,保证数据的安全性和平台身份的可验证性。TPM密钥主要包括EK、SRK(Storage Root Key,存储根密钥)和身份验证密钥AIK。其中,EK和SRK永久的存储在TPM芯片内部,AIK可在CPU中使用。EK是一个TPM的唯一标识,SRK是2048比特的RSA密钥对,一般情况下会使用AIK来执行EK的某些操作。
现有技术,为了保证在虚拟机运行时,采集和验证虚拟机系统的可信性,通常采用以下方式:
1、直接对自己的资料进行加密保护,防止云计算提供商本身篡改资料;
2、引入审计模块,如日志,记录云提供商的行为用来在未来某个时间点对云进行评估;
3、直接构建一个可信的云平台,并直接向用户证明其可信性:用户处保有正确的配置信息,当向云平台发送可信验证请求时,基于TPM技术,虚拟机、节点控制器、存储控制器相应采集各自的运行程序、正在运行的VM镜像、绑定的虚拟存储等信息并发送给用户来验证;
4、引入一个名为可信完整性验证者(TIV)的可信第三方,确保用户的虚拟机只能在满足完整性验证的物理节点上启动。该平台只考虑了虚拟机启动和迁移时的物理节点的可信性,没有考虑虚拟机运行过程中因为不可信威胁所引起的状态变化。
在实现本发明的过程中,本发明发现现有技术中至少存在以下问题:
1、直接对自己的资料进行加密保护,无法发挥在云平台上部署的各种云服务的对数据进行有效计算、管理和挖掘的优势;
2、审计功能的顺利实现需要计算模型中下层的可信性支持,如果下层的虚拟化层将系统调用篡改了,则审计和访问控制模块,是很容易被破坏或绕过的;
3、直接构建一个可信的云平台,并直接向用户证明其可信性,在验证过程中会暴露所有物理节点的软硬件配置信息、IP地址等,这给云平台带来很大的安全威胁;另外每个用户端都需要维护一个包含所有可能配置的特征数据区以确定云平台的可信性,难于管理并且缺少可扩展性;
4、引入一个名为可信完整性验证者(TIV)的可信第三方,确保用户的虚拟机只能在满足完整性验证的物理节点上启动。该平台只考虑了虚拟机启动和迁移时的物理节点的可信性,没有考虑虚拟机运行过程中因为不可信威胁所引起的状态变化。
发明内容
本发明提供了一种虚拟机运行时的可信验证方法和设备,用以在不影响云计算本身操作数据的功能的前提下,提高虚拟机可信验证的安全性和可实现性。
为了达到以上目的,本发明实施例提供了一种虚拟机运行时的可信验证方法,应用于包括虚拟机和外部可信任实体的系统,所述虚拟机中包括远程验证服务模块,虚拟可信平台模块VTPM,以及虚拟机操作系统内核中的配置信息收集模块,该方法包括:
虚拟机的操作系统内核中的配置信息收集模块在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的程序控制寄存器PCR中;
当所述虚拟机的远程验证服务模块接收到外部可信任实体发送的可信证据验证请求时,获取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回给所述外部可信任实体,以使所述外部可信任实体在根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
本发明实施例还提供了一种虚拟机运行时的可信验证方法,应用于包括虚拟机和外部可信任实体的系统,所述虚拟机中包括配置信息收集模块,远程验证服务模块,以及可信任平台模块VTPM,该方法包括:
外部可信任实体向所述虚拟机的远程验证服务模块发送可信证据验证请求;
所述外部可信任实体接收所述远程验证服务模块返回的配置信息列表,以及所述虚拟机的VTPM的程序控制寄存器PCR中的PCR值;其中,所述配置信息列表中存储有所述虚拟机的操作系统内核中的配置信息收集模块保存的所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值;所述VTPM的PCR中的PCR值是由所述配置信息收集模块将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的PCR中得到的;
当所述外部可信任实体根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
本发明实施例还提供了一种虚拟机,应用于包括外部可信任实体的系统其特征在于,所述虚拟机中包括远程验证服务模块,虚拟可信平台模块VTPM,以及虚拟机操作系统内核中的配置信息收集模块,其中:
所述配置信息收集模块,用于在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的程序控制寄存器PCR中;
所述远程验证服务模块,用于当接收到外部可信任实体发送的可信证据验证请求时,获取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回给所述外部可信任实体,以使所述外部可信任实体在根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
本发明实施例还提供了一种虚拟机运行时的可信验证设备,作为外部可信任实体应用于包括虚拟机的系统,所述虚拟机中包括配置信息收集模块,远程验证服务模块,以及可信任平台模块VTPM,该设备包括:
发送模块,用于向所述虚拟机的远程验证服务模块发送可信证据验证请求;
接收模块,用于接收所述远程验证服务模块返回的配置信息列表,以及所述虚拟机的VTPM的程序控制寄存器PCR中的PCR值;其中,所述配置信息列表中存储有所述虚拟机的操作系统内核中的配置信息收集模块保存的所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值;所述VTPM的PCR中的PCR值是由所述配置信息收集模块将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的PCR中得到的;
处理模块,用于当根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
本发明上述实施例中,虚拟机的操作系统内核中的配置信息收集模块在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将该其他内核模块的hash值,以及该可执行程序的hash值和脚本的hash值追加到VTPM的PCR中;当虚拟机的远程验证服务模块接收到外部可信任实体发送的可信证据验证请求时,获取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回给所述外部可信任实体,以使所述外部可信任实体在根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信,在不影响云计算本身操作数据的功能的前提下,提高虚拟机可信验证的安全性和可实现性。
附图说明
图1为本发明实施例提供的一种虚拟机可信验证方法的流程示意图;
图2为本发明实施例提供的一种具体应用场景的系统架构图;
图3为本发明实施例提供的一种虚拟机运行时可信证据采集的示意图;
图4为本发明实施例提供的一种虚拟机的结构示意图;
图5为本发明实施例提供的一种虚拟机运行时的可信验证设备的结构示意图。
具体实施方式
针对上述现有技术中存在的技术问题,本发明实施例提供了一种虚拟机运行时的可信验证的技术方案,应用于包括虚拟机和外部可信任实体的系统。在该技术方案中,虚拟机中包括配置信息收集模块,远程验证服务模块,以及VTPM;虚拟机的操作系统内核中的配置信息收集模块在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将该其他内核模块的hash值,以及该可执行程序的hash值和脚本的hash值追加到VTPM的PCR(ProgramControl Register,程序控制寄存器)中;当虚拟机的远程验证服务模块接收到外部可信任实体发送的可信证据验证请求时,获取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回给所述外部可信任实体,以使所述外部可信任实体在根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信,在不影响云计算本身操作数据的功能的前提下,提高虚拟机可信验证的安全性和可实现性。
需要注意的是,本发明实施例提供的技术方案实现的基础是虚拟机所运行的宿主物理机及宿主操作系统在启动、迁移时已经过可信验证。
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本发明实施例提供的一种虚拟机可信验证方法的流程示意图,可以包括以下步骤:
步骤101、虚拟机的操作系统内核中的配置信息收集模块在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的程序控制寄存器PCR中。
具体的,在本发明实施例中,虚拟机的操作系统内核中,配置信息收集模块会早于操作系统内核中的其他内核模块启动,从而,当操作系统内的其他内核模块启动时,配置信息收集模块可以将该其他内核模块的名称和hash值保存到配置信息列表中,并将该其他内核模块的hash值追加到VTPM的PCR中;
当虚拟机的操作系统运行时,配置信息收集模块可以将向内存中加载的可执行程序和脚本的名称和hash值保存到配置信息列表中,并将该可执行程序的hash值和脚本的hash值追加到VTPM的PCR中。
需要注意的是,在本发明实施例中,虚拟机的操作系统内核中的其他内核模块是指除了所述配置信息收集模块之外的,虚拟机的操作系统内核中包含的常规内核模块,其与虚拟机使用的具体操作系统有关,在此不做具体说明。
步骤102、虚拟机验证验证服务模块接收外部可信任实体发送的可信证据验证请求,获取所述配置信息列表,和所述VTPM的PCR中保存PCR值,并返回给所述外部可信任实体。
具体的,在本发明实施例中,可以通过虚拟机启动或迁移,或计时器驱动的方式触发外部可信任实体验证虚拟机的可信性。
当外部可信任实体监测到所述虚拟机启动或迁移时,或预设计时器超时时,外部可信任实体可以向虚拟机的远程验证服务模块发送可信验证请求,以请求验证服务模块返回配置信息列表,以及VTPM的PCR中保存的PCR值(即将上述其他内核模块的hash值,以及可执行程序的hash值和脚本的hash值追加到PCR中后得到的值),并根据该配置信息列表,以及PCR值对虚拟机的可信性进行验证。
远程验证服务模块接收到外部可信任实体发送的可信证据验证请求后,可以获取配置信息列表,以及VTPM的PCR中保存PCR值,并返回给外部可信任实体。
步骤103、外部可信任实体根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
具体的,外部可信任实体接收到远程验证服务模块发送的配置信息列表,以及所述PCR值后,可以对配置信息列表中包括的其他内核模块的hash值,以及可执行程序的hash值和脚本的hash值按照加载到内存中执行的顺序进行模拟追加操作(即模拟extend操作),并比较该模拟追加操作的结果和所述PCR值,并当比较结果为相同时,确定所述配置信息列表未被修改。
当外部可信任实体确定所述配置信息列表未被修改时,根据该配置信息列表中包括的其他内核模块,以及可执行程序和脚本的hash值查询本地特征数据库,若在本地特征数据库中查询到匹配的内核模块,以及可执行程序和脚本的hash值,且该匹配的内核模块,以及可执行程序和脚本为可信任状态,则确定所述虚拟机可信;若在本地特征数据库中未查询到匹配的内核模块,以及可执行程序和脚本的hash值,或查询到匹配的内核模块,以及可执行程序和脚本的hash值,且该匹配的内核模块,以及可执行程序和脚本为不可信任状态,则确定所述虚拟机不可信。
优选地,为了保证远程验证服务模块发送给外部可信任实体的相关数据的可靠性,在本发明实施例中,VTPM在将自身存储的所述PCR值返回给远程验证服务模块时,可以对所述PCR值进行签名,并将签名后的所述PCR值通过远程验证服务模块返回给外部可信任实体,外部可信任实体接收到相关数据后,需要先对签名进行验证,并当验证通过后进行后续流程。
在该情况下,远程验证服务模块返回给外部可信任实体的数据包括配置信息列表,AIK证书,签名后的所述PCR值。外部可信任实体接收到相关数据后,首先会根据AIK证书对所述PCR值的签名进行验证,并当验证通过后,进一步判断配置信息列表是否被修改。
进一步地,在本发明实施例中,外部可信任实体发送的可信证据验证请求中还可以包括随机数,相应地,验证验证服务模块接收到可信验证请求后,将该随机数转发给VTPM,由VTPM对该随机数,以及所述PCR值进行签名,并一起返回给外部可信任实体。
在该情况下,外部可信任实体接收到远程验证服务模块返回的相关数据后,并对该签名验证通过后,需要比较接收到的数据中的随机数和自身发送的可信证据验证请求中携带的随机数是否相同,并在相同的情况下,进一步判断接收到的配置信息列表是否被修改。
为了更好地理解本发明实施例提供的技术方案,下面结合具体的应用场景对本发明实施例提供的技术方案进行更加详细的描述。
在该实施例中,系统架构图可以如图2所示,其中,外部可信任实体(TTP)用于检查虚拟机上收集到的可信证据,实现对云提供商的可信性审计和验证配置;信息收集模块会记录并保存系统中所有运行程序的信息;远程验证服务模块将配置信息收集模块记录的日志发送到外部可信任实体。此外,虚拟机中还需要配置VTPM芯片,作为可信任根;软件上BIOS、Bootloader需要根据SRTM规范扩展可信度量功能,操作系统内核需要内置IMA功能模块,也就是配置信息收集模块,并且在应用程序层部署远程验证服务模块,以及相关依赖程序如TrouSerS等。
在该实施例中,虚拟机可信验证可以分为可信证据采集和可信证据验证两个过程:
A、虚拟机运行时可信证据采集
参见图3,操作系统内核的配置信息收集模块对内核的关键接口设置hook函数,当它启动之后会计算其他内核模块的hash值并保存。此外,在操作系统运行时,配置信息收集模块会计算正要加载到内存的可执行程序以及脚本的hash值等,然后判断可执行程序或者脚本的名称和hash值是否已经保存到配置信息列表CL中,如果没有的话,则保存,并将其追加到TPM的PCR中,由于PCR的追加操作不可逆且配置信息收集模块本身在物理机启动时已经过验证,所以它真实记录了所有运行程序可信任链,保证了远程验证时CL的完整性。
B、运行时可信证据验证
1、外部可信任实体生成随机数,并将其发送给虚拟机的远程验证服务模块;
2、远程验证服务模块将接收到的随机数传入VTPM,使用VTPM对当前的PCR值以及该随机数进行签名;远程验证服务模块将VTPM签名后的结果、AIK证书以及通过证据收集机制得到的配置信息列表CL返回给外部可信任实体;
3、外部可信任实体接收到证据信息后,首先会验证VTPM的签名,确保所接收PCR值和随机数的完整性;并验证该随机数与第1步中发送的随机数是否一致;如果不一致表明接收的信息与本次验证无关;如果一致,再根据配置信息列表模拟extend操作计算PCR值,如果该模拟extend操作得到的PCR值与返回的PCR的值一致,则表明配置信息列表是完整的,没有被修改的;
4、根据配置信息列表,查询特征数据库以确定虚拟机的当前状态,例如载入的内核模块、执行过的程序、打开过的文件等;如果所有这些内核模块、程序或文件经过外部可信任实体认证的,可以信任的,那么表明虚拟机是可信的;如果在特征数据库中没有相应记录,则是不可信的,或者云提供商需要向外部可信任实体注册登记这些程序或文件;如果在特征数据库中发现是恶意程序,则说明虚拟机被攻破运行有恶意程序,不能被信任。
通过以上描述可以看出,在本发明实施例提供的技术方案中,虚拟机的操作系统内核中的配置信息收集模块在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将该其他内核模块的hash值,以及该可执行程序和脚本的hash值追加到VTPM的PCR中;当虚拟机的远程验证服务模块接收到外部可信任实体发送的可信证据验证请求时,获取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回给所述外部可信任实体,以使所述外部可信任实体在根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信,在不影响云计算本身操作数据的功能的前提下,提高虚拟机可信验证的安全性和可实现性。
基于相同的技术构思,本发明实施例还提供了一种虚拟机,可以应用于上述方法实施例。
如图4所示,为本发明实施例提供的一种虚拟机的结构示意图,该虚拟机可应用于包括外部可信任实体的系统,该虚拟机可以包括:远程验证服务模块41,虚拟可信平台模块VTPM42,以及虚拟机操作系统内核中的配置信息收集模块43;其中:
所述配置信息收集模块43,用于在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM42的程序控制寄存器PCR中;
所述远程验证服务模块41,用于当接收到外部可信任实体发送的可信证据验证请求时,获取所述配置信息列表,和所述VTPM42的PCR中保存的PCR值,并返回给所述外部可信任实体,以使所述外部可信任实体在根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
其中,所述配置信息收集模块43具体用于,在所述其他内核模块启动时,将所述其他内核模块的名称和hash值保存到所述配置信息列表中,并将所述其他内核模块的hash值追加到所述VTPM42的PCR中;在所述虚拟机的操作系统运行后,将向内存中加载的可执行程序的名称和hash值和脚本的名称和hash值保存到所述配置信息列表中,并将所述可执行程序的hash值和脚本的hash值追加到所述VTPM42的PCR中。
其中,所述远程验证服务模块41具体用于,将所述可信证据验证请求中携带的随机数转发给所述VTPM42,以使所述VTPM42对所述随机数,以及所述PCR值进行签名;接收所述VTPM42返回的AIK证书,以及签名后的所述随机数、所述PCR值,并将所述配置信息列表,所述AIK证书,以及签名后的所述随机数、所述PCR值返回给所述外部可信任实体。
基于相同的技术构思,本发明实施例还提供了一种虚拟机运行时的可信验证设备,可以应用于上述方法实施例。
如图5所示,为本发明实施例提供的一种虚拟机运行时的可信验证设备的结构示意图,该设备可以作为外部可信任实体应用于包括虚拟机的系统,所述虚拟机中包括配置信息收集模块,远程验证服务模块,以及可信任平台模块VTPM,该设备包括:
发送模块51,用于向所述虚拟机的远程验证服务模块发送可信证据验证请求;
接收模块52,用于接收所述远程验证服务模块返回的配置信息列表,以及所述虚拟机的VTPM的程序控制寄存器PCR中的PCR值;其中,所述配置信息列表中存储有所述虚拟机的操作系统内核中的配置信息收集模块保存的所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值;所述VTPM的PCR中的PCR值是由所述配置信息收集模块将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的PCR中得到的;
处理模块53,用于当根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
其中,所述发送模块51具体用于,当所述设备监测到所述虚拟机启动或迁移时,当所述外部可信任实体监测到所述虚拟机启动或迁移时;或,当预设定时器超时时,向所述虚拟机的远程验证服务模块发送可信证据验证请求。
其中,所述接收模块52具体用于,接收所述远程验证服务模块返回的配置信息列表,AIK证书,以及签名后的所述随机数、所述PCR值;其中,所述AIK证书,以及签名后的所述随机数、所述PCR值是由所述VTPM接收到所述远程验证服务模块转发的所述随机数,并对所述随机数,以及所述PCR值签名后,返回给所述远程验证服务模块的。
其中,所述处理模块52具体用于,根据所述AIK证书对所述随机数、以及所述PCR值的签名进行验证,并当验证通过,且确定所述随机数与自身发送的可信证据验证请求中携带的随机数相同时,对所述配置信息列表中包括的所述其他内核模块的hash值,以及可执行程序hash值和脚本的hash值按照加载到内存中执行的顺序进行模拟追加操作,并比较所述模拟追加操作的结果和所述PCR值,并当比较结果为相同时,确定所述配置信息列表未被修改。
其中,所述处理模块53具体用于,在本地特征数据库中查询所述配置信息列表中包括的所述其他内核模块,以及可执行程序和脚本的hash值;若在本地特征数据库中查询到匹配的内核模块,以及可执行程序和脚本的hash值,且该匹配的内核模块,以及可执行程序和脚本为可信任状态,则确定所述虚拟机可信;若在本地特征数据库中未查询到匹配的内核模块,以及可执行程序和脚本的hash值,或查询到匹配的内核模块,以及可执行程序和脚本的hash值,且该匹配的内核模块,以及可执行程序和脚本为不可信任状态,则确定所述虚拟机不可信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (16)
1.一种虚拟机运行时的可信验证方法,应用于包括虚拟机和外部可信任实体的系统,其特征在于,所述虚拟机中包括远程验证服务模块,虚拟可信平台模块VTPM,以及虚拟机操作系统内核中的配置信息收集模块,该方法包括:
虚拟机的操作系统内核中的配置信息收集模块在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的程序控制寄存器PCR中;
当所述虚拟机的远程验证服务模块接收到外部可信任实体发送的可信证据验证请求时,获取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回给所述外部可信任实体,以使所述外部可信任实体在根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
2.如权利要求1所述的方法,其特征在于,所述配置信息收集模块在所述其他内核模块启动时,将所述其他内核模块的名称和hash值保存到所述配置信息列表中,并将所述其他内核模块的hash值追加到所述VTPM的PCR中;
所述配置信息收集模块在所述虚拟机的操作系统运行后,将向内存中加载的可执行程序的名称和hash值和脚本的名称和hash值保存到所述配置信息列表中,并将所述可执行程序的hash值和脚本的hash值追加到所述VTPM的PCR中。
3.如权利要求1所述的方法,其特征在于,所述远程验证服务模块获取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回给所述外部可信任实体,具体为:
所述远程验证服务模块将所述可信证据验证请求中携带的随机数转发给所述VTPM,以使所述VTPM对所述随机数,以及所述PCR值进行签名;
所述远程验证服务模块接收所述VTPM返回的AIK证书,以及签名后的所述随机数、所述PCR值,并将所述配置信息列表,所述AIK证书,以及签名后的所述随机数、所述PCR值返回给所述外部可信任实体。
4.一种虚拟机运行时的可信验证方法,应用于包括虚拟机和外部可信任实体的系统,其特征在于,所述虚拟机中包括配置信息收集模块,远程验证服务模块,以及可信任平台模块VTPM,该方法包括:
外部可信任实体向所述虚拟机的远程验证服务模块发送可信证据验证请求;
所述外部可信任实体接收所述远程验证服务模块返回的配置信息列表,以及所述虚拟机的VTPM的程序控制寄存器PCR中的PCR值;其中,所述配置信息列表中存储有所述虚拟机的操作系统内核中的配置信息收集模块保存的所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值;所述VTPM的PCR中的PCR值是由所述配置信息收集模块将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的PCR中得到的;
当所述外部可信任实体根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
5.如权利要求4所述的方法,其特征在于,所述外部可信任实体向所述虚拟机的远程验证服务模块发送可信证据验证请求,具体为:
当所述外部可信任实体监测到所述虚拟机启动或迁移时,所述外部可信任实体向所述虚拟机的远程验证服务模块发送可信证据验证请求;或,
当预设定时器超时时,所述外部可信任实体向所述虚拟机的远程验证服务模块发送可信证据验证请求。
6.如权利要求4所述的方法,其特征在于,所述可信证据验证请求中携带有随机数;
所述外部可信任实体接收所述远程验证服务模块返回的配置信息列表,以及所述虚拟机的VTPM的PCR中的PCR值,具体为:
所述外部可信任实体接收所述远程验证服务模块返回的配置信息列表,AIK证书,以及签名后的所述随机数、所述PCR值;其中,所述AIK证书,以及签名后的所述随机数、所述PCR值是由所述VTPM接收到所述远程验证服务模块转发的所述随机数,并对所述随机数,以及所述PCR值签名后,返回给所述远程验证服务模块的。
7.如权利要求6所述的方法,其特征在于,所述外部可信任实体根据所述PCR值确定所述配置信息列表未被修改,具体为:
所述外部可信任实体根据所述AIK证书对所述随机数、以及所述PCR值的签名进行验证,并当验证通过,且确定所述随机数与自身发送的可信证据验证请求中携带的随机数相同时,所述外部可信任实体对所述配置信息列表中包括的所述其他内核模块的hash值,以及可执行程序hash值和脚本的hash值按照加载到内存中执行的顺序进行模拟追加操作,并比较所述模拟追加操作的结果和所述PCR值,并当比较结果为相同时,确定所述配置信息列表未被修改。
8.如权利要求6所述的方法,其特征在于,所述外部可信任实体根据本地特征数据库对所述配置信息列表进行验证,具体为:
所述外部可信任实体在本地特征数据库中查询所述配置信息列表中包括的所述其他内核模块,以及可执行程序和脚本的hash值;
若在本地特征数据库中查询到匹配的内核模块,以及可执行程序和脚本的hash值,且该匹配的内核模块,以及可执行程序和脚本为可信任状态,则确定所述虚拟机可信;
若在本地特征数据库中未查询到匹配的内核模块,以及可执行程序和脚本的hash值,或查询到匹配的内核模块,以及可执行程序和脚本的hash值,且该匹配的内核模块,以及可执行程序和脚本为不可信任状态,则确定所述虚拟机不可信。
9.一种虚拟机,应用于包括外部可信任实体的系统其特征在于,其特征在于,所述虚拟机中包括远程验证服务模块,虚拟可信平台模块VTPM,以及虚拟机操作系统内核中的配置信息收集模块,其中:
所述配置信息收集模块,用于在配置信息列表中保存所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值,并将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的程序控制寄存器PCR中;
所述远程验证服务模块,用于当接收到外部可信任实体发送的可信证据验证请求时,获取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回给所述外部可信任实体,以使所述外部可信任实体在根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
10.如权利要求9所述的虚拟机,其特征在于,
所述配置信息收集模块具体用于,在所述其他内核模块启动时,将所述其他内核模块的名称和hash值保存到所述配置信息列表中,并将所述其他内核模块的hash值追加到所述VTPM的PCR中;在所述虚拟机的操作系统运行后,将向内存中加载的可执行程序的名称和hash值和脚本的名称和hash值保存到所述配置信息列表中,并将所述可执行程序的hash值和脚本的hash值追加到所述VTPM的PCR中。
11.如权利要求9所述的虚拟机,其特征在于,
所述远程验证服务模块具体用于,将所述可信证据验证请求中携带的随机数转发给所述VTPM,以使所述VTPM对所述随机数,以及所述PCR值进行签名;接收所述VTPM返回的AIK证书,以及签名后的所述随机数、所述PCR值,并将所述配置信息列表,所述AIK证书,以及签名后的所述随机数、所述PCR值返回给所述外部可信任实体。
12.一种虚拟机运行时的可信验证设备,作为外部可信任实体应用于包括虚拟机的系统,其特征在于,所述虚拟机中包括配置信息收集模块,远程验证服务模块,以及可信任平台模块VTPM,该设备包括:
发送模块,用于向所述虚拟机的远程验证服务模块发送可信证据验证请求;
接收模块,用于接收所述远程验证服务模块返回的配置信息列表,以及所述虚拟机的VTPM的程序控制寄存器PCR中的PCR值;其中,所述配置信息列表中存储有所述虚拟机的操作系统内核中的配置信息收集模块保存的所述虚拟机的操作系统内核中的其他内核模块的名称和hash值,以及向内存中加载的可执行程序和脚本的名称和hash值;所述VTPM的PCR中的PCR值是由所述配置信息收集模块将所述其他内核模块的hash值,以及所述可执行程序的hash值和脚本的hash值追加到所述VTPM的PCR中得到的;
处理模块,用于当根据所述PCR值确定所述配置信息列表未被修改后,根据本地特征数据库对所述配置信息列表进行验证,并根据验证结果确定所述虚拟机是否可信。
13.如权利要求12所述的设备,其特征在于,
所述发送模块具体用于,当所述设备监测到所述虚拟机启动或迁移时,当所述外部可信任实体监测到所述虚拟机启动或迁移时;或,当预设定时器超时时,向所述虚拟机的远程验证服务模块发送可信证据验证请求。
14.如权利要求12所述的设备,其特征在于,
所述接收模块具体用于,接收所述远程验证服务模块返回的配置信息列表,AIK证书,以及签名后的随机数、所述PCR值;其中,所述AIK证书,以及签名后的所述随机数、所述PCR值是由所述VTPM接收到所述远程验证服务模块转发的所述随机数,并对所述随机数,以及所述PCR值签名后,返回给所述远程验证服务模块的。
15.如权利要求14所述的设备,其特征在于,
所述处理模块具体用于,根据所述AIK证书对所述随机数、以及所述PCR值的签名进行验证,并当验证通过,且确定所述随机数与自身发送的可信证据验证请求中携带的随机数相同时,对所述配置信息列表中包括的所述其他内核模块的hash值,以及可执行程序hash值和脚本的hash值按照加载到内存中执行的顺序进行模拟追加操作,并比较所述模拟追加操作的结果和所述PCR值,并当比较结果为相同时,确定所述配置信息列表未被修改。
16.如权利要求14所述的设备,其特征在于,
所述处理模块具体用于,在本地特征数据库中查询所述配置信息列表中包括的所述其他内核模块,以及可执行程序和脚本的hash值;若在本地特征数据库中查询到匹配的内核模块,以及可执行程序和脚本的hash值,且该匹配的内核模块,以及可执行程序和脚本为可信任状态,则确定所述虚拟机可信;若在本地特征数据库中未查询到匹配的内核模块,以及可执行程序和脚本的hash值,或查询到匹配的内核模块,以及可执行程序和脚本的hash值,且该匹配的内核模块,以及可执行程序和脚本为不可信任状态,则确定所述虚拟机不可信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310686971.1A CN104715183B (zh) | 2013-12-13 | 2013-12-13 | 一种虚拟机运行时的可信验证方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310686971.1A CN104715183B (zh) | 2013-12-13 | 2013-12-13 | 一种虚拟机运行时的可信验证方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104715183A CN104715183A (zh) | 2015-06-17 |
CN104715183B true CN104715183B (zh) | 2018-06-01 |
Family
ID=53414504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310686971.1A Active CN104715183B (zh) | 2013-12-13 | 2013-12-13 | 一种虚拟机运行时的可信验证方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104715183B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105678173B (zh) * | 2015-12-31 | 2018-06-29 | 武汉大学 | 基于硬件事务内存的vTPM安全保护方法 |
CN107533594B (zh) * | 2016-01-21 | 2021-01-26 | 慧与发展有限责任合伙企业 | 验证软件的方法、安全软件系统及可读存储介质 |
CN105516207B (zh) * | 2016-01-28 | 2018-08-14 | 浪潮电子信息产业股份有限公司 | 一种远程认证中证书管理的方法 |
CN106059801A (zh) * | 2016-05-24 | 2016-10-26 | 北京哈工大计算机网络与信息安全技术研究中心 | 基于云计算平台网络的虚拟机可信证据收集方法和装置 |
CN106130968B (zh) * | 2016-06-21 | 2019-05-03 | 佛山科学技术学院 | 一种身份认证方法、及系统 |
CN106354550A (zh) * | 2016-11-01 | 2017-01-25 | 广东浪潮大数据研究有限公司 | 一种保护虚拟机安全的方法、装置及系统 |
CN108804203B (zh) * | 2018-06-15 | 2019-06-21 | 四川大学 | 基于标签的vTPM私密信息保护方法 |
CN110647740B (zh) * | 2018-06-27 | 2023-12-05 | 复旦大学 | 一种基于tpm的容器可信启动方法及装置 |
CN109062662A (zh) * | 2018-07-12 | 2018-12-21 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟可信根迁移方法、系统及电子设备和存储介质 |
CN109460282B (zh) * | 2018-10-17 | 2021-07-30 | 郑州云海信息技术有限公司 | 一种vTPM时钟安全保障的方法及系统 |
CN109558724A (zh) * | 2018-11-28 | 2019-04-02 | 西安电子科技大学 | 一种软件行为完整性验证方法 |
CN110012074B (zh) * | 2019-03-12 | 2021-11-30 | 北京可信华泰信息技术有限公司 | 一种云环境可信上下文管理方法 |
CN110069921B (zh) * | 2019-04-12 | 2021-01-01 | 中国科学院信息工程研究所 | 一种面向容器平台的可信软件授权验证系统及方法 |
CN113315805A (zh) * | 2021-04-08 | 2021-08-27 | 中国科学院信息工程研究所 | 一种云基础设施可信设备的群组验证方法和系统 |
CN113485755B (zh) * | 2021-06-30 | 2023-08-18 | 深圳市科力锐科技有限公司 | 设备驱动程序验证方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102202046A (zh) * | 2011-03-15 | 2011-09-28 | 北京邮电大学 | 面向网络化操作系统的可信任虚拟运行平台 |
CN102722665A (zh) * | 2012-05-22 | 2012-10-10 | 中国科学院计算技术研究所 | 基于tpm/vtpm的可信程序列表生成方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102246179A (zh) * | 2008-10-10 | 2011-11-16 | 松下电器产业株式会社 | 在安全处理系统的应用空间中使用瞬时pcr来实现信任 |
-
2013
- 2013-12-13 CN CN201310686971.1A patent/CN104715183B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102202046A (zh) * | 2011-03-15 | 2011-09-28 | 北京邮电大学 | 面向网络化操作系统的可信任虚拟运行平台 |
CN102722665A (zh) * | 2012-05-22 | 2012-10-10 | 中国科学院计算技术研究所 | 基于tpm/vtpm的可信程序列表生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104715183A (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104715183B (zh) | 一种虚拟机运行时的可信验证方法和设备 | |
CN103888251B (zh) | 一种云环境中虚拟机可信保障的方法 | |
KR101791768B1 (ko) | 신뢰된 제공자에 의한 구성 및 검증 | |
US10382195B2 (en) | Validating using an offload device security component | |
CN105306490B (zh) | 支付验证系统、方法及装置 | |
CN104462965B (zh) | 应用程序完整性验证方法及网络设备 | |
JP5522307B2 (ja) | 仮想機械によるソフトウェアテストを用いた電子ネットワークにおけるクライアントシステムの遠隔保守のためのシステム及び方法 | |
US8572692B2 (en) | Method and system for a platform-based trust verifying service for multi-party verification | |
CN106716957B (zh) | 高效且可靠的认证 | |
US10243739B1 (en) | Validating using an offload device security component | |
CN107851167A (zh) | 在计算环境中保护计算数据的技术 | |
US11281781B2 (en) | Key processing methods and apparatuses, storage media, and processors | |
US10211985B1 (en) | Validating using an offload device security component | |
CN109960903A (zh) | 一种应用加固的方法、装置、电子设备及存储介质 | |
Xin et al. | Property-based remote attestation oriented to cloud computing | |
US20150288703A1 (en) | Data possession verification system and method | |
CN111901304B (zh) | 移动安全设备的注册方法和装置、存储介质、电子装置 | |
CN107707577A (zh) | 基于加密传输系统的多层数据加密方法 | |
CN109150811B (zh) | 一种实现可信会话的方法及装置、计算设备 | |
CN105404470B (zh) | 数据存储方法及安全装置、数据存储系统 | |
CN1808457B (zh) | 可远程动态管理的便携式可信装置 | |
CN109710692A (zh) | 一种区块链网络中用户信息处理方法、装置及存储介质 | |
CN109302442A (zh) | 一种数据存储证明方法及相关设备 | |
Bharathi et al. | An extended trust management scheme for location based real-time service composition in secure cloud computing | |
CN109117625A (zh) | Ai软件系统安全状态的确定方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |