CN107861795B - 模拟物理tcm芯片的方法、系统、装置及可读存储介质 - Google Patents

模拟物理tcm芯片的方法、系统、装置及可读存储介质 Download PDF

Info

Publication number
CN107861795B
CN107861795B CN201711156805.5A CN201711156805A CN107861795B CN 107861795 B CN107861795 B CN 107861795B CN 201711156805 A CN201711156805 A CN 201711156805A CN 107861795 B CN107861795 B CN 107861795B
Authority
CN
China
Prior art keywords
tcm
physical
disk
function library
chip
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
Application number
CN201711156805.5A
Other languages
English (en)
Other versions
CN107861795A (zh
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.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry 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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201711156805.5A priority Critical patent/CN107861795B/zh
Publication of CN107861795A publication Critical patent/CN107861795A/zh
Application granted granted Critical
Publication of CN107861795B publication Critical patent/CN107861795B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/45537Provision of facilities of other operating environments, e.g. WINE
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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
    • G06F2009/45583Memory management, e.g. access or allocation

Abstract

本发明公开了一种模拟物理TCM芯片的方法、系统、装置及可读存储介质,应用于Qemu构建的虚拟环境,包括:预先选取一块模拟磁盘设备作为模拟的NV磁盘;将物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库,其中,TCM逻辑功能库实现读写NV磁盘的操作;在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间,并通过虚拟内存空间的访问接口将TCM功能指令发送给TCM逻辑功能库;TCM逻辑功能库解析并执行TCM功能指令,并将执行结果返回给虚拟机。本发明通过模拟物理TCM芯片的功能,使基于物理TCM芯片的应用可以迁移至虚拟环境中,无差别的使用物理TCM芯片的功能。

Description

模拟物理TCM芯片的方法、系统、装置及可读存储介质
技术领域
本发明涉及虚拟化安全领域,特别是涉及一种模拟物理TCM芯片的方法、系统、装置及可读存储介质。
背景技术
物理TCM(Trusted Computing Platform,可信计算平台)芯片是一款通过国密局认证的密码学芯片,支持国密SM2、SM3以及SM4密码学逻辑,可以基于国密算法体系提供加解密、完整性验证等操作。Qemu是一款开源的模拟器,可以利用Xen、KVM(Kernel-basedVirtual Machine,基于内核的虚拟机)等VMM(Virtual Machine Monitor,虚拟机监控器)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机。
随着云计算和大数据的兴起,多数搭建在物理平台上的业务系统已经迁移至了虚拟系统环境中。但现阶段VMware、Xen、KVM等主流的VMM都不支持物理TCM芯片的功能,所以一些基于物理TCM芯片的应用不能迁移至虚拟化环境中。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种模拟物理TCM芯片的方法、系统、装置及可读存储介质,模拟了物理TCM芯片的功能,使得基于物理TCM芯片的应用可以迁移至虚拟环境中,并且可以无差别的使用物理TCM芯片的功能。
为解决上述技术问题,本发明提供了一种模拟物理TCM芯片的方法,应用于Qemu构建的虚拟环境,包括:
预先选取一块模拟磁盘设备作为模拟的NV磁盘;
将所述物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库,其中,所述TCM逻辑功能库实现读写所述NV磁盘的操作;
在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间,并通过所述虚拟内存空间的访问接口将所述TCM功能指令发送给所述TCM逻辑功能库;
所述TCM逻辑功能库解析并执行所述TCM功能指令,并将执行结果返回给所述虚拟机。
优选的,所述模拟磁盘设备为Qemu中的drive参数所指定的文件。
优选的,所述预先选取一块模拟磁盘设备作为模拟的NV磁盘之后,将物理TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库之前,该方法还包括:
在所述Qemu的BlockBackend机制中添加互斥锁机制,以便所述TCM逻辑功能库实现并发读写所述NV磁盘的操作。
优选的,所述将所述物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库之后,在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间之前,该方法还包括:
创建一个TCM后端对象;
则通过所述虚拟内存空间的访问接口将所述TCM功能指令发送给所述TCM逻辑功能库的过程具体为:
通过所述虚拟内存空间的访问接口将所述TCM功能指令发送给所述TCM后端对象,然后所述TCM后端对象调用所述TCM逻辑功能库;
则所述TCM逻辑功能库实现读写所述NV磁盘的操作的过程具体为:
所述TCM逻辑功能库通过所述TCM后端对象实现读写所述NV磁盘的操作。
为解决上述技术问题,本发明还提供了一种模拟物理TCM芯片的系统,应用于Qemu构建的虚拟环境,包括:
选取模块,用于预先选取一块模拟磁盘设备作为模拟的NV磁盘;
封装模块,用于将所述物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库,其中,所述TCM逻辑功能库用于实现读写所述NV磁盘的操作;
虚拟映射模块,用于在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间,并通过所述虚拟内存空间的访问接口将所述TCM功能指令发送给所述TCM逻辑功能库;
则所述TCM逻辑功能库还用于解析并执行所述TCM功能指令,并将执行结果返回给所述虚拟机。
优选的,所述模拟磁盘设备为Qemu中的drive参数所指定的文件。
优选的,该系统还包括:
添加模块,用于在所述Qemu的BlockBackend机制中添加互斥锁机制,以便所述TCM逻辑功能库实现并发读写所述NV磁盘的操作。
优选的,该系统还包括:
创建模块,用于创建一个TCM后端对象;
则所述虚拟映射模块具体用于:
通过所述虚拟内存空间的访问接口将所述TCM功能指令发送给所述TCM后端对象,然后所述TCM后端对象调用所述TCM逻辑功能库;
则所述TCM逻辑功能库具体用于:
通过所述TCM后端对象实现读写所述NV磁盘的操作。
为解决上述技术问题,本发明还提供了一种模拟物理TCM芯片的装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任意一项所述模拟物理TCM芯片方法的步骤。
为解决上述技术问题,本发明还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述模拟物理TCM芯片方法的步骤。
本发明提供了一种模拟物理TCM芯片的方法,应用于Qemu构建的虚拟环境,包括:预先选取一块模拟磁盘设备作为模拟的NV磁盘;将物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库,其中,TCM逻辑功能库实现读写NV磁盘的操作;在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间,并通过虚拟内存空间的访问接口将TCM功能指令发送给TCM逻辑功能库;TCM逻辑功能库解析并执行TCM功能指令,并将执行结果返回给虚拟机。
可见,在实际应用中,采用本发明的方案,在Qemu构建的虚拟环境中模拟物理TCM芯片的功能,使得虚拟机中的应用不再需要依赖物理TCM芯片,因此基于物理TCM芯片的应用可以迁移至虚拟环境中,并且可以无差别的使用物理TCM芯片的功能。
本发明还提供了一种模拟物理TCM芯片的系统、装置及可读存储介质,具有和上述模拟物理TCM芯片的方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种模拟物理TCM芯片方法的流程图;
图2为本发明所提供的一种模拟物理TCM芯片方法的一种实施例的结构示意图;
图3为本发明所提供的一种模拟物理TCM芯片系统的另一种结构示意图。
具体实施方式
本发明的核心是提供一种模拟物理TCM芯片的方法、系统、装置及可读存储介质,模拟了物理TCM芯片的功能,使得基于物理TCM芯片的应用可以迁移至虚拟环境中,并且可以无差别的使用物理TCM芯片的功能。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明所提供的一种模拟物理TCM芯片方法的流程图,应用于Qemu构建的虚拟环境,包括:
步骤1:预先选取一块模拟磁盘设备作为模拟的NV磁盘;
具体的,在实际应用中,物理TCM芯片的NV空间是用来存放物理TCM芯片的内部数据并同时向上层应用提供简单的数据存储功能的。而在Qemu构建的虚拟环境中并不存在像物理TCM芯片的NV空间那样独立的物理空间,因此需要Qemu的磁盘设备维护机制选取一块模拟磁盘设备作为模拟的NV磁盘。可以理解的是,模拟出的NV磁盘也会保存虚拟机中的与模拟物理TCM芯片相关的数据,还可以对相关数据进行可信计算。
其中,模拟磁盘设备一般不小于16K,且Qemu可支持的任意类型的模拟磁盘设备均可作为本发明中模拟的NV磁盘。
步骤2:将物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库,其中,TCM逻辑功能库实现读写NV磁盘的操作;
具体的,物理TCM芯片的逻辑功能被固化到了物理TCM芯片中,每个TCM功能指令都在物理TCM芯片内部完成处理,然后将处理后的结果返回,基于此本方案将固化至物理TCM芯片的密码学逻辑封装成代码逻辑,即将物理TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库。可以理解的是,TCM逻辑功能库的主要功能为模拟物理TCM芯片逻辑固件的功能,即解析并执行TCM功能指令。
相应的,TCM逻辑功能库还可以对NV磁盘进行读写操作,若TCM逻辑功能库未能读到NV磁盘上的数据时,会自动生成与该操作相关的初始化值并写入到NV磁盘中。
步骤3:在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间,并通过虚拟内存空间的访问接口将TCM功能指令发送给TCM逻辑功能库;
步骤4:TCM逻辑功能库解析并执行TCM功能指令,并将执行结果返回给虚拟机。
具体的,物理TCM芯片的各个寄存器都有固定的内存地址,由BIOS(Basic InputOutput System,基本输入输出系统)完成内存映射,物理设备中的应用程序通过向这段地址发送TCM功能指令来完成对物理TCM芯片的应用。因此本发明在Qemu模拟的虚拟环境中划分出一段类似的虚拟内存空间,具体的,Qemu提供了memory_region_add_subregion函数,通过该函数可以在Qemu的进程中创建一段虚拟内存空间,使虚拟机可以直接访问该虚拟内存空间。
根据物理TCM芯片的规范,定义了物理TCM芯片的内存基址为0xFED40000,物理TCM芯片中个寄存器对应的地址在该基址的基础上增加。其中,这段虚拟内存空间的地址和物理TCM芯片所对应的内存空间的地址是一致的,从而使得虚拟机中的应用程序可以直接向该虚拟内存空间发送TCM功能指令。相应的,虚拟机中任何对该虚拟内存空间的操作所产生的数据都会发送至TCM逻辑功能库。
具体的,Qemu创建虚拟机后会进行虚拟内存维护,因此只需在初始化阶段划分出该段虚拟内存空间并实现该虚拟内存空间的访问接口即可。相应的,通过Qemu提供的memory_region_init_io函数可以初始化该段虚拟内存空间,初始化过程中最主要的操作为重定向该虚拟内存空间的访问接口,虚拟机对该虚拟内存空间的读写操作都由Qemu映射至对应的具体实现中,通过实现具体的访问接口,即可完成对虚拟机发送的TCM功能指令的获取及执行结果的返回。
进一步的,当虚拟机中的某一应用程序访问该虚拟内存空间时,该虚拟内存空间的访问接口会将接收到的TCM功能指令发送给TCM逻辑功能库,由TCM逻辑功能库完成TCM功能指令的解析及执行,并将解析结果通过该访问接口返回给操作该虚拟内存空间的应用程序,保证了虚拟机中的应用程序不再需要依赖物理TCM芯片,在Qemu创建的虚拟环境中也可以无差别的使用物理TCM芯片的功能。
本发明提供了一种模拟物理TCM芯片的方法,应用于Qemu构建的虚拟环境,包括:预先选取一块模拟磁盘设备作为模拟的NV磁盘;将物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库,其中,TCM逻辑功能库实现读写NV磁盘的操作;在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间,并通过虚拟内存空间的访问接口将TCM功能指令发送给TCM逻辑功能库;TCM逻辑功能库解析并执行TCM功能指令,并将执行结果返回给虚拟机。
可见,在实际应用中,采用本发明的方案,在Qemu构建的虚拟环境中模拟物理TCM芯片的功能,使得虚拟机中的应用不再需要依赖物理TCM芯片,因此基于物理TCM芯片的应用可以迁移至虚拟环境中,并且可以无差别的使用物理TCM芯片的功能。
在上述实施例的基础上:
作为一种优选的实施例,模拟磁盘设备为Qemu中的drive参数所指定的文件。
具体的,本方案需要一块模拟磁盘设备来模拟物理TCM芯片的NV空间,当Qemu启动时,可以使用drive参数指定一文件作为模拟的NV磁盘即NV空间。可以理解的是,虚拟机中的文件实际上有很多,为了将我们选中的文件和其他文件区分开来,本发明还为选定的文件分配了一个ID,保证了后续对其进行操作时不会出现错误。相应的,由于文件存储具有便捷性、高效性、且安全可靠等优点,将文件作为本发明所模拟的NV磁盘,可以提高访问和响应的速度。
当然,模拟磁盘设备除了可以为文件还可以为其他设备,本发明在此不做限定。
作为一种优选的实施例,预先选取一块模拟磁盘设备作为模拟的NV磁盘之后,将物理TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库之前,该方法还包括:
在Qemu的BlockBackend机制中添加互斥锁机制,以便TCM逻辑功能库实现并发读写NV磁盘的操作。
具体的,Qemu运行时会创建一个BlockBackend结构体blk来指向该NV磁盘,后续通过blk即可在Qemu中操作该NV磁盘。但是blk对该NV磁盘的读写操作并不支持并发操作,因此要基于blk的读写功能,添加互斥锁机制,实现TCM逻辑功能库并发读写NV磁盘的操作,进一步保证了虚拟机中的应用程序可以与使用物理TCM芯片一样无差别的使用和物理TCM芯片相关的逻辑功能。
具体的,首先通过qemu_mutex_init函数(该函数为Qemu中的具体实现)初始化NV磁盘读写互斥锁,每个对该NV磁盘的读写操作首先要获取虚拟NV读写互斥锁,操作完成后释放该互斥锁。
作为一种优选的实施例,将物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库之后,在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间之前,该方法还包括:
创建一个TCM后端对象;
则通过虚拟内存空间的访问接口将TCM功能指令发送给TCM逻辑功能库的过程具体为:
通过虚拟内存空间的访问接口将TCM功能指令发送给TCM后端对象,然后TCM后端对象调用TCM逻辑功能库;
则TCM逻辑功能库实现读写NV磁盘的操作的过程具体为:
TCM逻辑功能库通过TCM后端对象实现读写NV磁盘的操作。
具体的,从软件的角度分析,虚拟内存空间的访问接口直接使用TCM逻辑功能库,耦合性较强,同时为屏蔽NV磁盘的差异性,TCM逻辑功能库也不建议直接操作该NV磁盘,基于此本发明还构建了一个TCM后端对象,参照图2所示,由该TCM后端对象完成对TCM逻辑功能库的调用,同时当NV磁盘中的数据发生变化时,也由该TCM后端对象完成读写NV磁盘的操作,从而减小TCM逻辑功能库、NV磁盘以及虚拟内存空间之间的耦合性。
请参照图3,图3为本发明所提供的一种模拟物理TCM芯片系统的结构示意图,应用于Qemu构建的虚拟环境,包括:
选取模块1,用于预先选取一块模拟磁盘设备作为模拟的NV磁盘;
封装模块2,用于将物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库3,其中,TCM逻辑功能库3用于实现读写NV磁盘的操作;
虚拟映射模块4,用于在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间,并通过虚拟内存空间的访问接口将TCM功能指令发送给TCM逻辑功能库3;
则TCM逻辑功能库3还用于解析并执行TCM功能指令,并将执行结果返回给虚拟机。
作为一种优选的实施例,模拟磁盘设备为Qemu中的drive参数所指定的文件。
作为一种优选的实施例,该系统还包括:
添加模块,用于在Qemu的BlockBackend机制中添加互斥锁机制,以便TCM逻辑功能库3实现并发读写NV磁盘的操作。
作为一种优选的实施例,该系统还包括:
创建模块,用于创建一个TCM后端对象;
则虚拟映射模块4具体用于:
通过虚拟内存空间的访问接口将TCM功能指令发送给TCM后端对象,然后TCM后端对象调用TCM逻辑功能库3;
则TCM逻辑功能库3具体用于:
通过TCM后端对象实现读写NV磁盘的操作。
本发明还提供了一种模拟物理TCM芯片的装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述任意一项模拟物理TCM芯片方法的步骤。
本发明还提供了一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意一项模拟物理TCM芯片方法的步骤。
对于本发明所提供的一种模拟物理TCM芯片的系统、装置及可读存储介质的介绍请参照上述实施例,本发明在此不做限定。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种模拟物理TCM芯片的方法,应用于Qemu构建的虚拟环境,其特征在于,包括:
预先选取一块模拟磁盘设备作为模拟的NV磁盘;
将所述物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库,其中,所述TCM逻辑功能库实现读写所述NV磁盘的操作;
在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间,并通过所述虚拟内存空间的访问接口将所述TCM功能指令发送给所述TCM逻辑功能库;
所述TCM逻辑功能库解析并执行所述TCM功能指令,并将执行结果返回给所述虚拟机;
所述将所述物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库之后,在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间之前,该方法还包括:
创建一个TCM后端对象;
则通过所述虚拟内存空间的访问接口将所述TCM功能指令发送给所述TCM逻辑功能库的过程具体为:
通过所述虚拟内存空间的访问接口将所述TCM功能指令发送给所述TCM后端对象,然后所述TCM后端对象调用所述TCM逻辑功能库;
则所述TCM逻辑功能库实现读写所述NV磁盘的操作的过程具体为:
所述TCM逻辑功能库通过所述TCM后端对象实现读写所述NV磁盘的操作;
所述预先选取一块模拟磁盘设备作为模拟的NV磁盘之后,将物理TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库之前,该方法还包括:
在所述Qemu的BlockBackend机制中添加互斥锁机制,以便所述TCM逻辑功能库实现并发读写所述NV磁盘的操作。
2.根据权利要求1所述的方法,其特征在于,所述模拟磁盘设备为Qemu中的drive参数所指定的文件。
3.一种模拟物理TCM芯片的系统,应用于Qemu构建的虚拟环境,其特征在于,包括:
选取模块,用于预先选取一块模拟磁盘设备作为模拟的NV磁盘;
封装模块,用于将所述物理可信计算平台TCM芯片的所有TCM功能指令进行封装得到TCM逻辑功能库,其中,所述TCM逻辑功能库用于实现读写所述NV磁盘的操作;
虚拟映射模块,用于在Qemu的内存中划分出用于接收虚拟机发送的TCM功能指令的虚拟内存空间,并通过所述虚拟内存空间的访问接口将所述TCM功能指令发送给所述TCM逻辑功能库;
则所述TCM逻辑功能库还用于解析并执行所述TCM功能指令,并将执行结果返回给所述虚拟机;
该系统还包括:
创建模块,用于创建一个TCM后端对象;
则所述虚拟映射模块具体用于:
通过所述虚拟内存空间的访问接口将所述TCM功能指令发送给所述TCM后端对象,然后所述TCM后端对象调用所述TCM逻辑功能库;
则所述TCM逻辑功能库具体用于:
通过所述TCM后端对象实现读写所述NV磁盘的操作;
添加模块,用于在所述Qemu的BlockBackend机制中添加互斥锁机制,以便所述TCM逻辑功能库实现并发读写所述NV磁盘的操作。
4.根据权利要求3所述的系统,其特征在于,所述模拟磁盘设备为Qemu中的drive参数所指定的文件。
5.一种模拟物理TCM芯片的装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至2任意一项所述模拟物理TCM芯片方法的步骤。
6.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至2任意一项所述模拟物理TCM芯片方法的步骤。
CN201711156805.5A 2017-11-20 2017-11-20 模拟物理tcm芯片的方法、系统、装置及可读存储介质 Active CN107861795B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711156805.5A CN107861795B (zh) 2017-11-20 2017-11-20 模拟物理tcm芯片的方法、系统、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711156805.5A CN107861795B (zh) 2017-11-20 2017-11-20 模拟物理tcm芯片的方法、系统、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN107861795A CN107861795A (zh) 2018-03-30
CN107861795B true CN107861795B (zh) 2022-04-26

Family

ID=61703149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711156805.5A Active CN107861795B (zh) 2017-11-20 2017-11-20 模拟物理tcm芯片的方法、系统、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN107861795B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101319B (zh) * 2018-08-09 2021-07-27 郑州云海信息技术有限公司 一种在qemu上实现tpcm全虚拟化的平台的工作方法
CN113987599B (zh) * 2021-12-28 2022-03-22 苏州浪潮智能科技有限公司 一种固件可信根的实现方法、装置、设备和可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488174A (zh) * 2009-01-15 2009-07-22 北京交通大学 动态透明的虚拟可信平台模块的实现方法
CN102110197A (zh) * 2009-12-25 2011-06-29 中国科学院计算技术研究所 多核处理器的计算环境中实现tmp的方法及其系统
CN102214277A (zh) * 2010-04-01 2011-10-12 中国科学院计算技术研究所 创建多核处理器虚拟机系统可信环境的方法及装置
US9489512B2 (en) * 2011-07-29 2016-11-08 Microsoft Technology Licensing, Llc Trustzone-based integrity measurements and verification using a software-based trusted platform module

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488174A (zh) * 2009-01-15 2009-07-22 北京交通大学 动态透明的虚拟可信平台模块的实现方法
CN102110197A (zh) * 2009-12-25 2011-06-29 中国科学院计算技术研究所 多核处理器的计算环境中实现tmp的方法及其系统
CN102214277A (zh) * 2010-04-01 2011-10-12 中国科学院计算技术研究所 创建多核处理器虚拟机系统可信环境的方法及装置
US9489512B2 (en) * 2011-07-29 2016-11-08 Microsoft Technology Licensing, Llc Trustzone-based integrity measurements and verification using a software-based trusted platform module

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
可信密码模块(TCM)芯片的虚拟化设计;李健航等;《实践探究》;20100131;第60-65页 *

Also Published As

Publication number Publication date
CN107861795A (zh) 2018-03-30

Similar Documents

Publication Publication Date Title
US11126448B1 (en) Systems and methods for using dynamic templates to create application containers
US10402178B2 (en) Cross platform content management and distribution system
US8181176B2 (en) Uniform storage device access using partial virtual machine executing within a secure enclave session
US9063766B2 (en) System and method of manipulating virtual machine recordings for high-level execution and replay
US7669020B1 (en) Host-based backup for virtual machines
US20130326172A1 (en) Protection of data from virtual machine clones via paravirtualization
US9792075B1 (en) Systems and methods for synthesizing virtual hard drives
US10521259B2 (en) Device and method for monitoring resources in full virtualization system
US9952887B2 (en) Device simulation in a secure mode supported by hardware architectures
CN109101319B (zh) 一种在qemu上实现tpcm全虚拟化的平台的工作方法
JP7012074B2 (ja) 仮想ディスクの拡張方法及び機器
CN106293781A (zh) 在线升级机器虚拟器的方法与设备
CN110516447A (zh) 一种识别终端模拟器的方法与设备
US10268595B1 (en) Emulating page modification logging for a nested hypervisor
CN107861795B (zh) 模拟物理tcm芯片的方法、系统、装置及可读存储介质
US10467078B2 (en) Crash dump extraction of guest failure
CN110597597B (zh) 硬件的虚拟化方法、系统、装置及存储介质
US20180060111A1 (en) Method and Apparatus for Online Upgrade of Kernel-Based Virtual Machine Module
CN113868174B (zh) 验证平台搭建方法、装置及存储介质
CN116540929A (zh) 磁盘阵列的虚拟化读取方法、装置、电子设备及存储介质
US20150347198A1 (en) Web browser for spoofing supported features
US20120216189A1 (en) Methods, Devices and Computer Program Products for Emulating a Physical Hard Drive as Multiple Virtual Hard Drives
Chen et al. Full system emulation of embedded heterogeneous multicores based on qemu
Nikolos et al. Deverlay: Container Snapshots For Virtual Machines
US10740207B2 (en) Capturing and comparing database performances across platforms

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