CN114625484B - 虚拟化实现方法、装置、电子设备、介质及arm平台 - Google Patents

虚拟化实现方法、装置、电子设备、介质及arm平台 Download PDF

Info

Publication number
CN114625484B
CN114625484B CN202210334870.7A CN202210334870A CN114625484B CN 114625484 B CN114625484 B CN 114625484B CN 202210334870 A CN202210334870 A CN 202210334870A CN 114625484 B CN114625484 B CN 114625484B
Authority
CN
China
Prior art keywords
virtual machine
execution environment
vftpm
trusted execution
target
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
CN202210334870.7A
Other languages
English (en)
Other versions
CN114625484A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210334870.7A priority Critical patent/CN114625484B/zh
Publication of CN114625484A publication Critical patent/CN114625484A/zh
Priority to PCT/CN2022/123583 priority patent/WO2023184920A1/zh
Application granted granted Critical
Publication of CN114625484B publication Critical patent/CN114625484B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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/45575Starting, stopping, suspending or resuming 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
    • 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/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种虚拟化实现方法、装置、电子设备、可读存储介质及ARM平台,应用于计算机技术领域。方法包括:预先基于虚拟化类型,初始化运行着配置vfTPM功能的虚拟机的ARM平台。当接收到虚拟机的vfTPM请求,封装包括虚拟机的真实物理地址和标识信息的指令。切换运行状态至可信执行环境,可信执行环境根据标识信息,调用相应虚拟机可信执行环境上下文处理该vfTPM请求,并反馈存储处理结果的地址及虚拟机标识信息,并切换当前运行状态至富执行环境。在富执行环境,解析得到存储地址和标识信息,按照标识信息,将转换后的存储地址发送至对应虚拟机,从而在ARM平台上实现了基于固件的可信平台虚拟化。

Description

虚拟化实现方法、装置、电子设备、介质及ARM平台
技术领域
本申请涉及计算机技术领域,特别是涉及一种虚拟化实现方法、装置、电子设备、可读存储介质及ARM平台。
背景技术
随着ARM(Advanced RISC(Reduced Instruction Set Computer,精简指令集计算机)Machines,RISC微处理器)技术与云计算的发展,ARM计算机在移动设备、桌面、服务器等领域得到了飞速的发展,基于ARM的虚拟化技术也在云计算领域迅猛发展。在ARM虚拟化技术得到快速发展的同时,ARM相关的技术安全可信问题亟需解决,为此ARM公司从ARMv8开始,通过TrustZone(信任区)可信技术将ARM执行环境划分为SW(Secure World,安全世界)和NW(Normal World,正常世界)。其中正常世界的执行环境又被称为REE(Rich ExecutionEnvironment,富执行环境),安全世界的执行环境又被称为TEE(Trusted executionenvironment,可信执行环境),REE中运行的程序一般为BIOS(Basic Input OutputSystem,基本输入输出***)/UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)***固件和正常的操作***如Linux、Windows。TEE侧有专门的操作***一般称为TEEOS(Trusted execution environment operating system,可信操作***)。对于TEEOS,各个厂商有不同的实现方式,一般都遵循GP标准(Global Platform,全球平台标准),例如TEEOS依据GP标准的一种开源的实现方式称为OPTEE(Open-source PortableTrusted execution environment)。GP标准对TEE的框架和安全需求做出了明确的规定,并分别对REE侧提供的接口函数,数据类型和数据结构,对TEE侧提供给开发者使用的接口函数、数据类型、数据结构进行了明确的规定和定义。
TPM(Trusted Platform Module,可信平台模块)为符合TPM标准,可有效保护计算机,防止非法访问的安全物理芯片,该芯片具有独有的计算资源和存储资源,从而可起到物理空间隔离、防止非法入侵及篡改的作用。fTPM(firmware Trusted Platform Module,基于固件的可信平台模块)依托ARM的TrustZone技术,在TrustZone中实现TPM的计算和存储资源,从而也实现了物理隔离的功能。ARMv8将CPU(central processing unit,中央处理器)异常中断分为4层,如图1所示,EL0层为应用层,EL1层为***层,EL2为虚拟化层,EL3为固件层。相关技术中,fTPM为运行在TEEOS中的一个TA(Trust Application,可信应用)中,图1左边为REE侧,右边为TEE侧。REE侧APP(Application,应用程序)是Rich OS中运行的软件应用,Rich OS可以是Windows、Unix、Linux等操作***。RPMB(Replay Protected MemoryBlock,重放保护内存块)是一种EMMC(Embedded Multi Media Card,嵌入式多媒体控制器)提供的一个具有安全特性的分区。Rich OS FS(file system,文件***)为rich OS提供的文件***。TEE侧的TA是Trust Application,其运行在TEEOS之上,符合GP标准;TEE侧的TEEOS是符合GP规范的操作***,可以是厂商提供的OS或OPTEEOS;fTPM的实现方式是在TEEOS中实现一个fTPM TA(fTPM Trust Application),用于实现TPM的计算功能,在RichOS中使用RPMB或rich OS FS文件***作为fTPM的可信存储,使用TEE的安全存储功能,以共享内存的读写方式,将TPM的持久化数据存储在这个安全加密的RPMB或Rich OS FS中。
TEE与REE进行交互必须通过EL3层的firmware(固件)/Secure Monitor(安全监控器)的SMC(System Management Controller,***管理控制器)指令,对控制NS(安全读写)标识位进行等于0或等于1处理后,ARM CPU才能进入REE环境或TEE环境,整个过程中运行环境的切换和数据的传输都是由firmware/Secure Monitor进行处理的。REE侧的El2层的Hypervisor(虚拟机监视器)层为虚拟化层,其用于将虚拟机的IPA(Internet ProtocolAddress,互联网协议地址,是指虚拟机的虚拟机物理地址)转换成PA(Physical Address,真实物理地址),在fTPM的现有实现过程中,并没有使用Hypervisor层,所以整个fTPM的实现方式上并没有实现虚拟化,fTPM自然就不可为ARM物理主机上运行的虚拟机提供TPM服务。也就是说,相关技术中的fTPM的实现方式只能在ARM物理主机上实现,不能供ARM主机上的虚拟机使用。
鉴于此,如何在ARM平台上实现基于固件的可信平台虚拟化,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种虚拟化实现方法、装置、电子设备、可读存储介质及ARM平台,在ARM平台上实现了基于固件的可信平台虚拟化。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种虚拟化实现方法,包括:
预先基于虚拟化类型,对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理;
当接收到所述目标虚拟机的目标vfTPM请求,将携带由所述目标虚拟机的虚拟物理地址所转换的真实物理地址、和所述目标虚拟机的标识信息的指令进行封装,并切换当前运行状态至可信执行环境;
在所述可信执行环境中,根据所述标识信息,调用相应的目标虚拟机可信执行环境上下文对所述目标vfTPM请求进行处理,并发送携带处理结果的存储地址及所述标识信息的结果反馈指令;
对所述结果反馈指令进行封装,并切换当前运行状态至富执行环境;在所述富执行环境,通过解析所述结果反馈指令得到所述存储地址和所述标识信息,按照所述标识信息,将转换后的所述存储地址发送至所述目标虚拟机。
可选的,所述调用相应的目标虚拟机可信执行环境上下文对所述目标vfTPM请求进行处理之后,还包括:
将所述处理结果存储至共享内存中。
可选的,所述基于虚拟化类型,对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理,包括:
ARM平台上电,并加载所述ARM平台的目标固件和可信执行环境操作***;
当所述可信执行环境操作***启动,为所述可信执行环境操作***配置内存并进行内存初始化处理;
基于所述目标虚拟机所属的虚拟化类型,对富执行环境进行初始化处理。
可选的,所述为所述可信执行环境操作***配置内存并进行内存初始化处理,包括:
将所述可信执行环境操作***的内存划分为运行内存和虚拟请求执行内存;所述运行内存用于处理底层请求,所述虚拟请求执行内存用于处理虚拟机的vfTPM请求;
在闪存芯片中,为所述可信执行环境操作***配置用于实现vfTPM功能的专有内存;
加载存储驱动器至所述可信执行环境操作***中,利用所述存储驱动器对所述专有内存进行初始化处理,并对所述专有内存进行分区处理。
可选的,所述基于所述目标虚拟机所属的虚拟化类型,对富执行环境进行初始化处理,包括:
若所述目标虚拟机采用QEMU KVM虚拟化技术,则完成对富执行环境操作***的加载。
可选的,所述基于所述目标虚拟机所属的虚拟化类型,对富执行环境进行初始化处理,包括:
若所述目标虚拟机采用Xen虚拟化技术,则在启动BIOS的同时启动Xen虚拟化的镜像文件;
在启动过程中,将虚拟机监视器作为具有预设标识的虚拟机,为所述虚拟机监视器分配对应的虚拟机可信执行环境实例及虚拟机可信执行环境上下文;
通过所述虚拟机可信执行环境实例加载vfTPM可信应用;在所述vfTPM可信应用的加载过程中,利用所述存储驱动器对所述专有内存进行读写,并在所述专有内存中为所述Xen虚拟机监视器分配专属存储区域;
将所述虚拟机监视器的vfTPM请求的处理结果返回至所述虚拟机监视器,启动所述虚拟机监视器。
可选的,所述当接收到所述目标虚拟机的vfTPM请求之前,还包括:
所述富执行环境下发虚拟机创建指令,并为配置有vfTPM功能的所述目标虚拟机分配相应的标识信息;
将所述标识信息和所述虚拟机创建指令进行封装,并切换当前运行状态至所述可信执行环境;
在所述可信执行环境,所述可信执行环境操作***基于所述虚拟机创建指令,为所述目标虚拟机分配所述目标虚拟机可信执行环境上下文、目标虚拟机可信执行环境实例和内存空间;通过所述目标虚拟机可信执行环境实例加载vfTPM可信应用,启动TPM,并初始化所述内存空间和所述目标虚拟机的vfTPM;
将所述目标虚拟机的vfTPM的初始化结果和所述标识信息进行封装,并切换当前运行状态至所述富执行环境,以基于所述初始化结果,在所述富执行环境完成所述目标虚拟机的创建操作。
可选的,所述初始化所述内存空间,包括:
若所述目标虚拟机在闪存芯片中有相应的目标存储空间,则将所述目标存储空间分配给所述目标虚拟机的vfTPM功能;
若所述目标虚拟机在闪存芯片中有相应的存储分区,则当所述闪存芯片的剩余存储空间大于预设空间阈值,通过存储驱动器为所述目标虚拟机的vfTPM功能分配目标存储空间;
将所述目标存储空间与所述标识信息进行绑定;
其中,所述目标存储空间作为所述目标虚拟机的vfTPM的NVRAM;且所述目标存储空间的读写功能由所述目标虚拟机在所述可信执行环境中执行。
可选的,所述对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理之后,还包括:
当接收到虚拟机销毁指令,在所述富执行环境中,通过解析所述虚拟机销毁指令,得到获取待销毁虚拟机的销毁标识;
将参数化处理的所述虚拟机销毁指令以及所述销毁标识进行封装,并切换当前运行状态为所述可信执行环境;
在所述可信执行环境中,所述可信执行环境操作***基于所述销毁标识,将所述虚拟机销毁指令发送至所述待销毁虚拟机对应的销毁虚拟机可信执行环境实例;所述销毁虚拟机可信执行环境实例删除销毁虚拟机可信执行环境上下文,并删除所述待销毁虚拟机对应在闪存芯片的存储分区;反馈携带所述销毁标识的虚拟机销毁完成指令;
将参数化处理的所述虚拟机销毁完成指令以及所述销毁标识进行封装,并切换当前运行状态为所述富执行环境;
在所述富执行环境中,根据所述虚拟机销毁完成指令和所述销毁标识,删除所述待销毁虚拟机。
可选的,所述对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理之后,还包括:
当接收到虚拟机关闭指令,在所述富执行环境中,通过解析所述虚拟机关闭指令,得到获取待关闭虚拟机的关闭标识;
将参数化处理的所述虚拟机关闭指令以及所述关闭标识进行封装,并切换当前运行状态为所述可信执行环境;
在所述可信执行环境中,所述可信执行环境操作***基于所述关闭标识,将所述虚拟机关闭指令发送至所述待关闭虚拟机对应的关闭虚拟机可信执行环境实例;所述关闭虚拟机可信执行环境实例删除关闭虚拟机可信执行环境上下文,并更新所述关闭虚拟机在所述可信执行环境中的vfTPM;反馈携带所述关闭标识的虚拟机关闭完成指令;
将参数化处理的所述虚拟机关闭完成指令以及所述关闭标识进行封装,并切换当前运行状态为所述富执行环境;
在所述富执行环境中,根据所述虚拟机关闭完成指令和所述关闭标识,关闭所述待关闭虚拟机。
本发明实施例另一方面提供了一种虚拟化实现装置,包括:
初始化处理模块,用于预先基于虚拟化类型,对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理;
虚拟化请求下发模块,用于当接收到所述目标虚拟机的目标vfTPM请求,将携带由所述目标虚拟机的虚拟物理地址所转换的真实物理地址、和所述目标虚拟机的标识信息的指令进行封装,并切换当前运行状态至可信执行环境;
虚拟化请求处理模块,用于在所述可信执行环境中,根据所述标识信息,调用相应的目标虚拟机可信执行环境上下文对所述目标vfTPM请求进行处理,并发送携带处理结果的存储地址及所述标识信息的结果反馈指令;
处理结果反馈模块,用于对所述结果反馈指令进行封装,并切换当前运行状态至富执行环境;在所述富执行环境,通过解析所述结果反馈指令得到所述存储地址和所述标识信息,按照所述标识信息,将转换后的所述存储地址发送至所述目标虚拟机。
本发明实施例还提供了一种电子设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述虚拟化实现方法的步骤。
本发明实施例还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一项所述虚拟化实现方法的步骤。
本发明实施例最后还提供了一种ARM平台,用于执行计算机程序时实现如上任一项所述虚拟化实现方法的步骤,其包括应用层、***层、虚拟化层和固件层;
所述应用层,包括位于富执行环境中的多个虚拟机应用程序,和位于可信执行环境的可信应用集,所述可信应用集包括用于实现vfTPM功能的可信应用;
所述***层,包括位于所述富执行环境中的宿主机处理模块,和位于所述可信执行环境的可信管理模块;
所述虚拟化层,包括位于所述富执行环境中的虚拟机监视器;
所述固件层,包括固件处理模块,所述固件处理模块用于接收所述宿主机处理模块、所述虚拟机监视器和所述可信管理模块的指令;执行运行状态的切换,并在执行运行状态切换过程中转发接收指令中的虚拟机标识信息。
本申请提供的技术方案的优点在于,对于不同虚拟化技术对ARM平台进行相应的初始化,从而可支持ARM平台的多种虚拟化技术的实现。富执行环境在接收到上层虚拟机下发的vfTPM请求之后,封装虚拟机转换所得的真实物理地址以及该虚拟机的标识,以便在切换至可信执行环境时被处理。状态切换之后,可信执行环境基于该标识调用相匹配的虚拟机上下文处理该请求,并将请求处理结果以及标识再次封装,切换至富执行环境之后,富执行环境将该vfTPM请求处理结果发送至该虚拟机,从而实现了fTPM在ARM平台上对虚拟机的支持,不仅可节约研发成本,还可提高云计算的产品的安全性。
此外,本发明实施例还针对虚拟化实现方法提供了相应的实现装置、电子设备、可读存储介质及ARM平台,进一步使得所述方法更具有实用性,所述装置、电子设备、可读存储介质及ARM平台具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的相关技术中的一个示例性应用场景的框架示意图;
图2为本发明实施例提供的一种虚拟化实现方法的流程示意图;
图3为本发明实施例提供的虚拟化实现装置的一种具体实施方式结构图;
图4为本发明实施例提供的电子设备的一种具体实施方式结构图;
图5为本发明实施例提供的ARM平台的一种具体实施方式结构图;
图6为本发明实施例提供的ARM平台的另一种具体实施方式结构图;
图7为本发明实施例提供的可信管理模块的一种具体实施方式结构图;
图8为本发明实施例提供的ARM平台初始化方法的流程示意图;
图9为本发明实施例提供的虚拟机创建方法的流程示意图;
图10为本发明实施例提供的vfTPM请求及响应流程示意图;
图11为本发明实施例提供的虚拟机销毁关闭流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先请参见图2,图2为本发明实施例提供的一种虚拟化实现方法的流程示意图,本发明实施例应用于ARM平台,基于TrustZone可信技术,ARM执行环境可包括可信执行环境和富执行环境,其可通过SMC指令更改NS位的值切换ARM执行环境处于可信执行环境或处于富执行环境。举例来说,可信执行环境的NS=0,富执行环境的NS=1。虚拟机部署在富执行环境,在TrustZone中实现TPM的计算和存储资源的fTPM运行在可信执行环境中的一个可信应用TA中,可信执行环境包括多个TA,也即可信执行环境包括多个fTPM实例,虚拟机的vfTPM的计算功能和实现依赖fTPM,也即虚拟机的vfTPM请求处理是在可信执行环境中实现的。基于此,虚拟机下发vfTPM请求到收到vfTPM请求处理结果的过程,可包括以下内容:
S201:预先基于虚拟化类型,对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理。
在本步骤中,虚拟化类型是指ARM平台所支持的虚拟化技术,或者是说ARM的虚拟化平台,虚拟化类型包括但并不限制于KVM(Kernel-based Virtual Machine,***虚拟化模块)及Xen。富执行环境下发虚拟机创建指令,富执行环境同时为每个虚拟机分配唯一的标识信息,作为唯一标识该虚拟机的信息。响应该虚拟机创建指令,ARM平台在富执行环境和可信执行环境同时执行创建操作,在富执行环境的应用层创建虚拟机,在可信执行环境创建与富执行环境的虚拟机对应的虚拟机可信执行环境实例及可信执行环境上下文,可信执行环境上下文用于处理对应在富执行环境的虚拟机的vfTPM请求。为了实现了fTPM在ARM平台上对虚拟机的支持,搭载在ARM平台的虚拟机的需要配置vfTPM(Virtual firmwareTrusted Platform Module,虚拟的基于固件的可信平台模块)功能。ARM平台可运行多台虚拟机,各虚拟机可基于不同的虚拟化类型,目标虚拟机为运行于ARM平台的任意一台虚拟机,为了不引起歧义,本实施例将需要进行vfTPM计算的虚拟机也即下发vfTPM请求的虚拟机,称为目标虚拟机。目标虚拟机的数量可为多个,也可为1个,这均不影响本申请的实现。
S202:当接收到目标虚拟机的目标vfTPM请求,将携带由目标虚拟机的虚拟物理地址所转换的真实物理地址、和目标虚拟机的标识信息的指令进行封装,并切换当前运行状态至可信执行环境。
对于完成初始化的ARM平台,运行于ARM平台的任何一台虚拟机均可下发vfTPM请求,以实现虚拟机vfTPM的计算功能。在富执行环境中,虚拟机的操作***发送vfTPM请求,为了不引起歧义,目标虚拟机下发的vfTPM请求,本实施例称为目标vfTPM请求。虚拟机的操作***内核将该vfTPM请求及虚拟机虚拟内存地址VA转换为虚拟机认为的虚拟机物理地址IPA,富执行环境的操作***接收到该vfTPM请求,富执行环境的操作***将虚拟机物理地址IPA转换为真实的物理地址,富执行环境的操作***为***层,实现运行状态切换的功能模块位于固件层,为了将请求命令跨层传输,需要先对请求命令也即包括转换后的真实物理地址与目标虚拟机的标识信息的命令进行参数化处理,也即通过固定函数以参数形式进行跨层传递。将转换后的真实物理地址与目标虚拟机的标识信息发送至固件层之后,固件层对真实物理地址与目标虚拟机的标识信息进行封装,封装完成之后,固件层通过执行SMC指令将当前运行环境切换至可信执行环境。
S203:在可信执行环境中,根据标识信息,调用相应的目标虚拟机可信执行环境上下文对目标vfTPM请求进行处理,并发送携带处理结果的存储地址及标识信息的结果反馈指令。
在上个步骤将当前运行环境切换为可信执行环境之后,可信执行环境获取封装后指令,通过解析该指令得到目标虚拟机的真实物理地址和目标虚拟机的标识信息。根据该标识信息,获取目标虚拟机创建时在可信执行环境中所分配的虚拟机可信执行环境实例及上下文,通过调用虚拟机可信执行环境实例及上下文对目标vfTPM请求进行vfTPM数据计算,得到处理结果,并存储该处理结果。将存储该处理结果的存储地址及目标虚拟机的标识信息作为结果反馈指令,发送至至固件层,固件层在接收到结果反馈指令之后,将对结果反馈指令进行封装,封装完成之后,固件层通过执行SMC指令将当前运行环境切换至富执行环境。为了提高效率,降低资源效率,可信执行环境分配共享内存,可将该处理结果存储至该共享内存中,相应的,结果反馈指令的存储地址即为共享内存地址。
S204:对结果反馈指令进行封装,并切换当前运行状态至富执行环境;在富执行环境,通过解析结果反馈指令得到存储地址和标识信息,按照标识信息,将转换后的存储地址发送至目标虚拟机。
本步骤在切换运行环境至富执行环境之后,富执行环境的操作***获取封装后的结果反馈指令,通过解析结果反馈指令获取存储地址和标识信息,富执行环境的操作***将存储地址转换为虚拟机所认为的物理地址,基于标识信息将该物理地址发送至对应的目标虚拟机,目标虚拟机内核将该物理地址转换为虚拟机内存地址,并将该虚拟机内存地址传输至目标虚拟机的操作***中,目标虚拟机基于该地址读取vfTPM请求的处理结果。
在本发明实施例提供的技术方案中,对于不同虚拟化技术对ARM平台进行相应的初始化,从而可支持ARM平台的多种虚拟化技术的实现。富执行环境在接收到上层虚拟机下发的vfTPM请求之后,封装虚拟机转换所得的真实物理地址以及该虚拟机的标识,以便在切换至可信执行环境时被处理。状态切换之后,可信执行环境基于该标识调用相匹配的虚拟机上下文处理该请求,并将请求处理结果以及标识再次封装,切换至富执行环境之后,富执行环境将该vfTPM请求处理结果发送至该虚拟机,从而实现了fTPM在ARM平台上对虚拟机的支持,不仅可节约研发成本,还可提高云计算的产品的安全性。
需要说明的是,本申请中各步骤间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图2只是一种示意方式,并不代表只能是这样的执行顺序。
上述实施例对ARM平台的初始化流程并不做任何限定,本实施例还给出ARM平台的初始化的一种可选的实施方式,可包括下述内容:
ARM平台上电,并加载ARM平台的目标固件和可信执行环境操作***。当可信执行环境操作***启动,为可信执行环境操作***配置内存并进行内存初始化处理;基于目标虚拟机所属的虚拟化类型,对富执行环境进行初始化处理。
其中,平台上电过程与ARM芯片及其固件有关,可基于现有流程进行平台上电。目标固件是指需要在ARM平台初始化过程中启动的固件,如开启TrustZone功能,加载Firmware/Secure Monitor固件管理模块。
现有技术通常将fTPM的持久化存储存放在REE侧,这会增加安全风险,为了进一步提高安全性能,本申请可将fTPM的存储保存在特殊的flash闪存上,使其只能在TEE中进行读取。相应的,对于可信执行环境操作***配置内存并进行内存初始化处理的过程可包括:
将可信执行环境操作***的内存划分为运行内存和虚拟请求执行内存;在闪存芯片中,为可信执行环境操作***配置用于实现vfTPM功能的专有内存;加载存储驱动器至可信执行环境操作***中,利用存储驱动器对专有内存进行初始化处理,并对专有内存进行分区处理。
在本实施例,运行内存用于处理底层请求,运行内存负责处理底层的实现,如SMC指令处理,内存管理类,线程管理等。虚拟请求执行内存用于处理虚拟机的vfTPM请求,也即负责具体请求的处理、加载TA、执行TA等功能。专有内存是用于存储vfTPM的数据,如果专有内存足够大,每个虚拟机具有相应的分区存储自己的vfTPM数据,可预先为每个虚拟机在专有内存中分配一块存储区间,也即对专有内存进行分区处理。
对于不同的虚拟化类型,富执行环境的初始化处理流程不同,举例来说,对于Xen,虚拟机监视器可作为一个虚拟机来使用,所以在初始化过程中需要将虚拟机监视器作为一个虚拟机进行相应的初始化处理。本实施例分别针对KVM和Xen,提供了相应的富执行环境的初始化流程,可包括下述内容:
若目标虚拟机采用QEMU KVM虚拟化技术,则完成对富执行环境操作***的加载。
若目标虚拟机采用Xen虚拟化技术,则在启动BIOS的同时启动Xen虚拟化的镜像文件;在启动过程中,将虚拟机监视器作为具有预设标识的虚拟机,为虚拟机监视器分配对应的虚拟机可信执行环境实例及虚拟机可信执行环境上下文;通过虚拟机可信执行环境实例加载vfTPM可信应用;在vfTPM可信应用的加载过程中,利用存储驱动器对专有内存进行读写,并在专有内存中为Xen虚拟机监视器分配专属存储区域;将虚拟机监视器的vfTPM请求的处理结果返回至虚拟机监视器,启动虚拟机监视器。
不可避免的,ARM平台需要创建虚拟机,上述实施例并未对虚拟机的创建进行限定,本申请还提供了虚拟机的一种可选的创建方式,可包括下述内容:
富执行环境下发虚拟机创建指令,并为配置有vfTPM功能的目标虚拟机分配相应的标识信息;
将标识信息和虚拟机创建指令进行封装,并切换当前运行状态至可信执行环境;
在可信执行环境,可信执行环境操作***基于虚拟机创建指令,为目标虚拟机分配目标虚拟机可信执行环境上下文、目标虚拟机可信执行环境实例和内存空间;通过目标虚拟机可信执行环境实例加载vfTPM可信应用,启动TPM,并初始化内存空间和目标虚拟机的vfTPM;
将目标虚拟机的vfTPM的初始化结果和标识信息进行封装,并切换当前运行状态至富执行环境,以基于初始化结果,在富执行环境完成目标虚拟机的创建操作。
进一步的,为了提高安全性能,针对现有技术将fTPM的持久化存储存放在REE侧所存在的安全风险,本申请可将fTPM的存储保存在特殊的flash闪存上,使其只能在TEE中进行读取。相应的,在虚拟机创建过程中的初始化内存空间的实现过程可包括:
若目标虚拟机在闪存芯片中有相应的目标存储空间,则将目标存储空间分配给目标虚拟机的vfTPM功能;若目标虚拟机在闪存芯片中有相应的存储分区,则当闪存芯片的剩余存储空间大于预设空间阈值,通过存储驱动器为目标虚拟机的vfTPM功能分配目标存储空间;将目标存储空间与标识信息进行绑定。
其中,目标存储空间作为目标虚拟机的vfTPM的NVRAM;且目标存储空间的读写功能由目标虚拟机在可信执行环境中执行。预设空间阈值可根据实际应用场景进行灵活选择,本申请对此不做任何限定。通过在flash闪存芯片上进行分区,为每个虚拟机的vfTPM提供一个分区,用于进行NVRAM存储。作为TEEOS上的flash驱动程序,对flash的读写设置权限,只有在TEE侧才可操作,并且只有虚拟机才可操作对应虚拟机标识对应的flash分区即目标存储空间,有效提升整体安全性能。
实际应用场景中,虚拟机创建之后,并不是一直处于运行状态中,会根据实际需求将虚拟机设置为运行状态或者销毁已创建的虚拟机,为了提高实用性,提升用户使用体验,基于上述实施例,本申请还提供了虚拟机销毁实现方式,可包括下述内容:
当接收到虚拟机销毁指令,在富执行环境中,通过解析虚拟机销毁指令,得到获取待销毁虚拟机的销毁标识;
将参数化处理的虚拟机销毁指令以及销毁标识进行封装,并切换当前运行状态为可信执行环境;
在可信执行环境中,可信执行环境操作***基于销毁标识,将虚拟机销毁指令发送至待销毁虚拟机对应的销毁虚拟机可信执行环境实例;销毁虚拟机可信执行环境实例删除销毁虚拟机可信执行环境上下文,并删除待销毁虚拟机对应在闪存芯片的存储分区;反馈携带销毁标识的虚拟机销毁完成指令;
将参数化处理的虚拟机销毁完成指令以及销毁标识进行封装,并切换当前运行状态为富执行环境;
在富执行环境中,根据虚拟机销毁完成指令和销毁标识,删除待销毁虚拟机。
在本实施例中,为了不引起歧义,将需要进行销毁的虚拟机称为待销毁虚拟机,将待销毁虚拟机的标识信息称为销毁标识。待销毁虚拟机对应在可信执行环境中的虚拟机实例及上下文称为销毁虚拟机可信执行环境实例,销毁虚拟机可信执行环境上下文。
实际应用场景中,虚拟机创建之后,并不是一直处于运行状态中,会根据实际需求将虚拟机设置为运行状态或者是处于关闭状态,为了提高实用性,提升用户使用体验,基于上述实施例,本申请还提供了虚拟机关闭的实现方式,可包括下述内容:
当接收到虚拟机关闭指令,在富执行环境中,通过解析虚拟机关闭指令,得到获取待关闭虚拟机的关闭标识;
将参数化处理的虚拟机关闭指令以及关闭标识进行封装,并切换当前运行状态为可信执行环境;
在可信执行环境中,可信执行环境操作***基于关闭标识,将虚拟机关闭指令发送至待关闭虚拟机对应的关闭虚拟机可信执行环境实例;关闭虚拟机可信执行环境实例删除关闭虚拟机可信执行环境上下文,并更新关闭虚拟机在可信执行环境中的vfTPM;反馈携带关闭标识的虚拟机关闭完成指令;
将参数化处理的虚拟机关闭完成指令以及关闭标识进行封装,并切换当前运行状态为富执行环境;
在富执行环境中,根据虚拟机关闭完成指令和关闭标识,关闭待关闭虚拟机。
在本实施例中,为了不引起歧义,将需要进行关闭的虚拟机称为待关闭虚拟机,将待关闭虚拟机的标识信息称为关闭标识。待关闭虚拟机对应在可信执行环境中的虚拟机实例及上下文称为关闭虚拟机可信执行环境实例,关闭虚拟机可信执行环境上下文。
本发明实施例还针对虚拟化实现方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的虚拟化实现装置进行介绍,下文描述的虚拟化实现装置与上文描述的虚拟化实现方法可相互对应参照。
基于功能模块的角度,参见图3,图3为本发明实施例提供的虚拟化实现装置在一种具体实施方式下的结构图,该装置可包括:
初始化处理模块301,用于预先基于虚拟化类型,对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理;
虚拟化请求下发模块302,用于当接收到目标虚拟机的目标vfTPM请求,将携带由目标虚拟机的虚拟物理地址所转换的真实物理地址、和目标虚拟机的标识信息的指令进行封装,并切换当前运行状态至可信执行环境;
虚拟化请求处理模块303,用于在可信执行环境中,根据标识信息,调用相应的目标虚拟机可信执行环境上下文对目标vfTPM请求进行处理,并发送携带处理结果的存储地址及标识信息的结果反馈指令;
处理结果反馈模块304,用于对结果反馈指令进行封装,并切换当前运行状态至富执行环境;在富执行环境,通过解析结果反馈指令得到存储地址和标识信息,按照标识信息,将转换后的存储地址发送至目标虚拟机。
可选的,在本实施例的一些实施方式中,上述装置还可以包括存储模块,用于将处理结果存储至共享内存中。
可选的,在本实施例的另一些实施方式中,上述初始化处理模块301还可包括:ARM平台上电,并加载ARM平台的目标固件和可信执行环境操作***;当可信执行环境操作***启动,为可信执行环境操作***配置内存并进行内存初始化处理;基于目标虚拟机所属的虚拟化类型,对富执行环境进行初始化处理。
作为上述实施例的一种可选的实施方式,上述初始化处理模块301还可用于:将可信执行环境操作***的内存划分为运行内存和虚拟请求执行内存;运行内存用于处理底层请求,虚拟请求执行内存用于处理虚拟机的vfTPM请求;在闪存芯片中,为可信执行环境操作***配置用于实现vfTPM功能的专有内存;加载存储驱动器至可信执行环境操作***中,利用存储驱动器对专有内存进行初始化处理,并对专有内存进行分区处理。
作为上述实施例的另一种可选的实施方式,上述初始化处理模块301还可进一步用于:若目标虚拟机采用QEMU KVM虚拟化技术,则完成对富执行环境操作***的加载。
作为上述实施例的再一种可选的实施方式,上述初始化处理模块301还可进一步用于:若目标虚拟机采用Xen虚拟化技术,则在启动BIOS的同时启动Xen虚拟化的镜像文件;在启动过程中,将虚拟机监视器作为具有预设标识的虚拟机,为虚拟机监视器分配对应的虚拟机可信执行环境实例及虚拟机可信执行环境上下文;通过虚拟机可信执行环境实例加载vfTPM可信应用;在vfTPM可信应用的加载过程中,利用存储驱动器对专有内存进行读写,并在专有内存中为Xen虚拟机监视器分配专属存储区域;将虚拟机监视器的vfTPM请求的处理结果返回至虚拟机监视器,启动虚拟机监视器。
可选的,在本实施例的其他一些实施方式中,上述装置例如还可以包括虚拟机创建模块,用于富执行环境下发虚拟机创建指令,并为配置有vfTPM功能的目标虚拟机分配相应的标识信息;将标识信息和虚拟机创建指令进行封装,并切换当前运行状态至可信执行环境;在可信执行环境,可信执行环境操作***基于虚拟机创建指令,为目标虚拟机分配目标虚拟机可信执行环境上下文、目标虚拟机可信执行环境实例和内存空间;通过目标虚拟机可信执行环境实例加载vfTPM可信应用,启动TPM,并初始化内存空间和目标虚拟机的vfTPM;将目标虚拟机的vfTPM的初始化结果和标识信息进行封装,并切换当前运行状态至富执行环境,以基于初始化结果,在富执行环境完成目标虚拟机的创建操作。
作为上述实施例的一种可选的实施方式,上述虚拟机创建模块还可用于:若目标虚拟机在闪存芯片中有相应的目标存储空间,则将目标存储空间分配给目标虚拟机的vfTPM功能;若目标虚拟机在闪存芯片中有相应的存储分区,则当闪存芯片的剩余存储空间大于预设空间阈值,通过存储驱动器为目标虚拟机的vfTPM功能分配目标存储空间;将目标存储空间与标识信息进行绑定;其中,目标存储空间作为目标虚拟机的vfTPM的NVRAM;且目标存储空间的读写功能由目标虚拟机在可信执行环境中执行。
可选的,在本实施例的其他一些实施方式中,上述装置例如还可以包括虚拟机销毁模块,用于当接收到虚拟机销毁指令,在富执行环境中,通过解析虚拟机销毁指令,得到获取待销毁虚拟机的销毁标识;将参数化处理的虚拟机销毁指令以及销毁标识进行封装,并切换当前运行状态为可信执行环境;在可信执行环境中,可信执行环境操作***基于销毁标识,将虚拟机销毁指令发送至待销毁虚拟机对应的销毁虚拟机可信执行环境实例;销毁虚拟机可信执行环境实例删除销毁虚拟机可信执行环境上下文,并删除待销毁虚拟机对应在闪存芯片的存储分区;反馈携带销毁标识的虚拟机销毁完成指令;将参数化处理的虚拟机销毁完成指令以及销毁标识进行封装,并切换当前运行状态为富执行环境;在富执行环境中,根据虚拟机销毁完成指令和销毁标识,删除待销毁虚拟机。
可选的,在本实施例的其他一些实施方式中,上述装置例如还可以包括虚拟机关闭模块,用于当接收到虚拟机关闭指令,在富执行环境中,通过解析虚拟机关闭指令,得到获取待关闭虚拟机的关闭标识;将参数化处理的虚拟机关闭指令以及关闭标识进行封装,并切换当前运行状态为可信执行环境;在可信执行环境中,可信执行环境操作***基于关闭标识,将虚拟机关闭指令发送至待关闭虚拟机对应的关闭虚拟机可信执行环境实例;关闭虚拟机可信执行环境实例删除关闭虚拟机可信执行环境上下文,并更新关闭虚拟机在可信执行环境中的vfTPM;反馈携带关闭标识的虚拟机关闭完成指令;将参数化处理的虚拟机关闭完成指令以及关闭标识进行封装,并切换当前运行状态为富执行环境;在富执行环境中,根据虚拟机关闭完成指令和关闭标识,关闭待关闭虚拟机。
本发明实施例虚拟化实现装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例可实现ARM平台的虚拟机的TPM功能。
上文中提到的虚拟化实现装置是从功能模块的角度描述,进一步的,本申请还提供一种电子设备,是从硬件角度描述。图4为本申请实施例提供的电子设备在一种实施方式下的结构示意图。如图4所示,该电子设备包括存储器40,用于存储计算机程序;处理器41,用于执行计算机程序时实现如上述任一实施例提到的虚拟化实现方法的步骤。
其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核心处理器,处理器41还可为控制器、微控制器、微处理器或其他数据处理芯片等。处理器41可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable GateArray,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器41可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器41还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器40还可包括高速随机存取存储器以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。存储器40在一些实施例中可以是电子设备的内部存储单元,例如服务器的硬盘。存储器40在另一些实施例中也可以是电子设备的外部存储设备,例如服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器40还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器40不仅可以用于存储安装于电子设备的应用软件及各类数据,例如:执行vfTPM计算处理方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。本实施例中,存储器40至少用于存储以下计算机程序401,其中,该计算机程序被处理器41加载并执行之后,能够实现前述任一实施例公开的虚拟化实现方法的相关步骤。另外,存储器40所存储的资源还可以包括操作***402和数据403等,存储方式可以是短暂存储或者永久存储。其中,操作***402可以包括Windows、Unix、Linux等。数据403可以包括但不限于虚拟化实现结果对应的数据等。
在一些实施例中,上述电子设备还可包括有显示屏42、输入输出接口43、通信接口44或者称为网络接口、电源45以及通信总线46。其中,显示屏42、输入输出接口43比如键盘(Keyboard)属于用户接口,可选的用户接口还可以包括标准的有线接口、无线接口等。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。通信接口44可选的可以包括有线接口和/或无线接口,如WI-FI接口、蓝牙接口等,通常用于在电子设备与其他电子设备之间建立通信连接。通信总线46可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域技术人员可以理解,图4中示出的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的组件,例如还可包括实现各类功能的传感器47。
本发明实施例电子设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例可实现ARM平台的虚拟机的TPM功能。
可以理解的是,如果上述实施例中的虚拟化实现方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、多媒体卡、卡型存储器(例如SD或DX存储器等)、磁性存储器、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种可读存储介质,存储有计算机程序,计算机程序被处理器执行时如上任意一实施例虚拟化实现方法的步骤。
本发明实施例最后还提供了一种ARM平台,请参阅图5,ARM平台用于执行计算机程序时实现如上任意一个实施例所述的虚拟化实现方法的步骤,ARM平台可包括应用层501、***层502、虚拟化层503和固件层504。
其中,应用层501可包括位于富执行环境中的多个虚拟机应用程序,和位于可信执行环境的可信应用集,可信应用集包括用于实现vfTPM功能的可信应用。***层502可包括位于富执行环境中的宿主机处理模块和位于可信执行环境的可信管理模块。虚拟化层503包括位于富执行环境中的虚拟机监视器。固件层504可包括固件处理模块,固件处理模块用于接收宿主机处理模块、虚拟机监视器和可信管理模块的指令;固件层504同时执行运行状态的切换,并在执行运行状态切换过程中转发接收指令中的虚拟机标识信息。
在本实施例中,同时支持KVM(Kernel-based Virtual Machine,***虚拟化模块)及Xen虚拟化技术。基于此,宿主机处理模块针对在KVM虚拟化实现过程中,实现对虚拟机的内存地址转换。也就是说,宿主机处理模块完成IPA与PA之间转换,是ARM虚拟化实现中stage2的实现。在请求也即虚拟机操作***发送的vfTPM请求阶段,通过宿主机处理模块将虚拟机操作***也即GustOS的请求命令及转换后的物理内存地址进行参数化,也即通过固定函数以参数形式从***层跨层传递至固件层,附带虚拟机标识符VMID传递给固件层504的固件处理模块,在接受请求也即响应固件处理模块的请求时,将接收固件处理模块转发过来的vfTPM请求处理结果,根据VMID转发给对应的虚拟机。
虚拟机监视器也即Hypervisor,针对Xen虚拟化实现过程中,虚拟机监视器在ARM虚拟化中实现的stage2翻译过程,将IPA地址翻译成PA地址。在请求也即也即虚拟机操作***发送的vfTPM请求阶段,通过Hypervisor将GuestOS的请求参数,内存地址参数化,附加VMID传递给固件处理模块,在接收阶段,将接收固件处理模块转发过来的vfTPM处理结果,根据VMID转发给对应的虚拟机或者Xen Hypervisor本身。与KVM不同的是,XenHypervisor的VMID=0,代表Hypervisor本身,Hypervisor的请求与虚拟机请求保持一致,但是其没有stage2翻译过程。
固件层504的固件处理模块接受宿主机处理模块,Hypervisor,可信管理模块的请求,通过SMC指令,更改NS位的值,切换TEE或REE运行环境,在SMC请求转换的过程中将附带接收的VMID一起传递转发。
本实施例通过对可信执行环境操作***TEEOS进行改造,完成了TEEOS对虚拟化的支持,在TEE侧包括可信管理模块和和可信应用集,可信应用集包括用于实现vfTPM功能的多个可信应用,每个可信应用中内置fTPM模块,从而在可信执行环境中运行多个fTPM实例。fTPM模块,也即vfTPM模块,用于作为虚拟机使用的fTPM的一种实现方式,其实现了计算的虚拟化和持久化存储的虚拟化,vfTPM的计算功能的实现可采用任何一种现有技术,本申请对此不做任何限定。可信管理模块可包括存储驱动器和虚拟机数据处理模块,虚拟机数据处理模块可为图6所示的vmContext模块,虚拟机数据处理模块与虚拟机一一对应,也即一个虚拟机对应有一个虚拟机数据处理模块,该模块用于对相应虚拟机的vfTPM请求进行处理,存储有相应虚拟机的虚拟机可信执行环境实例及其上下文。本实施例的可信管理模块是在原有TEEOS的基础上进行改进,具体的,将原有的TEEOS实例分为两部分,一部分可称为运行内存Nexus,一部分称为虚拟请求执行内存vm部分,运行内存部分负责处理底层的实现,如SMC指令处理,内存管理类,线程管理等。虚拟请求执行内存负责具体请求的处理、加载TA、执行TA等功能,如图7所示,在TEE实现的过程中,有一个Nexus实例和多个vm tee实例,一个vm tee实例对应一个REE侧的虚拟机,为了区分运行内存和虚拟请求执行内存的内存处理和请求,对运行内存的内存处理函数进行区分改造,举例来说,可将运行内存的Nexus实例的处理对应为.nex_data,.nex_bss,.nex_nozi,.nex_heap等,对vm tee实例还是使用原有的内存处理请求。
本实施例通过对符合GP的标准的可信执行环境进行改造,实现了在TrustZone中可运行多个fTPM实例,来为虚拟机提供TPM功能,而各个虚拟机的TPM功能互不影响,以实现虚拟机的隔离能力。
为了进一步提高安全性能,本实施例还提供了一种可选的fTPM的存储方式,也即将fTPM的存储保存在特殊的flash闪存上,使其只能在TEE中进行读取。相应的,存储驱动器也即图6所示的NV Driver模块,可实现对特殊flash的读写问题实现来的驱动程序,其中实现了flash的分区、flash读写及权限控制等功能,为fTPM提供NVRAM持久化存储对象。其原理是在flash上进行分区,为每个虚拟机vfTPM提供一个分区,用于NVRAM存储。作为TEEOS上的flash驱动程序,对flash的读写设置权限,只有在TEE侧才可操作,并且只有vm才可操作对应VMID对应的flash分区。
本发明实施例ARM平台的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例可实现ARM平台的虚拟机的TPM功能。
为了使所属领域技术人员更加清楚整个技术方案,基于图6所示的ARM平台架构,本申请还结合图8-图11给出了一个示意性例子,在本示意性例子包括ARM平台的初始化流程、虚拟机创建流程、虚拟机请求及响应流程以及虚拟机销毁关闭流程,在本实施例中,TEEOS为可信执行环境操作***,NV Driver为存储驱动器,VMID为虚拟机标识信息,vm tee实例及上下文为虚拟机可信执行环境实例和虚拟机可信执行环境实例上下文,vm表示虚拟机,RichOS表示富执行环境操作***,NVRVM(Non-Volatile Random Access Memory,非易失性随机访问存储器)表示目标存储空间,Hypervisor表示虚拟化层的虚拟机监视器,GuestOS表示虚拟机操作***,可包括下述内容:
其中,ARM平台的初始化流程可包括下述内容:
A1:ARM平台上电。
A2:固件加载,在固件加载过程中,初始化设备,包括开启TrustZone功能,加载Firmware/SecureMonitor固件管理模块,其中的固件管理模块实现了VMID转发功能。
A3:TEEOS加载,从固件存储flash中查找到TEE OS镜像固件并加载,在TEE中,为TEE OS配置内存及初始化NV Driver。
A4:使用NVDriver对用于fTPM的flash芯片进行初始化处理,此初始化处理包括但并不限制于元数据的生成,flash加密密钥生成,加密密钥保存,权限设置,分区处权限处理。
A5:如果是QEMU(虚拟操作***模拟器)KVM虚拟化,则完成对RichOS的加载。
A6:如果是Xen虚拟化,则查找Xen虚拟化的镜像文件,随同BIOS进行启动。
A7:在BIOS启动过程中,Xen Hypervisor作为vm0,进行处理,执行虚拟机创建流程,在TEE OS中分配vm tee实例及上下文,VMID=0。
A8:vm tee实例加载vfTPM TA。
A9:在TA加载过程中,初始化TPM的nvram,也即通过NV Driver对TPM存储flash读写,在flash上分配一块nvram分区,供VMID=0的vfTPM使用。
A10:通过vfTPM请求及响应流程将vfTPM处理的数据返回给Xen Hypervisor;
A10:Hypervisor进入启动流程,完成启动。
其中,虚拟机的创建流程可包括:
B1:RichOS或Hypervisor发起创建虚拟机的指令,并要求此虚拟机配置有vfTPM。
B2:RichOS或Hypervisor调用创建虚拟机的过程中,首先在TEE侧完成vfTPM相关的初始化操作也即初始化流程中的A3和A4,因此RichOS或Hypervisor先将请求参数附带RichOS或Hypervisor分配给此虚拟机的VMID一块传递给固件层的固件处理模块。B3:固件处理模块接收到虚拟机创建的请求,封装请求参数,并将VMID附加到SMC指令的上,发送SMC_VM_CREATE指令,将指令发送TEE侧的TEEOS,并切换运行环境为TEE。
B4:TEEOS侧的Nexus TEE接收SMC指令,并且分析此虚拟机需要一个vfTPM设备。
B5:TEEOS为该虚拟机分配一个vm tee实例及上下文,vm tee上下文用于处理所有有关该虚拟机的请求包括vfTPM的加载与执行。
B6:加载fTPM TA,并执行vfTPM初始化操作。具体的,在初始化操作的过程中,除了启动TPM外,还需要对NVRVM进行初始化。NVRVM的初始化过程包括:使用NV Driver完成flash分区的分配,如果该虚拟机有对应flash分区,则将此分区直接分配给vfTPM当作NVRVM使用,若该虚拟机的vfTPM没有对应的flash分区,则NV Driver在flash空间充足的条件下,为该虚拟机创建一个分区,并根据TPM规范对此分区实施NVRVM初始化操作。
B7:NVRVM初始化完成,继续完成TPM规范的其他初始化工作。
B8:完成fTPM初始化工作,将返回结果通过TEEOS和固件处理模块返回给RichOS或Hypervisor层;
B9:RichOS完成后续的虚拟机的创建工作。
其中,对于虚拟机的vfTPM请求及响应流程可如下内容:
C1:GuestOS发送vfTPM请求。
C2:GustOS内核将vfTPM请求指令及VA转换为IPA。
C3:RichOS或Hypervisor将GuestOS发指令转换成PA,同时附加VMID发送给固件处理模块。
C4:固件处理模块将指令进行封装,同时附加VMID,执行SMC指令,并切换运行状态到TEEOS。
C5:TEEOS根据VMID分配给对应的vm tee上下文对vfTPM请求进行处理。
C6:TEEOS分配共享内存,将处理结果保存在共享内存中,并将共享内存地址及VMID发送给固件处理模块。
C7:固件处理模块对请求参数进行封装后,执行SMC指令切换执行环境到REE,并将结果发送给Hypervisor或RichOS中。
C8:RichOS或Hypervisor将共享内存地址转换为IPA,并根据VMID将结果返回给对应虚拟机。
C9:虚拟机内核将IPA转换为VA,并交由GuestOS APP进行处理。
C10:GustOS APP获取vfTPM请求的处理结果。
其中,虚拟机销毁关闭流程可如下所示:
D1:用户通过应用层下发销毁或关闭虚拟机的指令,RichOS或Hypervisor接受到该销毁或关闭虚拟机指令,以通过执行该执行实现对vfTPM资源的释放。
D2:将待处理虚拟机即为待销毁虚拟机或待关闭虚拟机的指令参数进行转换,并附加VMID转发给固件处理模块。
D3:固件处理模块将D2生成的指令进行封装,同时附加VMID,执行SMC_VM_DESTROY指令,并切换运行状态到TEEOS。
D4:TEEOS接受销毁或关闭虚拟机的指令,根据此指令的参数及VMID,发送给相应的vm tee。
D5:判断指令是彻底销毁删除虚拟机还是正常关闭虚拟***的命令。
D6:如果是关闭虚拟机***的命令,则在TEE侧刷新vfTPM数据,删除vm上下文;
D7:如果是销毁虚拟机,则在TEE侧删除vm上下文,同时删除flash上为虚拟机分配的vfTPM的存储分区也即目标存储空间。
D8:将处理结果通过TEEOS和固件管理模块返回给RichOS或Hypervisor。
D9:RichOS或Hypervisor执行完成vm在REE的销毁或删除操作。
由上可知,本发明通过对TEEOS进行改造,完成了TEEOS对虚拟化的支持,支持KVM及Xen虚拟化技术;通过对fTPM的实现方式进行改进,实现了fTPM在ARM平台上对虚拟机的支持;通过对fTPM的存储方式进行改进,将fTPM的存储保存在特殊的flash闪存上,使其只能在TEE中进行读取,增强了其安全性;对fTPM的存储方式实现虚拟化,解决了fTPM的虚拟化问题。从而在ARM平台上基于固件实现了TPM功能,并且实现了虚拟化,可供ARM虚拟机使用,在研发层面可节约物理成本,fTPM虚拟化的实现可提高云计算的产品的安全性,提升云计算产业方面的竞争力。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的硬件包括装置、电子设备及ARM平台而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种虚拟化实现方法、装置、电子设备、可读存储介质及ARM平台进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (12)

1.一种虚拟化实现方法,其特征在于,包括:
预先基于虚拟化类型,对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理;
当接收到所述目标虚拟机的目标vfTPM请求,将携带由所述目标虚拟机的虚拟物理地址所转换的真实物理地址、和所述目标虚拟机的标识信息的指令进行封装,并切换当前运行状态至可信执行环境;
在所述可信执行环境中,根据所述标识信息,调用相应的目标虚拟机可信执行环境上下文对所述目标vfTPM请求进行处理,并发送携带处理结果的存储地址及所述标识信息的结果反馈指令;
对所述结果反馈指令进行封装,并切换当前运行状态至富执行环境;在所述富执行环境,通过解析所述结果反馈指令得到所述存储地址和所述标识信息,按照所述标识信息,将转换后的所述存储地址发送至所述目标虚拟机;
其中,所述基于虚拟化类型,对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理,包括:
ARM平台上电,并加载所述ARM平台的目标固件和可信执行环境操作***;
当所述可信执行环境操作***启动,将所述可信执行环境操作***的内存划分为运行内存和虚拟请求执行内存;所述运行内存用于处理底层请求,所述虚拟请求执行内存用于处理虚拟机的vfTPM请求;
在闪存芯片中,为所述可信执行环境操作***配置用于实现vfTPM功能的专有内存;
加载存储驱动器至所述可信执行环境操作***中,利用所述存储驱动器对所述专有内存进行初始化处理,并对所述专有内存进行分区处理;
基于所述目标虚拟机所属的虚拟化类型,对富执行环境进行初始化处理。
2.根据权利要求1所述的虚拟化实现方法,其特征在于,所述调用相应的目标虚拟机可信执行环境上下文对所述目标vfTPM请求进行处理之后,还包括:
将所述处理结果存储至共享内存中。
3.根据权利要求1所述的虚拟化实现方法,其特征在于,所述基于所述目标虚拟机所属的虚拟化类型,对富执行环境进行初始化处理,包括:
若所述目标虚拟机采用QEMU KVM虚拟化技术,则完成对富执行环境操作***的加载。
4.根据权利要求1所述的虚拟化实现方法,其特征在于,所述基于所述目标虚拟机所属的虚拟化类型,对富执行环境进行初始化处理,包括:
若所述目标虚拟机采用Xen虚拟化技术,则在启动BIOS的同时启动Xen虚拟化的镜像文件;
在启动过程中,将虚拟机监视器作为具有预设标识的虚拟机,为所述虚拟机监视器分配对应的虚拟机可信执行环境实例及虚拟机可信执行环境上下文;
通过所述虚拟机可信执行环境实例加载vfTPM 可信应用;在所述vfTPM 可信应用的加载过程中,利用所述存储驱动器对所述专有内存进行读写,并在所述专有内存中为所述虚拟机监视器分配专属存储区域;
将所述虚拟机监视器的vfTPM 请求的处理结果返回至所述虚拟机监视器,启动所述虚拟机监视器。
5.根据权利要求1至4任意一项所述的虚拟化实现方法,其特征在于,所述当接收到所述目标虚拟机的vfTPM请求之前,还包括:
所述富执行环境下发虚拟机创建指令,并为配置有vfTPM功能的所述目标虚拟机分配相应的标识信息;
将所述标识信息和所述虚拟机创建指令进行封装,并切换当前运行状态至所述可信执行环境;
在所述可信执行环境,所述可信执行环境操作***基于所述虚拟机创建指令,为所述目标虚拟机分配所述目标虚拟机可信执行环境上下文、目标虚拟机可信执行环境实例和内存空间;通过所述目标虚拟机可信执行环境实例加载vfTPM可信应用,启动TPM,并初始化所述内存空间和所述目标虚拟机的vfTPM;
将所述目标虚拟机的vfTPM的初始化结果和所述标识信息进行封装,并切换当前运行状态至所述富执行环境,以基于所述初始化结果,在所述富执行环境完成所述目标虚拟机的创建操作。
6.根据权利要求5所述的虚拟化实现方法,其特征在于,所述初始化所述内存空间,包括:
若所述目标虚拟机在闪存芯片中有相应的目标存储空间,则将所述目标存储空间分配给所述目标虚拟机的vfTPM功能;
若所述目标虚拟机在闪存芯片中有相应的存储分区,则当所述闪存芯片的剩余存储空间大于预设空间阈值, 通过存储驱动器为所述目标虚拟机的vfTPM功能分配目标存储空间;
将所述目标存储空间与所述标识信息进行绑定;
其中,所述目标存储空间作为所述目标虚拟机的vfTPM的NVRAM;且所述目标存储空间的读写功能由所述目标虚拟机在所述可信执行环境中执行。
7.根据权利要求1至4任意一项所述的虚拟化实现方法,其特征在于,所述对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理之后,还包括:
当接收到虚拟机销毁指令,在所述富执行环境中,通过解析所述虚拟机销毁指令,得到获取待销毁虚拟机的销毁标识;
将参数化处理的所述虚拟机销毁指令以及所述销毁标识进行封装,并切换当前运行状态为所述可信执行环境;
在所述可信执行环境中,所述可信执行环境操作***基于所述销毁标识,将所述虚拟机销毁指令发送至所述待销毁虚拟机对应的销毁虚拟机可信执行环境实例;所述销毁虚拟机可信执行环境实例删除销毁虚拟机可信执行环境上下文,并删除所述待销毁虚拟机对应在闪存芯片的存储分区;反馈携带所述销毁标识的虚拟机销毁完成指令;
将参数化处理的所述虚拟机销毁完成指令以及所述销毁标识进行封装,并切换当前运行状态为所述富执行环境;
在所述富执行环境中,根据所述虚拟机销毁完成指令和所述销毁标识,删除所述待销毁虚拟机。
8.根据权利要求1至4任意一项所述的虚拟化实现方法,其特征在于,所述对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理之后,还包括:
当接收到虚拟机关闭指令,在所述富执行环境中,通过解析所述虚拟机关闭指令,得到获取待关闭虚拟机的关闭标识;
将参数化处理的所述虚拟机关闭指令以及所述关闭标识进行封装,并切换当前运行状态为所述可信执行环境;
在所述可信执行环境中,所述可信执行环境操作***基于所述关闭标识,将所述虚拟机关闭指令发送至所述待关闭虚拟机对应的关闭虚拟机可信执行环境实例;所述关闭虚拟机可信执行环境实例删除关闭虚拟机可信执行环境上下文,并更新所述关闭虚拟机在所述可信执行环境中的vfTPM;反馈携带所述关闭标识的虚拟机关闭完成指令;
将参数化处理的所述虚拟机关闭完成指令以及所述关闭标识进行封装,并切换当前运行状态为所述富执行环境;
在所述富执行环境中,根据所述虚拟机关闭完成指令和所述关闭标识,关闭所述待关闭虚拟机。
9.一种虚拟化实现装置,其特征在于,包括:
初始化处理模块,用于预先基于虚拟化类型,对运行着配置vfTPM功能的目标虚拟机的ARM平台进行初始化处理;
虚拟化请求下发模块,用于当接收到所述目标虚拟机的目标vfTPM请求,将携带由所述目标虚拟机的虚拟物理地址所转换的真实物理地址、和所述目标虚拟机的标识信息的指令进行封装,并切换当前运行状态至可信执行环境;
虚拟化请求处理模块,用于在所述可信执行环境中,根据所述标识信息,调用相应的目标虚拟机可信执行环境上下文对所述目标vfTPM请求进行处理,并发送携带处理结果的存储地址及所述标识信息的结果反馈指令;
处理结果反馈模块,用于对所述结果反馈指令进行封装,并切换当前运行状态至富执行环境;在所述富执行环境,通过解析所述结果反馈指令得到所述存储地址和所述标识信息,按照所述标识信息,将转换后的所述存储地址发送至所述目标虚拟机;
其中,所述初始化处理模块进一步用于:
ARM平台上电,并加载所述ARM平台的目标固件和可信执行环境操作***;
当所述可信执行环境操作***启动,将所述可信执行环境操作***的内存划分为运行内存和虚拟请求执行内存;所述运行内存用于处理底层请求,所述虚拟请求执行内存用于处理虚拟机的vfTPM请求;
在闪存芯片中,为所述可信执行环境操作***配置用于实现vfTPM功能的专有内存;
加载存储驱动器至所述可信执行环境操作***中,利用所述存储驱动器对所述专有内存进行初始化处理,并对所述专有内存进行分区处理;
基于所述目标虚拟机所属的虚拟化类型,对富执行环境进行初始化处理。
10.一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至8任一项所述虚拟化实现方法的步骤。
11.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述虚拟化实现方法的步骤。
12.一种ARM平台,其特征在于,用于执行计算机程序时实现如权利要求1至8任一项所述虚拟化实现方法的步骤,其包括应用层、***层、虚拟化层和固件层;
所述应用层,包括位于富执行环境中的多个虚拟机应用程序,和位于可信执行环境的可信应用集,所述可信应用集包括用于实现vfTPM功能的可信应用;
所述***层,包括位于所述富执行环境中的宿主机处理模块,和位于所述可信执行环境的可信管理模块;
所述虚拟化层,包括位于所述富执行环境中的虚拟机监视器;
所述固件层,包括固件处理模块,所述固件处理模块用于接收所述宿主机处理模块、所述虚拟机监视器和所述可信管理模块的指令;执行运行状态的切换,并在执行运行状态切换过程中转发接收指令中的虚拟机标识信息。
CN202210334870.7A 2022-03-31 2022-03-31 虚拟化实现方法、装置、电子设备、介质及arm平台 Active CN114625484B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210334870.7A CN114625484B (zh) 2022-03-31 2022-03-31 虚拟化实现方法、装置、电子设备、介质及arm平台
PCT/CN2022/123583 WO2023184920A1 (zh) 2022-03-31 2022-09-30 虚拟化实现方法、装置、电子设备、非易失性可读存储介质及arm平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210334870.7A CN114625484B (zh) 2022-03-31 2022-03-31 虚拟化实现方法、装置、电子设备、介质及arm平台

Publications (2)

Publication Number Publication Date
CN114625484A CN114625484A (zh) 2022-06-14
CN114625484B true CN114625484B (zh) 2024-06-21

Family

ID=81905172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210334870.7A Active CN114625484B (zh) 2022-03-31 2022-03-31 虚拟化实现方法、装置、电子设备、介质及arm平台

Country Status (2)

Country Link
CN (1) CN114625484B (zh)
WO (1) WO2023184920A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114625484B (zh) * 2022-03-31 2024-06-21 苏州浪潮智能科技有限公司 虚拟化实现方法、装置、电子设备、介质及arm平台
CN116028164B (zh) * 2023-03-29 2023-06-20 阿里云计算有限公司 设备虚拟化方法以及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479100A (zh) * 2010-11-26 2012-05-30 中国科学院软件研究所 一种普适计算环境虚拟机平台及其创建方法
CN103748594A (zh) * 2011-07-29 2014-04-23 微软公司 针对arm*trustzonetm实现的基于固件的可信平台模块

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140812B2 (en) * 2009-07-01 2012-03-20 International Business Machines Corporation Method and apparatus for two-phase storage-aware placement of virtual machines
CN103986662B (zh) * 2014-05-22 2017-12-05 浪潮电子信息产业股份有限公司 一种跨虚拟化平台的虚拟路由器实现方法
KR102473665B1 (ko) * 2015-07-28 2022-12-02 삼성전자주식회사 스토리지 디바이스 및 스토리지 가상화 시스템
CN105389513B (zh) * 2015-11-26 2018-10-12 华为技术有限公司 一种虚拟可信平台模块vTPM的可信执行方法和装置
CN107704308B (zh) * 2017-09-19 2020-10-02 浪潮(北京)电子信息产业有限公司 虚拟平台vTPM管理***、信任链构建方法及装置、存储介质
CN107844362B (zh) * 2017-11-14 2021-10-15 浪潮(北京)电子信息产业有限公司 虚拟化tpm设备的***、方法、虚拟机及可读存储介质
CN108549571B (zh) * 2018-03-19 2022-03-15 沈阳微可信科技有限公司 一种适用于可信执行环境中的安全虚拟化方法
US11132440B2 (en) * 2018-11-01 2021-09-28 Foundation Of Soongsil University-Industry Cooperation Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device
CN112148418A (zh) * 2019-06-26 2020-12-29 北京百度网讯科技有限公司 用于访问数据的方法、装置、设备和介质
CN112364343B (zh) * 2020-11-16 2022-05-06 支付宝(杭州)信息技术有限公司 虚拟机监控器秘密的保护方法、装置和电子设备
CN112817697A (zh) * 2021-02-09 2021-05-18 ***股份有限公司 面向可信执行环境的虚拟化***、方法和设备调用方法
CN113485785B (zh) * 2021-06-28 2023-10-27 海光信息技术股份有限公司 一种虚拟化可信平台模块实现方法、安全处理器及存储介质
CN113868676B (zh) * 2021-08-30 2023-11-03 苏州浪潮智能科技有限公司 在arm平台基于固件实现可信密码模块的方法及装置
CN114625484B (zh) * 2022-03-31 2024-06-21 苏州浪潮智能科技有限公司 虚拟化实现方法、装置、电子设备、介质及arm平台

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479100A (zh) * 2010-11-26 2012-05-30 中国科学院软件研究所 一种普适计算环境虚拟机平台及其创建方法
CN103748594A (zh) * 2011-07-29 2014-04-23 微软公司 针对arm*trustzonetm实现的基于固件的可信平台模块

Also Published As

Publication number Publication date
WO2023184920A1 (zh) 2023-10-05
CN114625484A (zh) 2022-06-14

Similar Documents

Publication Publication Date Title
US7421533B2 (en) Method to manage memory in a platform with virtual machines
CN107077428B (zh) 保护应用秘密的方法、电子***和计算机存储介质
CN114625484B (zh) 虚拟化实现方法、装置、电子设备、介质及arm平台
US9406099B2 (en) Methods and systems for maintaining state in a virtual machine when disconnected from graphics hardware
US8274518B2 (en) Systems and methods for virtualizing graphics subsystems
US8832352B2 (en) Hypervisor-driven protection of data from virtual machine clones
CN105190570B (zh) 用于虚拟机器的完整性保护的存储器自省引擎
CN103034524B (zh) 半虚拟化的虚拟gpu
KR102269452B1 (ko) 컨텐츠 변환 없는 컴퓨팅 디바이스에서의 다중 운영 체제 환경들의 지원
US8775715B2 (en) Protection of data from virtual machine clones via paravirtualization
US20060184938A1 (en) Method, apparatus and system for dynamically reassigning memory from one virtual machine to another
US20120054740A1 (en) Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments
US20150261952A1 (en) Service partition virtualization system and method having a secure platform
US20070011444A1 (en) Method, apparatus and system for bundling virtualized and non-virtualized components in a single binary
US9959134B2 (en) Request processing using VM functions
US10503922B2 (en) Systems and methods for hardware-based security for inter-container communication
JP2021504826A (ja) アプリケーションプログラムの起動方法、起動装置およびコンピュータ読み取り可能な記憶媒体
US20200210150A1 (en) Method for manufacturing a secure, modular business-specific hardware application and corresponding operating system
JP2022523522A (ja) セキュア・インターフェイス制御の高レベルのページ管理
US20160246629A1 (en) Gpu based virtual system device identification
WO2022268150A1 (zh) 一种虚拟机与安全隔离区间的通信方法及相关装置
US20150381766A1 (en) Application transfer system, application transfer method, terminal, and program
WO2022100693A1 (zh) 一种地址转换关系的配置方法及计算机***
CN116069584A (zh) 将监控服务扩展到可信云运营商域中
CN116974688A (zh) 数据交互方法、装置、电子设备及计算机可读存储介质

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