虚拟化TPM设备的系统、方法、虚拟机及可读存储介质与流程

文档序号:14036612阅读:610来源:国知局
虚拟化TPM设备的系统、方法、虚拟机及可读存储介质与流程

本发明涉及虚拟化领域,特别是涉及一种虚拟化tpm设备的系统、方法、虚拟机及可读存储介质。



背景技术:

近年来随着云计算的发展,kvm(kernel-basedvirtualmachine,基于内核的虚拟机)虚拟化技术得到了大量应用,随着大量业务迁移到kvm虚拟化平台,越来越多的第三方恶意者向虚拟机内植入恶意代码、病毒、木马等,造成虚拟机的损坏和数据的丢失。在现有技术中,一般是将物理服务器上的tpm(trustedplatformmodule,可信赖平台)设备透传给虚拟机使用,使虚拟机直接使用tpm设备来完成各项与可信计算相关的功能,其中,tpm设备具有存储功能和度量功能,可以有效地防止非法用户对虚拟机的恶意访问。

但是采用上述方法,虚拟机会直接使用tpm设备,导致物理服务器不能再使用此tpm设备,使得物理服务器的可信度降低;在实际应用中,每个物理服务器只包括一块tpm设备,且每块tpm设备只能透传给一台虚拟机使用,而kvm虚拟化平台中一般会有多台虚拟机同时运行,所以无法保证每台虚拟机都可以分配到一块tpm设备,也就不能保证每台虚拟机的安全度和可信度;虚拟机有迁移功能,若想将虚拟机从物理服务器a迁移到物理服务器b上,由于虚拟机使用的tpm设备是和物理服务器a绑定的,因此无法将此tpm设备一同迁移到物理服务器b上,从而限制了虚拟机的迁移功能。

因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种虚拟化tpm设备的系统、方法、虚拟机及可读存储介质,在不降低物理服务器的可信度的同时,又可以有效地防止非法用户对虚拟机的恶意访问,虚拟机可以迁移到任意可信任的物理服务器上,不受tpm设备绑定物理服务器的限制。

为解决上述技术问题,本发明提供了一种虚拟化tpm设备的系统,应用于kvm虚拟化平台,包括:

加载模块,用于预先确定一块虚拟机磁盘镜像文件,还用于在接收到确定指令后加载虚拟非易失性随机访问存储器vnvram驱动,使所述虚拟机磁盘镜像文件初始化为虚拟机的vnvram,其中,所述vnvram包括一个调用接口,以便虚拟可信赖平台vtpm设备调用所述vnvram;

监测模块,用于在监测到所述虚拟机磁盘镜像文件后生成所述确定指令;

创建模块,用于在接收到用户发送的自定义参数后创建所述vtpm设备;

度量模块,用于调用所述虚拟机的基本输入输出系统bios,并对所述bios进行度量得到相应的度量值和拓展值,还用于将所述bios的度量值和拓展值记录到所述vnvram中。

优选的,所述虚拟机磁盘镜像文件为qcow2类型的虚拟磁盘镜像文件。

优选的,所述创建模块包括:

tpm-tis模块,用于为所述vtpm设备分配及初始化所述虚拟机的内存空间;

tpm-nvram模块,用于调用所述vnvram的调用接口,以便所述vtpm设备实现存储功能;

tpm-libtpms模块,用于调用libtpms库,以便所述vtpm设备实现度量功能。

优选的,所述度量模块还用于对所述虚拟机的系统文件进行度量得到相应的度量值和拓展值,并将所述系统文件的度量值和拓展值记录到所述vnvram中。

优选的,所述度量模块还用于对所述虚拟机的硬件设备进行度量得到相应的度量值和拓展值,并将所述硬件设备的度量值和拓展值记录到所述vnvram中。

为解决上述技术问题,本发明还提供了一种虚拟化tpm设备的方法,应用于kvm虚拟化平台,包括:

加载模块预先确定一块虚拟机磁盘镜像文件;

监测模块监测到所述虚拟机磁盘镜像文件后生成确定指令;

所述加载模块在接收到所述确定指令后加载虚拟非易失性随机访问存储器vnvram驱动,使所述虚拟机磁盘镜像文件初始化为虚拟机的vnvram,其中,所述vnvram包括一个调用接口,以便虚拟可信赖平台vtpm设备调用所述vnvram;

创建模块在接收到用户发送的自定义参数后创建所述vtpm设备;

度量模块调用所述虚拟机的基本输入输出系统bios,并对所述bios进行度量得到相应的度量值和拓展值,然后将所述bios的度量值和拓展值记录到所述vnvram中。

优选的,所述虚拟机磁盘镜像文件为qcow2类型的虚拟磁盘镜像文件。

优选的,所述创建模块在接收到用户发送的自定义参数后创建所述vtpm设备的过程具体为:

创建模块在接收到用户发送的自定义参数后为所述vtpm设备分配及初始化所述虚拟机的内存空间;

调用所述vnvram的调用接口,以便所述vtpm设备实现存储功能;

调用libtpms库,以便所述vtpm设备实现度量功能。

为解决上述技术问题,本发明还提供了一种虚拟机,应用于kvm虚拟化平台,包括如上述任意一项所述的虚拟化tpm设备的系统。

为解决上述技术问题,本发明还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述方法的步骤。

本发明提供了一种虚拟化tpm设备的系统,应用于kvm虚拟化平台,包括加载模块,用于预先确定一块虚拟机磁盘镜像文件,还用于在接收到确定指令后加载虚拟非易失性随机访问存储器vnvram驱动,使虚拟机磁盘镜像文件初始化为虚拟机的vnvram,其中,vnvram包括一个调用接口,以便虚拟可信赖平台vtpm设备调用vnvram;监测模块,用于在监测到虚拟机磁盘镜像文件后生成确定指令;创建模块,用于在接收到用户发送的自定义参数后创建vtpm设备;度量模块,用于调用虚拟机的基本输入输出系统bios,并对bios进行度量得到相应的度量值和拓展值,还用于将bios的度量值和拓展值记录到vnvram中。

可见,在实际应用中,本发明所提供的虚拟化tpm设备的系统可以实现和tpm设备相同的存储功能及度量功能,每台虚拟机均可以按上述方案配置一个虚拟化tpm设备的系统,在不降低物理服务器的可信度的同时,又可以有效地防止非法用户对虚拟机的恶意访问,而且采用本发明的方案,虚拟机可以迁移到任意可信任的物理服务器上,不受tpm设备绑定物理服务器的限制。

本发明还提供了一种虚拟化tpm设备的方法、虚拟机及可读存储介质,具有和上述系统相同的有益效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的一种虚拟化tpm设备的系统的结构示意图;

图2为本发明所提供的一种虚拟化tpm设备的系统的一种实施例的流程图;

图3为本发明所提供的一种虚拟化tpm设备的系统的另一种结构示意图;

图4为本发明所提供的一种虚拟化tpm设备的系统的另一种实施例的流程图;

图5为本发明所提供的一种虚拟化tpm设备的方法的流程图。

具体实施方式

本发明的核心是提供一种虚拟化tpm设备的系统、方法、虚拟机及可读存储介质,在不降低物理服务器的可信度的同时,又可以有效地防止非法用户对虚拟机的恶意访问,虚拟机可以迁移到任意可信任的物理服务器上,不受tpm设备绑定物理服务器的限制。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图1,图1为本发明所提供的一种虚拟化tpm设备的系统的结构示意图,包括:

加载模块1,用于预先确定一块虚拟机磁盘镜像文件,还用于在接收到确定指令后加载虚拟非易失性随机访问存储器vnvram驱动,使虚拟机磁盘镜像文件初始化为虚拟机的vnvram,其中,vnvram包括一个调用接口,以便虚拟可信赖平台vtpm设备调用vnvram;

监测模块2,用于在监测到虚拟机磁盘镜像文件后生成确定指令;

具体的,为了模拟tpm设备特有的nvram(non-volatilerandomaccessmemory,非易失性随机访问存储器)存储空间,本发明采用qemu(其中,qemu是一个完整的可以独立运行的软件,用来模拟硬件机器)支持的虚拟机磁盘镜像文件加载vnvram相关的驱动,来实现本系统对nvram存储空间的模拟。

具体的,虚拟机磁盘镜像文件保存了虚拟机硬盘的全部信息,本发明预先确定一块虚拟机磁盘镜像文件,在监测模块2监测到系统中有虚拟机磁盘镜像文件后生成确定指令,加载模块1接收到确定指令后加载vnvram驱动,此时qemu就会将这块虚拟机磁盘镜像文件初始化为vnvram类型的设备,也就是说本发明所提供的系统此时也具有vnvram存储空间,加载完成后,等待其他模块调用。

具体的,参照图2所示,加载vnvram驱动的过程包括:

步骤s11:解析qemu中和vnvram相关的参数,获取vnvram的路径;

步骤s12:调用qemu的register函数,并将vnvram注册到qemu的设备列表中;

步骤s13:初始化vnvram实例,包括内存空间的申请,内存地址,设备状态,设备类型等;

步骤s14:创建vnvram,获取vnvramid;

步骤s15:定义vnvram的读操作函数、写操作函数及删除操作函数。

创建模块3,用于在接收到用户发送的自定义参数后创建vtpm设备;

请参照图3,图3为本发明所提供的一种虚拟化tpm设备的系统的另一种结构示意图,该系统在上述实施例的基础上:

作为一种优选的实施例,创建模块3包括:

tpm-tis模块,用于为vtpm设备分配及初始化虚拟机的内存空间;

tpm-nvram模块,用于调用vnvram的调用接口,以便vtpm设备实现存储功能;

tpm-libtpms模块,用于调用libtpms库,以便vtpm设备实现度量功能。

具体的,当qemu检查到有vtpm设备要创建的时候,通过tpm-tis模块实现vtpm设备在虚拟机中内存空间的分配及初始化,为vtpm设备提供可操作的前端驱动;通过tpm-nvram模块调用vnvram的调用接口,实现对vnvram的操作,为vtpm设备提供用以存储各项度量值及拓展值的vnvram存储空间;通过tpm-libtpms模块调用libtpms库,实现vtpm设备的具体功能。

具体的,参照图4所示,创建vtpm设备的步骤包括:

步骤s21:解析vtpm设备类型为libtpms;

步骤s22:加载tpm-tis模块,并通过tpm-tis模块为vtpm设备申请内存空间,然后将tpm-libtpms模块注册到qemu的设备列表中并初始化;

步骤s23:vtpm设备驱动初始化;

步骤s24:vtpm设备startup;

步骤s25:vtpm设备调用libtpms库并指定tpm版本;

步骤s26:vtpm设备创建调用libtpms库的线程。

度量模块4,用于调用虚拟机的基本输入输出系统bios,并对bios进行度量得到相应的度量值和拓展值,还用于将bios的度量值和拓展值记录到vnvram中。

具体的,度量模块4获取vtpm设备的信息,对bios进行度量获取可信度量根即度量值,在虚拟机启动时,获取拓展值,将度量值和拓展值记录到vtpm设备的vnvram中,作为虚拟机是否可信的依据。

综上所述,本发明所提供的一种虚拟化tpm设备的系统通过qemu的设备虚拟化功能,为虚拟机创建了一个vtpm设备,通过调用libtpms库,实现了度量功能,通过初始化虚拟磁盘镜像文件提供了vnvram存储空间,从而实现和tpm设备相同的功能。可以理解的是,为kvm平台中的每台虚拟机提供一个虚拟化tpm设备的系统,一方面可以保证虚拟机在每次运行时,均可以对磁盘进行加密,对虚拟机的bios和虚拟机设备进行度量,以及对各个度量值进行存储和校验,完成和tpm设备相同的可信计算功能;另一方面采用本发明的方案不受tpm设备绑定物理服务器的限制,可以将虚拟机迁移到任意可信任的虚拟平台中。

本发明提供了一种虚拟化tpm设备的系统,应用于kvm虚拟化平台,包括加载模块,用于预先确定一块虚拟机磁盘镜像文件,还用于在接收到确定指令后加载虚拟非易失性随机访问存储器vnvram驱动,使虚拟机磁盘镜像文件初始化为虚拟机的vnvram,其中,vnvram包括一个调用接口,以便虚拟可信赖平台vtpm设备调用vnvram;监测模块,用于在监测到虚拟机磁盘镜像文件后生成确定指令;创建模块,用于在接收到用户发送的自定义参数后创建vtpm设备;度量模块,用于调用虚拟机的基本输入输出系统bios,并对bios进行度量得到相应的度量值和拓展值,还用于将bios的度量值和拓展值记录到vnvram中。

可见,在实际应用中,本发明所提供的虚拟化tpm设备的系统可以实现和tpm设备相同的存储功能及度量功能,每台虚拟机均可以按上述方案配置一个虚拟化tpm设备的系统,在不降低物理服务器的可信度的同时,又可以有效地防止非法用户对虚拟机的恶意访问,而且采用本发明的方案,虚拟机可以迁移到任意可信任的物理服务器上,不受tpm设备绑定物理服务器的限制。

在上述实施例的基础上:

作为一种优选的实施例,虚拟机磁盘镜像文件为qcow2类型的虚拟磁盘镜像文件。

具体的,qcow2镜像格式是qemu模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的设备磁盘,有以下特性:更小的空间占用;支持写时拷贝;支持快照;可选择基于zlib的压缩方式,可以选择aes加密。

作为一种优选的实施例,度量模块4还用于对虚拟机的系统文件进行度量得到相应的度量值和拓展值,并将系统文件的度量值和拓展值记录到vnvram中。

作为一种优选的实施例,度量模块4还用于对虚拟机的硬件设备进行度量得到相应的度量值和拓展值,并将硬件设备的度量值和拓展值记录到vnvram中。

请参照图5,图5为本发明所提供的一种虚拟化tpm设备的方法的流程图,包括:

步骤s31:加载模块预先确定一块虚拟机磁盘镜像文件;

步骤s32:监测模块监测到虚拟机磁盘镜像文件后生成确定指令;

步骤s33:加载模块在接收到确定指令后加载虚拟非易失性随机访问存储器vnvram驱动,使虚拟机磁盘镜像文件初始化为虚拟机的vnvram,其中,vnvram包括一个调用接口,以便虚拟可信赖平台vtpm设备调用vnvram;

步骤s34:创建模块在接收到用户发送的自定义参数后创建vtpm设备;

步骤s35:度量模块调用虚拟机的基本输入输出系统bios,并对bios进行度量得到相应的度量值和拓展值,然后将bios的度量值和拓展值记录到vnvram中。

作为一种优选的实施例,虚拟机磁盘镜像文件为qcow2类型的虚拟磁盘镜像文件。

作为一种优选的实施例,创建模块在接收到用户发送的自定义参数后创建vtpm设备的过程具体为:

创建模块在接收到用户发送的自定义参数后为vtpm设备分配及初始化虚拟机的内存空间;

调用vnvram的调用接口,以便vtpm设备实现存储功能;

调用libtpms库,以便vtpm设备实现度量功能。

本发明还提供了一种虚拟机,应用于kvm虚拟化平台,包括如上述任意一项的虚拟化tpm设备的系统。

本发明还提供了一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意一项方法的步骤。

对于本发明所提供的一种虚拟化tpm设备的方法、虚拟机及可读存储介质的介绍请参照上述实施例,本发明在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1