CN109101319A - 一种在qemu上实现tpcm全虚拟化的平台及其工作方法 - Google Patents
一种在qemu上实现tpcm全虚拟化的平台及其工作方法 Download PDFInfo
- Publication number
- CN109101319A CN109101319A CN201810893705.9A CN201810893705A CN109101319A CN 109101319 A CN109101319 A CN 109101319A CN 201810893705 A CN201810893705 A CN 201810893705A CN 109101319 A CN109101319 A CN 109101319A
- Authority
- CN
- China
- Prior art keywords
- tpcm
- virtual
- equipment
- qemu
- host
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请本申请公开了一种在QEMU上实现TPCM全虚拟化的平台及其工作方法,该平台主要包括:TPCM后端模块、虚拟NVRAM空间模块、虚拟内存映射模块、TPCM逻辑库以及动态迁移模块五个部分。该工作方法包括:在QEMU上利用QOM模型进行虚拟TPCM设备的注册以及虚拟TPCM设备驱动的注册;利用QEMU的虚拟磁盘设备模拟物理TPCM设备的NVRAM存储空间,获取虚拟NVRAM存储空间,并设置对虚拟NVRAM存储空间的操作机制;建立QEMU对TPCM设备的虚拟内存映射;模拟物理TPCM设备的固件指令,并对TPCM设备的功能进行封装;在宿主机之间进行进行虚拟TPCM设备的远程证明、数据迁移和数据删除。通过本申请,能够大大提高虚拟化效率及虚拟机系统的安全性。
Description
技术领域
本申请涉及服务器信息安全技术领域,特别是涉及一种在QEMU(虚拟操作系统模拟器,是一款开源的模拟器及虚拟机监管器)上实现TPCM(Trusted Platform ControllModule,可信平台控制模块)全虚拟化的平台及其工作方法。
背景技术
VM(Virtual Machine,虚拟机)是指通过软件模拟、具有完整硬件功能且运行在完全隔离环境中的完整计算机系统。由于虚拟机完全模拟硬件和运行完整系统,因此也会存在传统硬件上所存在的信息安全缺陷,因此需要对虚拟机提供一种可信系统,来完成从信任根到信任链的验证。具体地,通过TPCM将信任根应用在整个平台中,从信任根开始对计算机系统的BIOS、操作系统引导程序、操作系统内核以及操作系统上运行的文件或程序逐级验证,将信任链扩展到整个计算机系统,充分发挥TPCM的控制作用。因此,TPCM设备的虚拟化实现是个重要问题。
目前TPCM设备的虚拟化实现方法通常是,在QEMU+KVM(Kernel-based VirtualMachine,一款开源的系统虚拟化模块)虚拟化环境中,采用设备透传的方式将物理tpcm设备或在宿主机上运行的tpcm模拟器,以软件的形式实现为tpcm功能,并以用户空间字符设备的形式透传给虚拟机使用,从而实现TPCM设备的虚拟化。
然而,目前TPCM设备的虚拟化实现方法中,当采用物理tpcm设备实现tpcm功能时,由于物理设备有限,且每台物理服务器上可插入的设备数量通常为一块,因此一台物理tpcm设备只能透传给一台虚拟机;而且透传给虚拟机的tpcm设备只能给虚拟机使用,不可再为物理服务器提供可信计算功能;另外,由于该虚拟化实现方法依赖于物理tpcm设备,在TPCM使用过程中,数据内容需要通过tpcm交互,因此采用物理tpcm设备实现tpcm设备虚拟化的方法,存在虚拟化效率低的问题。当采用宿主机上运行的tpcm模拟器实现tpcm功能时,如果开启可信功能,在整个信任链的构建过程中存在性能损耗;而且由于该虚拟化实现方法依赖于tpcm模拟器,在tpcm使用过程中,数据内容需要通过socket交互,因此采用tpcm模拟器实现tpcm设备虚拟化的方法,也存在着虚拟化效率低的问题。另外,由于目前采用透传的方式实现虚拟化,在宿主机虚拟化层中,由宿主机对虚拟机的设备创建和设备应用进行监控和操作,一旦宿主机被入侵,将对虚拟机的可信造成威胁,因此,目前TPCM设备的虚拟化实现方法的安全性不够高。
发明内容
本申请提供了一种在QEMU上实现TPCM全虚拟化的平台及其工作方法,以解决现有技术中TPCM设备的虚拟化效率低和安全性不够高的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
一种在QEMU上实现TPCM全虚拟化的平台,所述平台包括:
TPCM后端模块,用于在QEMU上利用QOM(QEMU Object Module,QEMU提供的一套面向对象编程的模型)模型进行虚拟TPCM设备的注册和虚拟TPCM设备驱动的注册,进行虚拟内存映射模块和TPCM逻辑库的调用,以及,进行虚拟NVRAM空间模块的初始化和调用;
虚拟NVRAM(Non-Volatile Random Access Memory,非易失性随机访问存储器)空间模块,用于利用QEMU的虚拟磁盘设备模拟物理TPCM设备的NVRAM存储空间,以及设置对虚拟NVRAM存储空间的操作机制;
虚拟内存映射模块,用于根据TCG(Trusted Computing Group,可信计算组织)规范制定虚拟TPCM设备的接口规范,并对虚拟TPCM设备进行初始化;
TPCM逻辑库,用于模拟物理TPCM设备的固件指令,并对物理TPCM设备的功能进行封装;
动态迁移模块,用于在宿主机之间进行虚拟TPCM设备的远程证明、数据迁移和数据删除,所述宿主机包括:源主机和目标主机。
可选地,所述动态迁移模块包括:
远程证明单元,用于对参与数据迁移的源主机和目标主机之间进行可信状态查询;
数据迁移单元,用于在源主机和目标主机之间建立安全通信链路,并通过所述安全通信链路将源主机TPCM设备中的内存数据传输至目标主机;
数据删除单元,用于当关闭源主机的虚拟机时,删除源主机TPCM设备中的内存数据。
可选地,所述TPCM逻辑库的密码学逻辑类型包括:国密SM2、国密SM3以及国密SM4。
可选地,每次启动一虚拟机时,所述平台为所述虚拟机创建一个虚拟TPCM设备。
一种在QEMU上实现TPCM全虚拟化的平台的工作方法,所述平台为以上所述的一种在QEMU上实现TPCM全虚拟化的平台,所述工作方法包括:利用QOM模型在QEMU上模拟物理TPCM设备的密码学逻辑,获取一虚拟TPCM设备,其中,所述虚拟TPCM设备与一虚拟机相匹配,所述利用QOM模型在QEMU上模拟物理TPCM设备的密码学逻辑包括:
在QEMU上利用QOM模型进行虚拟TPCM设备的注册以及虚拟TPCM设备驱动的注册;
利用QEMU的虚拟磁盘设备模拟物理TPCM设备的NVRAM存储空间,获取虚拟NVRAM存储空间,并设置对所述虚拟NVRAM存储空间的操作机制;
建立QEMU对TPCM设备的虚拟内存映射;
模拟物理TPCM设备的固件指令,并对TPCM设备的功能进行封装;
在宿主机之间进行进行虚拟TPCM设备的远程证明、数据迁移和数据删除,所述宿主机包括:源主机和目标主机。
可选地,所述在QEMU上利用QOM模型进行虚拟TPCM设备的注册以及虚拟TPCM设备驱动的注册,包括:
获取与TPCM设备相关的配置参数;
通过对所述配置参数进行解析,获取虚拟TPCM设备的类型;
根据虚拟TPCM设备的类型,获取虚拟TPCM设备的后端驱动;
对所述后端驱动进行注册和内容初始化;
启动虚拟TPCM设备;
根据所获取的上层应用命令,通过所述虚拟TPCM设备处理相关操作;
当虚拟TPCM设备所匹配的虚拟机关闭时,所述虚拟TPCM设备自动销毁。
可选地,所述利用QEMU的虚拟磁盘设备模拟物理TPCM设备的NVRAM存储空间,获取虚拟NVRAM存储空间,并设置对所述虚拟NVRAM存储空间的操作机制,包括:
获取与NVRAM相关的参数;
QEMU解析所述与NVRAM相关的参数,获取虚拟TPCM设备的NVRAM存储空间的文件路径和设备ID;
加载QEMU的磁盘设备驱动;
对所述磁盘设备进行初始化;
根据TCG标准,对所述NVRAM存储空间的内容进行初始化;
利用QEMU的互斥锁机制,对所述NVRAM存储空间进行并发访问控制。
可选地,所述建立QEMU对TPCM设备的虚拟内存映射,包括:
在QEMU上利用QOM模型注册TIS类型的虚拟TPCM设备;
根据所获取的内存空间申请,虚拟机为TIS类型的虚拟TPCM设备分配TIS内存;
定义TIS内存的读写操作;
定义TIS内存与TPCM后端模块之间的通信。
可选地,所述模拟物理TPCM设备的固件指令,并对TPCM设备的功能进行封装,包括:
注册回调函数;
设置虚拟TPCM设备的版本;
在当前的虚拟TPCM设备版本下,对所述回调函数中的主函数进行初始化;
根据所获取的TPCM指令和TCG标准,执行虚拟TPCM设备的相应功能;
将执行结果返回至TPCM设备后端模块。
可选地,所述在宿主机之间进行虚拟TPCM设备的远程证明、数据迁移和数据删除,包括:
源主机和目标主机分别查询对方的可信状态;
当源主机和目标主机均可信时,源主机和目标主机之间建立安全通信链路;
源主机通过所述安全通信链路将源主机TPCM设备中的内存数据传输至目标主机;
暂停源主机上的虚拟机,并启动目标主机上的虚拟机;
当源主机暂停成功且目标主机上的虚拟机启动成功后,关闭源主机上的虚拟机,删除源主机TPCM设备中的内存数据。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请提供一种在QEMU上实现TPCM全虚拟化的平台及其工作方法,该平台主要包括:TPCM后端模块、虚拟NVRAM空间模块、虚拟内存映射模块、TPCM逻辑库以及动态迁移模块五个部分。本申请中的平台在每次启动虚拟机时,都会为虚拟机创建一个虚拟TPCM设备,且每个虚拟机对应一个虚拟TPCM设备;而且虚拟机上的TPCM设备由QEMU利用QOM模型进行模拟,虚拟机上的全部功能由虚拟TPCM设备来提高,能够实现全虚拟化,因此目前的平台不再受限于物理TPCM设备,有利于提高虚拟化效率。而且,由于本申请中的平台既不依赖于物理TPCM设备,也不依赖于TPCM模拟器,因此在TPCM使用过程中,不会出现数据内容通过sockte交互或者物理tpcm交互的过程,能够进一步大大提高虚拟化效率。
另外,由于本申请中的平台全部在QEMU中实现,该平台的工作过程对于宿主机来说是透明的;在虚拟机使用过程中,该平台的工作过程对于虚拟机系统也是透明的,但是虚拟TPCM设备对宿主机是不可见的,因此,即使宿主机被入侵,由于虚拟TPCM设备对宿主机的不可见性,导致虚拟机依然是安全的,从而能够使该平台不受干扰地完成整个信任链的构建。因此,采用本申请中的平台,能够有效提高虚拟机系统的的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种在QEMU上实现TPCM全虚拟化的平台的结构示意图;
图2为本申请实施例在使用过程中的结构示意图;
图3为本申请实施例所提供的一种在QEMU上实现TPCM全虚拟化的平台的工作方法的流程示意图;
图4为本申请实施例中TPCM动态迁移实现的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。
实施例一
参见图1,图1为本申请实施例所提供的一种在QEMU上实现TPCM全虚拟化的平台的结构示意图。由图1可知,本实施例中实现TPCM全虚拟化的平台主要包括:TPCM后端模块、虚拟NVRAM空间模块、虚拟内存映射模块、TPCM逻辑库以及动态迁移模块五个部分。
其中,TPCM后端模块用于在QEMU上利用QOM模型进行虚拟TPCM设备的注册和虚拟TPCM设备驱动的注册,进行虚拟内存映射模块和TPCM逻辑库的调用,以及,进行虚拟NVRAM空间模块的初始化和调用。TPCM后端模块是一个在QEMU中实现的后端驱动模块,通过TPCM后端模块,能够完成虚拟TPCM设备的设备注册以及设备驱动注册,实现虚拟内存映射以及TPCM逻辑库的调用,实现虚拟NVRAM内存空间的初始化和各种操作,还能够实现虚拟TPCM设备的各个功能驱动。
虚拟NVRAM空间模块,用于利用QEMU的虚拟磁盘设备模拟物理TPCM设备的NVRAM存储空间,以及设置对虚拟NVRAM存储空间的操作机制。
在模拟物理TPCM设备的过程中,通过QEMU的虚拟磁盘设备来模拟物理TPCM设备的NVRAM空间,在QEMU中所模拟的NVRAM空间定义为虚拟NVRAM存储空间。具体地,以定义某一虚拟磁盘设备为虚拟NVRAM存储空间为例,当QEMU启动时,在QEMU的命令中使用drive参数指定一个qcow2格式的文件作为虚拟TPCM设备的虚拟NVRAM存储空间,并为其分配一个id,QEMU运行时创建BlockBackend结构体blk来指向该虚拟NVRAM存储空间文件,后续虚拟TPCM设备对NVRAM空间的操作都需要通过BlockBackend结构体blk来完成。
本实施例中通过NVRAM空间模块设置对虚拟NVRAM存储空间的操作机制,具体为:通过QEMU的互斥锁机制,完成对虚拟NVRAM存储空间文件的并发访问控制,防止并发操作造成该文件内容的紊乱。
虚拟内存映射模块,用于根据TCG规范制定虚拟TPCM设备的接口规范,并对虚拟TPCM设备进行初始化。通过虚拟内存映射模块的设置,能够为接受TPCM指令并返回TPCM指令的执行结果提供通道。虚拟内存映射模块利用QEMU的QOM模型作为独立的对象存在,QEMU启动时会自动加载TPCM设备的虚拟内存,并完成对虚拟TPCM设备的初始化。
本实施例中虚拟内存的映射符合TCG规范,例如:可以根据TCG规范将虚拟TPCM设备的内存基地址设置为0xFED40000,TPCM芯片中各寄存器对应的地址在该基地址的基础上增加,此内存分配的过程在设备初始化阶段完成。QEMU创建虚拟机后会进行虚拟内存维护,因此虚拟内存映射模块在初始阶段完成对虚拟TPCM设备内存空间的访问接口,后续虚拟机运行过程中,QEMU将根据TPCM初始化的内存内容对该段内存进行维护。
TPCM逻辑库,用于模拟物理TPCM设备的固件指令,并对物理TPCM设备的功能进行封装。物理TPCM设备也即物理TPCM芯片,由于TPCM逻辑库模拟了物理TPCM芯片的固件指令,当接收到虚拟机要访问虚拟机中虚拟TPCM设备所对应的内存空间时,虚拟机的访问接口将接收到的TPCM指令传递给TPCM逻辑库,TPCM逻辑库完成此指令的解析及执行,并将执行结果通过访问接口返回给发送指令的TPCM后端模块。
为实现TPCM逻辑库能够兼容各种版本的物理TPCM设备,可以在TPCM逻辑库中指定最高版本的物理TPCM设备。例如:为了兼容tpcm1.2版本和tpcm2.0版本,可以指定TPCM逻辑库处理的版本为更高级的版本tpcm2.0版本。
本实施例中TPCM逻辑库的密码学逻辑类型包括:国密SM2、国密SM3以及国密SM4。本实施例中的TPCM逻辑库完全支持国密算法,还可以基于国密算法提供加密和解密,以及密码学上数据完整性的验证。
继续参见图1可知,本实施例中的平台还包括有动态迁移模块,动态迁移模块用于在宿主机之间进行虚拟TPCM设备的远程证明、数据迁移和数据删除,其中,宿主机包括:源主机和目标主机。
本实施例中虚拟TPCM设备的动态迁移包括:远程证明、数据迁移和数据删除,这些动态迁移通过动态迁移模块在不同的宿主机之间进行。
进一步地,本实施例中动态迁移模块包括:远程证明单元、数据迁移单元和数据删除单元。其中,远程证明单元用于对参与数据迁移的源主机和目标主机之间进行可信状态查询,源主机和目标主机分别通过虚拟机管理模块查询对方的可信状态。数据迁移单元用于在源主机和目标主机之间建立安全通信链路,并通过安全通信链路将源主机TPCM设备中的内存数据传输至目标主机。也就是,通过数据迁移单元,能够实现源主机与目标主机间数据通道建立、源主机中虚拟TPCM设备的数据准备以及目标主机中虚拟TPCM设备的数据加载三个过程。数据删除单元用于当关闭源主机的虚拟机时,删除源主机TPCM设备中的内存数据。
每次启动一虚拟机时,本实施例中的平台为所启动的虚拟机创建一个虚拟TPCM设备,且虚拟机与虚拟TPCM设备一一匹配。
申请实施例中的平台在使用过程中的结构示意图,可以参见图2,由图2可知,每启动一个虚拟机,该平台为所启动的虚拟机创建一虚拟TPCM设备。
进一步地,本实施例的平台中还设置有虚拟机快照模块,用于通过虚拟机快照,将虚拟机或虚拟TPCM设备的状态恢复至快照前状态。
由本实施例中平台的结构设置可知,在虚拟TPCM设备的建立上,每次启动虚拟机都会为所启动的虚拟机创建一个虚拟TPCM设备;在功能上,虚拟机上TPCM设备由QEMU模拟,功能全部由虚拟TPCM设备提供,不依赖于物理TPCM设备,因此,原有的物理TPCM设备可供服务器启动时信任链的构建,这种结构设置,能够同时解决物理服务器和虚拟机上信任链的构建冲突问题;因此,目前的平台不再受限于物理TPCM设备,有利于提高虚拟化效率。另外,从虚拟化效率来看,本实施例中的平台不依赖物理TPCM设备和TPCM模拟器,在TPCM的使用过程中,不会现数据内容通过sockte交互或者物理tpcm交互的过程,能够进一步大大提高虚拟化效率。从迁移限制的方面看,由于利用QEMU的QOM模型全虚拟化了TPCM设备,虚拟TPCM设备的使用都会在QEMU中进行,不与宿主机产生联系,在进行迁移时,通过迁移QEMU的内存和虚拟机存储即可完成对虚拟机的迁移,这个过程也同时完成了对虚拟TPCM设备的迁移。由于本申请中的平台全部在QEMU中实现,该平台的工作过程对于宿主机来说是透明的;在虚拟机使用过程中,该平台的工作过程对于虚拟机系统也是透明的,但是虚拟TPCM设备对宿主机是不可见的,因此,即使宿主机被入侵,由于虚拟TPCM设备对宿主机的不可见性,导致虚拟机依然是安全的,从而能够使该平台不受干扰地完成整个信任链的构建。因此,采用本申请中的平台,能够有效提高虚拟机系统的的安全性。
综上所述,本实施例中的平台通过五个模块的设置,利用QEMU中的QOM模型实现对TPCM芯片的模拟,以实现QEMU创建的虚拟机系统上层对物理TPCM设备的应用,从而完成在计算机系统中从可信度量根到整个度量链的构建过程,实现虚拟机的可信计算功能,保证虚拟机系统的安全。
实施例二
本申请还提供一种在QEMU上实现TPCM全虚拟化的平台的工作方法,该工作方法主要是:利用QOM模型在QEMU上模拟物理TPCM设备的密码学逻辑,获取一虚拟TPCM设备。其中,虚拟TPCM设备与一虚拟机相匹配。虚拟TPCM设备的使用过程,也就是虚拟机构建完整信任链的过程。
在图1和图2所示实施例的基础之上参见图3,图3为本申请实施例所提供的一种在QEMU上实现TPCM全虚拟化的平台的工作方法的流程示意图。由图3可知,本实施例中平台的工作方法,主要包括如下过程:
S1:在QEMU上利用QOM模型进行虚拟TPCM设备的注册以及虚拟TPCM设备驱动的注册。
具体地,步骤S1包括如下过程:
S11:获取与TPCM设备相关的配置参数。
该配置参数由物理主机发送的指令中得出,首先获取物理主机发送的指令,然后判断该指令中是否含有TPCM设备相关的配置参数,如果有,继续执行步骤S12。
S12:通过对配置参数进行解析,获取虚拟TPCM设备的类型。
通过QEMU命令行启动一台虚拟机,QEMU解析与TPCM设备相关的配置参数参数,从而获取到虚拟TPCM设备的类型,本实施例所获取的TPCM设备的类型为全虚拟化TPCM类型:libtpcms类型。
S13:根据虚拟TPCM设备的类型,获取虚拟TPCM设备的后端驱动。
也就是获取libtpcms类型的TPCM后端驱动。
S14:对虚拟TPCM设备的后端驱动进行注册和内容初始化。
S15:启动虚拟TPCM设备。
S16:根据所获取的上层应用命令,通过虚拟TPCM设备处理相关操作。
具体地,首先接收上层应用指令,指令通过TPCM后端模块处理后转发给TPCM逻辑库处理,根据TPCM逻辑库中的规则,从虚拟NVRAM存储空间中读取或写入数据,逻辑库处理完成后将执行结果经由TPCM后端模块反馈至上层应用。
S17:当虚拟TPCM设备所匹配的虚拟机关闭时,虚拟TPCM设备自动销毁。
虚拟TPCM设备自动销毁后,就不会存在设备信息的残留,因此不会影响其他物理机和虚拟机的正常运行。反之,如果不销毁还可能会存在数据泄露,从而导致虚拟机的安全性降低。
S2:利用QEMU的虚拟磁盘设备模拟物理TPCM设备的NVRAM存储空间,获取虚拟NVRAM存储空间,并设置对所述虚拟NVRAM存储空间的操作机制。
具体地,步骤S2包括如下过程:
S21:获取与NVRAM相关的参数。
该参数由物理主机发送的指令中得出,首先获取物理主机发送的指令,然后判断指令中是否含有与NVRAM相关的参数,如果有,继续执行步骤S22进行参数解析。
S22:QEMU解析所述与NVRAM相关的参数,获取虚拟TPCM设备的NVRAM存储空间的文件路径和设备ID。
通过QEMU命令行启动一台虚拟机,QEMU解析TPCM作为NVRAM存储空间的文件地址和ID。
S23:加载QEMU的磁盘设备驱动。
S24:对磁盘设备进行初始化。
本实施例通过QEMU的虚拟磁盘设备来模拟虚拟TPCM设备的NVRAM存储空间,因此,需要首先加载QEMU的磁盘设备驱动。加载QEMU的磁盘设备驱动后,对磁盘设备进行初始化。
S25:根据TCG标准,对NVRAM存储空间的内容进行初始化。
S26:利用QEMU的互斥锁机制,对NVRAM存储空间进行并发访问控制。
为保证虚拟TPCM设备的NVRAM存储空间中的并行读写操作互不干扰,本实施例在QEMU中增加互斥锁,利用QEMU的互斥锁机制对NVRAM存储空间进行并发访问控制。
S3:建立QEMU对TPCM设备的虚拟内存映射。
具体地,步骤S3又包括如下过程:
S31:在QEMU上利用QOM模型注册TIS类型的虚拟TPCM设备。
本实施例中TIS类型的虚拟TPCM设备,主要用于完成虚拟TPCM设备在虚拟机中对内存的管理。
S32:根据所获取的内存空间申请,虚拟机为TIS类型的虚拟TPCM设备分配TIS内存。
S33:定义TIS内存的读写操作。
S34:定义TIS内存与TPCM后端模块之间的通信。
定义TIS内存与TPCM后端模块之间的通信后,方便后续将内存数据发送至TPCM后端模块进行相应处理。
S4:模拟物理TPCM设备的固件指令,并对TPCM设备的功能进行封装。
具体地,步骤S4包括如下过程:
S41:注册回调函数。
本实施例中步骤S4通过TPCM逻辑库来实现,TPCM逻辑库首先进行回调函数的注册。
S42:设置虚拟TPCM设备的版本。
为了兼容各种版本的物理TPCM设备,可以在TPCM逻辑库中指定最高版本的物理TPCM设备。例如:为了兼容tpcm1.2版本和tpcm2.0版本,可以指定TPCM逻辑库处理的版本为更高级的版本tpcm2.0版本。
S43:在当前的虚拟TPCM设备版本下,对回调函数中的主函数进行初始化。
对TPCM逻辑库进行设置后,进行TPCM逻辑库的初始化,也就是对回调函数中的主函数进行初始化,等待接收来自上层应用的指令。
S44:根据所获取的TPCM指令和TCG标准,执行虚拟TPCM设备的相应功能。
S45:将执行结果返回至TPCM设备后端模块。
S5:在宿主机之间进行进行虚拟TPCM设备的远程证明、数据迁移和数据删除,宿主机包括:源主机和目标主机。
具体地,参见图4中TPCM动态迁移实现的流程图,由图4可知,步骤S5包括如下过程:
S51:源主机和目标主机分别查询对方的可信状态。
源主机和目标主机分别向虚拟机管理模块查询对方的可信状态,当双方均可信时,继续执行步骤S52,否则返回错误,恢复源主机重新进行可信状态查询。
S52:当源主机和目标主机均可信时,源主机和目标主机之间建立安全通信链路。
源主机和目标主机之间所建立的安全通信链路,具体根据用户配置而定,通常为SSH安全连接或者SSL安全连接。
S53:源主机通过安全通信链路将源主机TPCM设备中的内存数据传输至目标主机。
通常步骤S53又包括:
S531:源主机进行数据准备,如:虚拟TPCM设备内存数据的保存;
S532:源主机将TPCM设备内存数据通过安全通信链路传输至目标主机;
S533:目标主机进行数据加载,如:虚拟TPCM设备内存数据的加载。
S54:暂停源主机上的虚拟机,并启动目标主机上的虚拟机。
S55:当源主机暂停成功且目标主机上的虚拟机启动成功后,关闭源主机上的虚拟机,删除源主机TPCM设备中的内存数据。
也就是首先判定源主机上的虚拟机是否暂停成功,且目标主机上的虚拟机是否启动成功;如果是,关闭源主机上的虚拟机,删除源主机TPCM设备中的内存数据,否则,返回错误,并恢复源主机。虚拟机暂停失败后,会取消暂停操作,恢复至虚拟机原有的运行状态。
本实施例未详细描述的部分,可以参照图1和图2所示的实施例一,两个实施例之间可以互相参照,在此不再赘述。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种在QEMU上实现TPCM全虚拟化的平台,其特征在于,所述平台包括:
TPCM后端模块,用于在QEMU上利用QOM模型进行虚拟TPCM设备的注册和虚拟TPCM设备驱动的注册,进行虚拟内存映射模块和TPCM逻辑库的调用,以及,进行虚拟NVRAM空间模块的初始化和调用;
虚拟NVRAM空间模块,用于利用QEMU的虚拟磁盘设备模拟物理TPCM设备的NVRAM存储空间,以及设置对虚拟NVRAM存储空间的操作机制;
虚拟内存映射模块,用于根据TCG规范制定虚拟TPCM设备的接口规范,并对虚拟TPCM设备进行初始化;
TPCM逻辑库,用于模拟物理TPCM设备的固件指令,并对物理TPCM设备的功能进行封装;
动态迁移模块,用于在宿主机之间进行虚拟TPCM设备的远程证明、数据迁移和数据删除,所述宿主机包括:源主机和目标主机。
2.根据权利要求1所述的一种在QEMU上实现TPCM全虚拟化的平台,其特征在于,所述动态迁移模块包括:
远程证明单元,用于对参与数据迁移的源主机和目标主机之间进行可信状态查询;
数据迁移单元,用于在源主机和目标主机之间建立安全通信链路,并通过所述安全通信链路将源主机TPCM设备中的内存数据传输至目标主机;
数据删除单元,用于当关闭源主机的虚拟机时,删除源主机TPCM设备中的内存数据。
3.根据权利要求1所述的一种在QEMU上实现TPCM全虚拟化的平台,其特征在于,所述TPCM逻辑库的密码学逻辑类型包括:国密SM2、国密SM3以及国密SM4。
4.根据权利要求1所述的一种在QEMU上实现TPCM全虚拟化的平台,其特征在于,每次启动一虚拟机时,所述平台为所述虚拟机创建一个虚拟TPCM设备。
5.一种在QEMU上实现TPCM全虚拟化的平台的工作方法,其特征在于,所述平台为权利要求1-4中任一所述的一种在QEMU上实现TPCM全虚拟化的平台,所述工作方法包括:利用QOM模型在QEMU上模拟物理TPCM设备的密码学逻辑,获取一虚拟TPCM设备,其中,所述虚拟TPCM设备与一虚拟机相匹配,所述利用QOM模型在QEMU上模拟物理TPCM设备的密码学逻辑包括:
在QEMU上利用QOM模型进行虚拟TPCM设备的注册以及虚拟TPCM设备驱动的注册;
利用QEMU的虚拟磁盘设备模拟物理TPCM设备的NVRAM存储空间,获取虚拟NVRAM存储空间,并设置对所述虚拟NVRAM存储空间的操作机制;
建立QEMU对TPCM设备的虚拟内存映射;
模拟物理TPCM设备的固件指令,并对TPCM设备的功能进行封装;
在宿主机之间进行进行虚拟TPCM设备的远程证明、数据迁移和数据删除,所述宿主机包括:源主机和目标主机。
6.根据权利要求5所述的一种在QEMU上实现TPCM全虚拟化的平台的工作方法,其特征在于,所述在QEMU上利用QOM模型进行虚拟TPCM设备的注册以及虚拟TPCM设备驱动的注册,包括:
获取与TPCM设备相关的配置参数;
通过对所述配置参数进行解析,获取虚拟TPCM设备的类型;
根据虚拟TPCM设备的类型,获取虚拟TPCM设备的后端驱动;
对所述后端驱动进行注册和内容初始化;
启动虚拟TPCM设备;
根据所获取的上层应用命令,通过所述虚拟TPCM设备处理相关操作;
当虚拟TPCM设备所匹配的虚拟机关闭时,所述虚拟TPCM设备自动销毁。
7.根据权利要求5所述的一种在QEMU上实现TPCM全虚拟化的平台的工作方法,其特征在于,所述利用QEMU的虚拟磁盘设备模拟物理TPCM设备的NVRAM存储空间,获取虚拟NVRAM存储空间,并设置对所述虚拟NVRAM存储空间的操作机制,包括:
获取与NVRAM相关的参数;
QEMU解析所述与NVRAM相关的参数,获取虚拟TPCM设备的NVRAM存储空间的文件路径和设备ID;
加载QEMU的磁盘设备驱动;
对所述磁盘设备进行初始化;
根据TCG标准,对所述NVRAM存储空间的内容进行初始化;
利用QEMU的互斥锁机制,对所述NVRAM存储空间进行并发访问控制。
8.根据权利要求5所述的一种在QEMU上实现TPCM全虚拟化的平台的工作方法,其特征在于,所述建立QEMU对TPCM设备的虚拟内存映射,包括:
在QEMU上利用QOM模型注册TIS类型的虚拟TPCM设备;
根据所获取的内存空间申请,虚拟机为TIS类型的虚拟TPCM设备分配TIS内存;
定义TIS内存的读写操作;
定义TIS内存与TPCM后端模块之间的通信。
9.根据权利要求5所述的一种在QEMU上实现TPCM全虚拟化的平台的工作方法,其特征在于,所述模拟物理TPCM设备的固件指令,并对TPCM设备的功能进行封装,包括:
注册回调函数;
设置虚拟TPCM设备的版本;
在当前的虚拟TPCM设备版本下,对所述回调函数中的主函数进行初始化;
根据所获取的TPCM指令和TCG标准,执行虚拟TPCM设备的相应功能;
将执行结果返回至TPCM设备后端模块。
10.根据权利要求5所述的一种在QEMU上实现TPCM全虚拟化的平台的工作方法,其特征在于,所述在宿主机之间进行虚拟TPCM设备的远程证明、数据迁移和数据删除,包括:
源主机和目标主机分别查询对方的可信状态;
当源主机和目标主机均可信时,源主机和目标主机之间建立安全通信链路;
源主机通过所述安全通信链路将源主机TPCM设备中的内存数据传输至目标主机;
暂停源主机上的虚拟机,并启动目标主机上的虚拟机;
当源主机暂停成功且目标主机上的虚拟机启动成功后,关闭源主机上的虚拟机,删除源主机TPCM设备中的内存数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810893705.9A CN109101319B (zh) | 2018-08-09 | 2018-08-09 | 一种在qemu上实现tpcm全虚拟化的平台的工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810893705.9A CN109101319B (zh) | 2018-08-09 | 2018-08-09 | 一种在qemu上实现tpcm全虚拟化的平台的工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101319A true CN109101319A (zh) | 2018-12-28 |
CN109101319B CN109101319B (zh) | 2021-07-27 |
Family
ID=64848852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810893705.9A Active CN109101319B (zh) | 2018-08-09 | 2018-08-09 | 一种在qemu上实现tpcm全虚拟化的平台的工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101319B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783474A (zh) * | 2019-01-08 | 2019-05-21 | 北京工业大学 | 虚拟可信根实例及其自身状态数据的安全迁移方法 |
CN111158854A (zh) * | 2019-12-19 | 2020-05-15 | 北京可信华泰信息技术有限公司 | 一种云环境虚拟机迁移时信任链的恢复方法 |
CN113312170A (zh) * | 2020-05-29 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 内存管理系统及方法 |
CN113904945A (zh) * | 2021-10-15 | 2022-01-07 | 杭州安恒信息技术股份有限公司 | 物联网设备模拟调试方法、装置、电子装置和存储介质 |
CN115002181A (zh) * | 2022-07-22 | 2022-09-02 | 北京工业大学 | 一种虚拟可信根及其虚拟信任链方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295340A (zh) * | 2008-06-20 | 2008-10-29 | 北京工业大学 | 一种可信平台模块及其主动度量方法 |
CN101859263A (zh) * | 2010-06-12 | 2010-10-13 | 中国人民解放军国防科学技术大学 | 一种支持在线迁移的虚拟机间快速通信方法 |
CN103701607A (zh) * | 2013-12-25 | 2014-04-02 | 国家电网公司 | 一种虚拟机环境下可信平台模块的虚拟化方法 |
CN105095768A (zh) * | 2015-08-20 | 2015-11-25 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟化的可信服务器信任链的构建方法 |
CN106970831A (zh) * | 2017-05-15 | 2017-07-21 | 金航数码科技有限责任公司 | 一种面向云平台的虚拟机资源动态调度系统及方法 |
CN107392030A (zh) * | 2017-07-28 | 2017-11-24 | 浪潮(北京)电子信息产业有限公司 | 一种检测虚拟机启动安全的方法及装置 |
CN107533609A (zh) * | 2015-05-29 | 2018-01-02 | 英特尔公司 | 用于对系统中的多个可信执行环境进行控制的系统、设备和方法 |
US20180019875A1 (en) * | 2007-12-31 | 2018-01-18 | Intel Corporation | System and method for high performance secure access to a trusted platform module on a hardware virtualization platform |
CN107861795A (zh) * | 2017-11-20 | 2018-03-30 | 浪潮(北京)电子信息产业有限公司 | 模拟物理tcm芯片的方法、系统、装置及可读存储介质 |
-
2018
- 2018-08-09 CN CN201810893705.9A patent/CN109101319B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180019875A1 (en) * | 2007-12-31 | 2018-01-18 | Intel Corporation | System and method for high performance secure access to a trusted platform module on a hardware virtualization platform |
CN101295340A (zh) * | 2008-06-20 | 2008-10-29 | 北京工业大学 | 一种可信平台模块及其主动度量方法 |
CN101859263A (zh) * | 2010-06-12 | 2010-10-13 | 中国人民解放军国防科学技术大学 | 一种支持在线迁移的虚拟机间快速通信方法 |
CN103701607A (zh) * | 2013-12-25 | 2014-04-02 | 国家电网公司 | 一种虚拟机环境下可信平台模块的虚拟化方法 |
CN107533609A (zh) * | 2015-05-29 | 2018-01-02 | 英特尔公司 | 用于对系统中的多个可信执行环境进行控制的系统、设备和方法 |
CN105095768A (zh) * | 2015-08-20 | 2015-11-25 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟化的可信服务器信任链的构建方法 |
CN106970831A (zh) * | 2017-05-15 | 2017-07-21 | 金航数码科技有限责任公司 | 一种面向云平台的虚拟机资源动态调度系统及方法 |
CN107392030A (zh) * | 2017-07-28 | 2017-11-24 | 浪潮(北京)电子信息产业有限公司 | 一种检测虚拟机启动安全的方法及装置 |
CN107861795A (zh) * | 2017-11-20 | 2018-03-30 | 浪潮(北京)电子信息产业有限公司 | 模拟物理tcm芯片的方法、系统、装置及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
张建标等: "云环境下可重构虚拟可信根的设计框架", 《信息网络安全》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783474A (zh) * | 2019-01-08 | 2019-05-21 | 北京工业大学 | 虚拟可信根实例及其自身状态数据的安全迁移方法 |
CN111158854A (zh) * | 2019-12-19 | 2020-05-15 | 北京可信华泰信息技术有限公司 | 一种云环境虚拟机迁移时信任链的恢复方法 |
CN113312170A (zh) * | 2020-05-29 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 内存管理系统及方法 |
CN113312170B (zh) * | 2020-05-29 | 2024-01-23 | 阿里巴巴集团控股有限公司 | 内存管理系统及方法 |
CN113904945A (zh) * | 2021-10-15 | 2022-01-07 | 杭州安恒信息技术股份有限公司 | 物联网设备模拟调试方法、装置、电子装置和存储介质 |
CN113904945B (zh) * | 2021-10-15 | 2024-04-09 | 杭州安恒信息技术股份有限公司 | 物联网设备模拟调试方法、装置、电子装置和存储介质 |
CN115002181A (zh) * | 2022-07-22 | 2022-09-02 | 北京工业大学 | 一种虚拟可信根及其虚拟信任链方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109101319B (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101319A (zh) | 一种在qemu上实现tpcm全虚拟化的平台及其工作方法 | |
CN108170516A (zh) | 创建vTPM的方法、装置、设备及计算机可读存储介质 | |
CN102214277B (zh) | 创建多核处理器虚拟机系统可信环境的方法及装置 | |
US8954965B2 (en) | Trusted execution environment virtual machine cloning | |
US8776041B2 (en) | Updating a virtual machine monitor from a guest partition | |
Hartig et al. | The Nizza secure-system architecture | |
US20110202765A1 (en) | Securely move virtual machines between host servers | |
CN109165079B (zh) | 基于虚拟化的云数据中心可信平台、信任链构建方法 | |
US8910155B1 (en) | Methods and systems for injecting endpoint management agents into virtual machines | |
WO2011102978A2 (en) | Distribution control and tracking mechanism of virtual machine appliances | |
US9495181B2 (en) | Creating a virtual appliance | |
CN108027724A (zh) | 内核可加载模块的服务中升级 | |
US11829478B2 (en) | Full server recovery architecture for cloud bare metal instances | |
CN107704308B (zh) | 虚拟平台vTPM管理系统、信任链构建方法及装置、存储介质 | |
CN111049686A (zh) | 一种电力监控系统安全防护虚拟实验室及其构建方法 | |
CN107111717A (zh) | 升级虚拟机上的安全引导策略 | |
CN106569876A (zh) | 一种基于直接设备访问模型的虚拟机迁移的方法及装置 | |
CN108885572A (zh) | 安全驱动程序平台 | |
CN108595983A (zh) | 一种基于硬件安全隔离执行环境的硬件架构、及应用上下文完整性度量方法 | |
TW202101263A (zh) | 安全作業系統映像之增量解密及完整度驗證 | |
CN102096782B (zh) | 一种基于虚拟机的移动介质网银安全认证方法 | |
CN109376119B (zh) | 一种创建磁盘镜像文件加密快照、使用的方法及存储介质 | |
Kelbley et al. | Windows Server 2008 Hyper-V: Insiders Guide to Microsoft's Hypervisor | |
CN105653342B (zh) | 一种Windows池桌面自动入域的方法及系统 | |
US11645400B2 (en) | Secured interprocess communication |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |