CN114201752B - 一种安全隔离虚拟机的页表管理方法、装置及相关设备 - Google Patents

一种安全隔离虚拟机的页表管理方法、装置及相关设备 Download PDF

Info

Publication number
CN114201752B
CN114201752B CN202111438330.5A CN202111438330A CN114201752B CN 114201752 B CN114201752 B CN 114201752B CN 202111438330 A CN202111438330 A CN 202111438330A CN 114201752 B CN114201752 B CN 114201752B
Authority
CN
China
Prior art keywords
virtual machine
page table
machine manager
spt
vmm
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
CN202111438330.5A
Other languages
English (en)
Other versions
CN114201752A (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202111438330.5A priority Critical patent/CN114201752B/zh
Publication of CN114201752A publication Critical patent/CN114201752A/zh
Application granted granted Critical
Publication of CN114201752B publication Critical patent/CN114201752B/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/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例公开一种安全隔离虚拟机的页表管理方法、装置及相关设备,所述方法包括:设置安全页表虚拟机管理器,仅用于启动和管理安全隔离虚拟机的缺页中断请求;当虚拟机管理器;接收到所述安全隔离虚拟机产生的缺页中断请求时,将所述缺页中断请求发送给安全页表虚拟机管理器;所述安全页表虚拟机管理器完成内存的分配和安全页表的添加。本发明实施例提供的技术方案中无需主处理器与安全处理器之间进行页面管理相关指令转发,明显提高了安全隔离虚拟机在进行页面管理时的效率。

Description

一种安全隔离虚拟机的页表管理方法、装置及相关设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种安全隔离虚拟机的页表管理方法、装置及相关设备。
背景技术
安全隔离虚拟机(SIV,Secure Isolation Virtualization)是一种通过将系统内存划分为安全内存和非安全内存两块区域的安全虚拟化技术。现有技术中,在安全隔离虚拟机中,对于安全内存的访问可参考图1中所示出的内存访问子系统的构架来说明,其中:
内存管理单元(MMU,Memory Management Unit)在CPU核的配合下,实现线性地址到物理地址的动态映射,为正在CPU核上运行的应用进程提供一个独立的连续的虚拟内存空间。
在物理内存中确定一个区域为安全内存,设置安全内存的访问权限为:只允许安全处理器和安全隔离虚拟机访问,内存的访问权限管理可以通过硬件(例如,内存控制器)来实现,硬件检查发起内存访问的主体的身份标识(ID),当对安全内存的发起访问的主体是安全处理器或者安全隔离虚拟机本身时,则允许访问,否则直接拒绝访问,对内存控制器的配置由安全处理器来实现;这也避免了安全内存会被操作系统或者应用程序进行恶意修改。
在内存控制器中设置有安全页面属性表(SPOT,Secure Page Ownership Table),用来控制内存所有者和读写权限,在内存控制器访问内存之前检查所述SPOT中配置的物理地址的权限,只有对内存的访问请求与该内存在SPOT中的配置的对应物理地址权限一致时才允许访问,即使在页表中配置了页面可写,但SPOT中配置为不可写,页面最终也不可写。对于SPOT的管理和配置由安全处理器执行。
对于安全隔离虚拟机而言,记录安全隔离虚拟机的虚拟地址和系统物理地址映射关系的页表也位于安全内存内,由安全处理器进行配置和管理,以防止虚拟机管理器(VMM,Virtual Machine Manager)对页表进行配置和使用,并且修改和管理虚拟机页表必须受到SPOT的控制,这是因为在安全隔离虚拟机中,VMM是不受信任的,其有被恶意程序共计的可能,SPOT拦截所有来自VMM对虚拟机页表的访问。因此,当安全隔离虚拟机的页表存在缺页情况而不完备时,VMM将缺页命令发送给安全处理器,由安全处理器完成安全内存分配和页表的添加,其实现过程如图2所示,从中明显可以看出:页表管理过程中存在降低虚拟机性能的如下问题:
(1)从主处理器到安全处理器需要进行消息转发,转发过程不仅耗系统资源还比较耗时;
(2)安全处理器的处理能力通常都弱于主处理器,因此程序执行过程较慢。
发明内容
有鉴于此,本发明实施例提供一种安全隔离虚拟机的页表管理方法、装置和相关设备,以解决安全隔离虚拟机在页面管理时性能降低的问题。
第一方面,本发明实施例提供一种安全隔离虚拟机的页表管理方法,包括:
设置安全页表虚拟机管理器,仅用于启动和管理安全隔离虚拟机的缺页中断请求;
当虚拟机管理器接收到所述安全隔离虚拟机产生的缺页中断请求时,将所述缺页中断请求发送给所述安全页表虚拟机管理器;
所述安全页表虚拟机管理器完成内存的分配和安全页表的添加。
进一步地,所述安全页表虚拟机管理器在系统特定设置的专用处理器上运行。
进一步地,所述方法还包括:所述虚拟机管理器为所述安全隔离虚拟机创建初始化运行环境,运行安全隔离虚拟机。
进一步地,当虚拟机管理器接收到所述安全隔离虚拟机产生的缺页中断请求时,通过共享内存将所述缺页中断请求发送给所述安全页表虚拟机管理器。
进一步地,该方法还包括:所述安全页表虚拟机管理器运行在动态可信环境,且当安全页表虚拟机管理器运行在动态可信环境时,将设置有所述安全页表虚拟机管理器的专用处理器状态相对于安全页面属性表设置为可信任状态。
更进一步地,在所述动态可信环境创建过程中确定安全页表虚拟机管理器的SPT-VMM代码完整,且在确定安全页表虚拟机管理器的SPT-VMM代码完整之后,所述安全页表虚拟机管理器完成内存的分配和安全页表的添加。
典型的,在所述动态可信环境创建过程中确定安全页表虚拟机管理器的SPT-VMM代码完整包括:
在物理内存中划分特定内存;其被配置成只能通过特殊的物理地址进行访问,且硬件只允许动态度量根创建指令访问;所述特定内存中预先存储有SPT-VMM代码;SPT-VMM代码的签名、公钥证书、专用处理器厂商签名;
所述动态度量根创建指令在输入数据时,获取所述SPT-VMM代码的签名、公钥证书和专用处理器厂商签名;
当安全处理器判断基于所述动态度量根创建指令获取的专用处理器厂商签名和SPT-VMM代码的签名正确后,确定所述安全页表虚拟机管理器的SPT-VMM代码完整。
第二方面,本发明实施例提供一种安全隔离虚拟机的页表管理装置,包括:
设置单元,用于设置安全页表虚拟机管理器仅用于启动和管理安全隔离虚拟机的缺页中断请求;
传送单元,用于将虚拟机管理器接收到的来自所述安全隔离虚拟机产生的缺页中断请求发送给安全页表虚拟机管理器;
安全页表虚拟机管理器,用于完成内存的分配和安全页表的添加。
进一步地,所述安全页表虚拟机管理器在系统特定设置的专用处理器上运行。
进一步地,所述装置还包括:运行单元,用于使得所述虚拟机管理器为所述安全隔离虚拟机创建初始化运行环境,运行安全隔离虚拟机。
进一步地,所述设置单元还用于:在物理内存中设置共享内存,以用于所述传送单元将所述缺页中断请求发送给所述安全页表虚拟机管理器。
进一步地,所述确定安全页表虚拟机管理器运行在动态可信环境,且所述设置单元还用于:当安全页表虚拟机管理器运行在动态可信环境时,将设置有所述安全页表虚拟机管理器的专用处理器状态相对于安全页面属性表设置为可信任状态。
更进一步地,所述装置还包括:
动态可信环境创建单元,用于创建所述动态可信环境;以及
完整性检验单元,用于在所述动态可信环境创建过程中确定安全页表虚拟机管理器的SPT-VMM代码完整,且在确定安全页表虚拟机管理器的SPT-VMM代码完整之后,触发所述安全页表虚拟机管理器完成内存的分配和安全页表的添加。
典型的,所述设置单元还用于:在物理内存中划分特定内存;所述特定内存被配置成只能通过特殊的物理地址进行访问,且硬件只允许动态度量根创建指令访问;所述特定内存中预先存储有SPT-VMM代码;SPT-VMM代码的签名、公钥证书、专用处理器厂商签名;
所述动态可信环境创建单元,用于创建所述动态可信环境包括:所述动态度量根创建指令在输入数据时,获取所述SPT-VMM代码的签名、公钥证书和专用处理器厂商签名;
所述完整性检验单元,用于在所述动态可信环境创建过程中确定安全页表虚拟机管理器SPT-VMM的代码完整包括:当安全处理器判断基于所述动态度量根创建指令获取的专用处理器厂商签名和SPT-VMM代码的签名正确后,确定所述安全页表虚拟机管理器的SPT-VMM代码完整。
第三方面,本发明实施例提供一种片上系统,包括:如上任一所述的装置。
第四方面,本发明实施例提供一种服务器,用于执行如上任一所述的方法。
第五方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的方法。
本发明实施例提供的技术方案中,当VMM接收到安全隔离虚拟机产生的缺页中断请求并将其转发至SPT-VMM后,SPT-VMM可以代替安全处理器,直接完成内存的分配以及安全页表的添加。整个过程不需要安全处理器来对SPOT进行配置修改以及页表进行添加;也无需主处理器与安全处理器之间进行页面管理相关指令转发,明显提高了安全隔离虚拟机在进行页面管理时的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为现有技术中安全隔离虚拟机的内存访问子系统的架构示意图;
图2为现有技术中安全隔离虚拟机通过安全处理器管理页表的示意图;
图3为本发明实施例提供的一种安全隔离虚拟机进行页面管理的方法流程;
图4为本发明实施例提供的安全隔离虚拟机进行页表管理的示意图;
图5为本发明实施例提供的一种安全隔离虚拟机的页表管理装置的示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种安全隔离虚拟机的页表管理方法,参见图3,该方法具体包括如下步骤:
步骤100、设置安全页表虚拟机管理器SPT-VMM,仅用于启动和管理所有的安全隔离虚拟机的缺页中断,而不执行其它任何功能。
在本步骤中,可以在系统单独预留的一个专用处理器上设置SPT-VMM,即:该专用处理器不被主操作系统访问和调度,不开启分页机制,也不处理外部中断,不允许直接存储器访问(DMA,Direct Memory Access)。
步骤101、当VMM接收到所述安全隔离虚拟机产生的缺页中断请求时,将所述缺页中断请求发送给SPT-VMM;
在本步骤中,所述安全隔离虚拟机需要与内存进行数据交互时,如果内存所在的地址范围未在当前的页表中,则将产生缺页中断请求,申请对当前页表进行扩展,将安全隔离虚拟机所需的虚拟地址进一步映射到系统物理地址,从而与内存进行数据交互;
在本步骤中,VMM将通过共享内存发送缺页中断请求给SPT-VMM,此处的共享内存为预先设置的所述VMM和所述SPT-VMM都可以访问的内存,以用于两者间的数据交互;
所述VMM为所述安全隔离虚拟机创建初始化运行环境,运行安全隔离虚拟机。
步骤102、所述SPT-VMM接收到缺页中断请求后,完成内存的分配以及安全页表的添加;
在本步骤中,SPT-VMM完成内存的分配以及安全页表的添加可以由本领域普通技术人员基于系统内存使用情况以及系统物理地址的当前分配情况来实现,此处并不具体限定实现过程。
由于所述SPT-VMM接收到缺页中断请求后,执行内存的分配和安全页表的添加,当有中断触发的操作完成时会返回到VMM重新运行安全隔离虚拟机。也就是说,所述VMM获知页表修改完成后,重新运行安全隔离虚拟机。
在以上的实施例一中,所述SPT-VMM和所述VMM共同完成了虚拟机页表管理,其中:所述SPT-VMM仅处理页表缺页的处理流程,而所述VMM完成安全隔离虚拟机的初始化创建运行环境并运行安全隔离虚拟机。当安全隔离虚拟机的页表存在缺页情况而不完备时,所述VMM直接将缺页中断请求转发至所述SPT-VMM,由其完成内存分配和页表的添加,而无需安全处理器参与,执行速度更快。
进一步地,参考图4所示,在具体的实施过程中,还可以使所述SPT-VMM运行在动态可信环境,且此时将设置有所述SPT-VMM的专用处理器状态相对于SPOT设置为可信任状态;由此,SPOT可以区分访问指令是来自于动态可信环境下的程序还是其他不安全程序,处于动态可信环境中运行的安全页表虚拟机管理器SPT-VMM和安全处理器的作用相同,其对应的专用处理器状态为可信任状态时,所述SPT-VMM可以访问安全内存和SPOT,也可以进行内存的分配和页表的修改。
进一步地,将设置有所述SPT-VMM的专用处理器状态设置为可信任状态可以通过以下方式:在片上系统中设置状态寄存器,寄存器中的每一个位分别对应一个处理器,将与专用处理器所对应的寄存器的位设置为可信任状态所对应的值,例如:可信任状态以“1”标识,则运行动态可信环境的专用处理器为可信任状态时,将其对应的寄存器的位设置为“1”,当专用处理器不运行在动态可信环境时,将其对应的寄存器的位设置为“0”。
在上述的具体实施过程中,优选的,在所述SPT-VMM完成内存的分配和安全页表的添加之前,还在所述动态可信环境创建过程中确定SPT-VMM的SPT-VMM代码完整,以此保证SPT-VMM代码是正确的。本领域普通技术人员可以采用任何已知的技术方案来实现SPT-VMM代码完整性的验证,但是较优选地,可以是在所述动态可信环境创建过程中确定SPT-VMM代码完整,具体的:
在物理内存中划分特定内存;其被配置成只能通过特殊的物理地址(MagicAddress)进行访问,且硬件只允许动态度量根创建指令访问;当其他内存访问指令访问Magic Address时,将触发缺页异常;动态度量根创建指令为由专用处理器发出、触发动态可信度量根(DRTM,Dynamic Root of Trust for Measurement)的一条安全指令,其用于指示可信平台模块(TPM,Trusted Platform Module)安全芯片开始创建一个动态可信环境。基于DRTM,可以动态可信启动设备,并将可信启动度量扩展存储至可信平台模块的平台配置寄存器;
所述特定内存中存储有SPT-VMM代码;SPT-VMM代码的签名、公钥证书、专用处理器厂商签名;上述信息可以由安全处理器按照动态度量根创建指令预先设置的可读取参数格式要求预先存入,具体的存储方式此处并不限定,只要动态度量根创建指令可读取即可;其中,可以离线创建公私密钥对,对SPT-VMM代码使用私钥进行签名,按照预设策略生成公钥证书,将公钥证书发送至专用处理器厂商,专用处理器厂商利用公钥证书进行签名;
所述动态度量根创建指令被触发时,获取所述SPT-VMM代码的签名、公钥证书和专用处理器厂商签名;其中,所述动态度量根创建指令携带有特定内存的地址,从该地址所对应特定内存中可以获取上述信息;
安全处理器判断所述专用处理器厂商签名和SPT-VMM代码的签名正确后,确定所述安全页表虚拟机管理器SPT-VMM的代码完整。
由此,动态度量根创建指令和安全处理器共同完成了SPT-VMM的完整性验证,此时的SPT-VMM代码可以认为是未被修改过的,在执行过程中也不会中断,这也保证了运行过程中的SPT-VMM是正确的,而同时由于所述SPT-VMM设置在专用处理器上,仅执行SPT-VMM代码,而SPT-VMM代码又存储在特定内存中,普通指令无法访问,由此保证了SPT-VMM代码不会被修改和攻击,但由于其对SPOT而言是可信任的,因此可以对SPOT进行访问。
基于此,当VMM接收到安全隔离虚拟机产生的缺页中断请求并将其转发至SPT-VMM后,SPT-VMM可以代替安全处理器,直接完成内存的分配以及安全页表的添加。整个过程不需要安全处理器来对SPOT进行配置修改以及页表进行添加;也无需主处理器与安全处理器之间进行页面管理相关指令转发,明显提高了安全隔离虚拟机在进行页面管理时的效率。
对应的,本发明实施例还提供一种安全隔离虚拟机的页表管理装置,参见图5,所述安全隔离虚拟机的页表管理装置,包括:
设置单元,用于设置安全页表虚拟机管理器SPT-VMM仅用于启动和管理安全隔离虚拟机的缺页中断请求;
传送单元,用于将虚拟机管理器VMM接收到的来自所述安全隔离虚拟机产生的缺页中断请求发送给SPT-VMM;
安全页表虚拟机管理器SPT-VMM,用于完成内存的分配和安全页表的添加。
进一步地,所述SPT-VMM在系统特定设置的专用处理器上运行。
进一步地,所述装置还包括:运行单元,用于使得所述VMM为所述安全隔离虚拟机创建初始化运行环境,运行安全隔离虚拟机;
进一步地,所述设置单元还用于:在物理内存中设置共享内存,以用于所述传送单元将所述缺页中断请求发送给所述SPT-VMM。
进一步地,所述SPT-VMM运行在动态可信环境,且所述设置单元还用于:当所述SPT-VMM运行在动态可信环境时,将设置有所述SPT-VMM的专用处理器状态相对于SPOT设置为可信任状态。
更进一步地,所述装置还包括:
动态可信环境创建单元,用于创建所述动态可信环境;以及
完整性检验单元,用于在所述动态可信环境创建过程中确定SPT-VMM的SPT-VMM代码完整,且在确定SPT-VMM的代码完整之后,触发所述SPT-VMM完成内存的分配和安全页表的添加。
典型的,所述设置单元还用于:在物理内存中划分特定内存;所述特定内存被配置成只能通过特殊的物理地址进行访问,且硬件只允许动态度量根创建指令访问;所述特定内存中预先存储有SPT-VMM代码;SPT-VMM代码的签名、公钥证书、专用处理器厂商签名;
所述动态可信环境创建单元,用于创建所述动态可信环境包括:所述动态度量根创建指令在输入数据时,获取所述SPT-VMM代码的签名、公钥证书和专用处理器厂商签名;
所述完整性检验单元,用于在所述动态可信环境创建过程中确定SPT-VMM的SPT-VMM代码完整包括:当安全处理器判断基于所述动态度量根创建指令所获取的专用处理器厂商签名和SPT-VMM代码的签名正确后,确定所述安全页表虚拟机管理器SPT-VMM的代码完整。
在本实施例所提出的安全隔离虚拟机的页表管理装置中,通过设SPT-VMM,当VMM接收到安全隔离虚拟机产生的缺页中断请求并将其转发至SPT-VMM后,SPT-VMM可以代替安全处理器,直接完成内存的分配以及安全页表的添加。整个过程不需要安全处理器来对SPOT进行配置修改以及页表进行添加;也无需主处理器与安全处理器之间进行页面管理相关指令转发,明显提高了安全隔离虚拟机在进行页面管理时的效率。
本发明实施例还提供一种片上系统,包括:如上任一所述的装置。
本发明实施例还提供一种服务器,用于执行如上任一所述的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一所述的方法。
需要说明的是:在本文中,主处理器、安全处理器,专用处理器仅仅是表明基于不同角色的对象名称,例如,主处理器上运行操作系统,安全处理器对安全隔离虚拟机进行管理但不运行操作系统,专用处理器也不运行操作系统,三者都可以用通用处理器CPU来实现。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种安全隔离虚拟机的页表管理方法,其特征在于,所述方法包括:
设置安全页表虚拟机管理器SPT-VMM,仅用于启动和管理安全隔离虚拟机的缺页中断请求;
当虚拟机管理器VMM接收到所述安全隔离虚拟机产生的缺页中断请求时,将所述缺页中断请求发送给所述安全页表虚拟机管理器;
所述安全页表虚拟机管理器完成内存的分配和安全页表的添加;
其中,所述安全页表虚拟机管理器在系统特定设置的专用处理器上运行;
所述安全页表虚拟机管理器运行在动态可信环境,且当安全页表虚拟机管理器运行在动态可信环境时,将设置有所述安全页表虚拟机管理器的专用处理器状态相对于安全页面属性表设置为可信任状态。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述虚拟机管理器为所述安全隔离虚拟机创建初始化运行环境,运行安全隔离虚拟机。
3.根据权利要求1所述的方法,其特征在于,当虚拟机管理器接收到所述安全隔离虚拟机产生的缺页中断请求时,通过共享内存将所述缺页中断请求发送给所述安全页表虚拟机管理器。
4.根据权利要求1所述的方法,其特征在于,该方法还包括:在所述动态可信环境创建过程中确定安全页表虚拟机管理器的SPT-VMM代码完整,且在确定安全页表虚拟机管理器的SPT-VMM代码完整之后,所述安全页表虚拟机管理器完成内存的分配和安全页表的添加。
5.根据权利要求4所述的方法,其特征在于,在所述动态可信环境创建过程中确定安全页表虚拟机管理器的SPT-VMM代码完整包括:
在物理内存中划分特定内存;其被配置成只能通过特殊的物理地址进行访问,且硬件只允许动态度量根创建指令访问;所述特定内存中预先存储有SPT-VMM代码;SPT-VMM代码的签名、公钥证书、专用处理器厂商签名;
所述动态度量根创建指令被触发时,获取所述SPT-VMM代码的签名、公钥证书和专用处理器厂商签名;
当安全处理器判断基于所述动态度量根创建指令获取的专用处理器厂商签名和SPT-VMM代码的签名正确后,确定所述安全页表虚拟机管理器的SPT-VMM代码完整。
6.一种安全隔离虚拟机的页表管理装置,其特征在于,所述装置包括:
设置单元,用于设置安全页表虚拟机管理器仅用于启动和管理安全隔离虚拟机的缺页中断请求;
传送单元,用于将虚拟机管理器接收到的来自所述安全隔离虚拟机产生的缺页中断请求发送给所述安全页表虚拟机管理器;
安全页表虚拟机管理器,用于完成内存的分配和安全页表的添加;
其中,所述安全页表虚拟机管理器在系统特定设置的专用处理器上运行;
所述安全页表虚拟机管理器运行在动态可信环境,且所述设置单元还用于:当安全页表虚拟机管理器运行在动态可信环境时,将设置有所述安全页表虚拟机管理器的专用处理器状态相对于安全页面属性表设置为可信任状态。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
运行单元,用于使得所述虚拟机管理器为所述安全隔离虚拟机创建初始化运行环境,运行安全隔离虚拟机。
8.根据权利要求6所述的装置,其特征在于,所述设置单元还用于:在物理内存中设置共享内存,以用于所述传送单元将所述缺页中断请求发送给所述安全页表虚拟机管理器。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
动态可信环境创建单元,用于创建所述动态可信环境;以及
完整性检验单元,用于在所述动态可信环境创建过程中确定安全页表虚拟机管理器的SPT-VMM代码完整,且在确定安全页表虚拟机管理器的SPT-VMM代码完整之后,触发所述安全页表虚拟机管理器完成内存的分配和安全页表的添加。
10.根据权利要求9所述的装置,其特征在于,所述设置单元还用于:在物理内存中划分特定内存;所述特定内存被配置成只能通过特殊的物理地址进行访问,且硬件只允许动态度量根创建指令访问;所述特定内存中预先存储有SPT-VMM代码;SPT-VMM代码的签名、公钥证书、专用处理器厂商签名;
所述动态可信环境创建单元,用于创建所述动态可信环境包括:所述动态度量根创建指令在输入数据时,获取所述SPT-VMM代码的签名、公钥证书和专用处理器厂商签名;
所述完整性检验单元,用于在所述动态可信环境创建过程中确定安全页表虚拟机管理器SPT-VMM的代码完整包括:当安全处理器判断基于所述动态度量根创建指令获取的专用处理器厂商签名和SPT-VMM代码的签名正确后,确定所述安全页表虚拟机管理器的SPT-VMM代码完整。
11.一种片上系统,其特征在于,所述片上系统包括:如权利要求6-10中任一项所述的装置。
12.一种服务器,其特征在于,所述服务器用于执行权利要求1-5中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1-5中任一项所述的方法。
CN202111438330.5A 2021-11-29 2021-11-29 一种安全隔离虚拟机的页表管理方法、装置及相关设备 Active CN114201752B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111438330.5A CN114201752B (zh) 2021-11-29 2021-11-29 一种安全隔离虚拟机的页表管理方法、装置及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111438330.5A CN114201752B (zh) 2021-11-29 2021-11-29 一种安全隔离虚拟机的页表管理方法、装置及相关设备

Publications (2)

Publication Number Publication Date
CN114201752A CN114201752A (zh) 2022-03-18
CN114201752B true CN114201752B (zh) 2022-10-18

Family

ID=80649549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111438330.5A Active CN114201752B (zh) 2021-11-29 2021-11-29 一种安全隔离虚拟机的页表管理方法、装置及相关设备

Country Status (1)

Country Link
CN (1) CN114201752B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256392A (zh) * 2020-10-22 2021-01-22 海光信息技术股份有限公司 一种度量方法、装置及相关设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038128B (zh) * 2016-02-03 2020-07-28 华为技术有限公司 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置
US10387686B2 (en) * 2017-07-27 2019-08-20 International Business Machines Corporation Hardware based isolation for secure execution of virtual machines
CN109086100B (zh) * 2018-07-26 2020-03-31 中国科学院信息工程研究所 一种高安全可信移动终端安全体系架构及安全服务方法
CN111967065B (zh) * 2020-08-17 2023-10-27 海光信息技术股份有限公司 一种数据保护方法、处理器及电子设备
CN112099903B (zh) * 2020-08-18 2023-01-31 海光信息技术股份有限公司 一种虚拟机的内存管理方法、装置、cpu芯片及服务器
CN111984374B (zh) * 2020-08-20 2021-07-23 海光信息技术股份有限公司 用于管理安全内存的方法及其系统、装置和存储介质
CN111949995B (zh) * 2020-08-25 2021-07-16 海光信息技术股份有限公司 安全管理硬件资源的主机cpu架构系统和方法
CN112099904B (zh) * 2020-08-25 2024-05-17 海光信息技术股份有限公司 一种虚拟机的嵌套页表管理方法、装置、处理器芯片及服务器
CN111966468B (zh) * 2020-08-28 2021-10-26 海光信息技术股份有限公司 用于直通设备的方法、系统、安全处理器和存储介质
CN112256395B (zh) * 2020-10-23 2023-01-31 海光信息技术股份有限公司 安全内存分配、虚拟cpu调度方法及相关装置
CN112257064B (zh) * 2020-10-31 2024-02-09 海光信息技术股份有限公司 一种嵌套页表度量方法、装置及相关设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256392A (zh) * 2020-10-22 2021-01-22 海光信息技术股份有限公司 一种度量方法、装置及相关设备

Also Published As

Publication number Publication date
CN114201752A (zh) 2022-03-18

Similar Documents

Publication Publication Date Title
JP6130617B1 (ja) ハイパーバイザーを有するシステム
US7380049B2 (en) Memory protection within a virtual partition
US20180330081A1 (en) Execution environment virtualization method and apparatus and virtual execution environment access method and apparatus
EP1209563B1 (en) Method and system for allowing code to be securely initialized in a computer
JP5249450B2 (ja) 保護エージェント及び特権モード
CN110348204B (zh) 一种代码保护系统、认证方法、装置、芯片及电子设备
JP2018523211A (ja) 保護された例外処理
CN105938460B (zh) 存储器管理
CN103699498A (zh) 一种应用程序关键数据保护系统及其保护方法
EP3835988A1 (en) Communication method and apparatus, computer-readable storage medium, and chip
CN112800431B (zh) 超线程场景下安全进入可信执行环境的方法及装置
US9652348B2 (en) Debugging in a data processing apparatus
CN105930199A (zh) 一种虚拟机监控器本地完整性检测的系统及实现方法
CN112749397A (zh) 一种系统和方法
CN115017497B (zh) 信息处理方法、装置及存储介质
CN110046495B (zh) 数据结构测量结果比较
CN113268447A (zh) 计算机架构及其内的访问控制、数据交互及安全启动方法
WO2007022687A1 (fr) Système et procédé de contrôle de sécurité de système d’exploitation
CN114201752B (zh) 一种安全隔离虚拟机的页表管理方法、装置及相关设备
JP5925288B2 (ja) 計算機、アクセス管理方法およびアクセス管理プログラム
CN114741740B (zh) 基于risc-v的物理内存保护方法、系统和相关设备
CN113448682B (zh) 一种虚拟机监控器加载方法、装置及电子设备
CN105938456B (zh) 存储器管理
CN113239347B (zh) 一种适用于tee安全应用实例的启动方法及装置
CN110032870B (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