CN109739613B - 嵌套页表的维护方法、访问控制方法及相关装置 - Google Patents
嵌套页表的维护方法、访问控制方法及相关装置 Download PDFInfo
- Publication number
- CN109739613B CN109739613B CN201811400819.1A CN201811400819A CN109739613B CN 109739613 B CN109739613 B CN 109739613B CN 201811400819 A CN201811400819 A CN 201811400819A CN 109739613 B CN109739613 B CN 109739613B
- Authority
- CN
- China
- Prior art keywords
- memory
- virtual machine
- page
- nested
- request
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000012423 maintenance Methods 0.000 title claims abstract description 44
- 230000015654 memory Effects 0.000 claims abstract description 733
- 238000012508 change request Methods 0.000 claims abstract description 97
- 238000013507 mapping Methods 0.000 claims abstract description 95
- 230000008859 change Effects 0.000 claims abstract description 73
- 238000005192 partition Methods 0.000 claims description 172
- 238000011084 recovery Methods 0.000 claims description 74
- 230000004044 response Effects 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 21
- 238000004064 recycling Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种嵌套页表的维护方法、访问控制方法及相关装置,其中,嵌套页表的维护方法包括接收虚拟机管理器发出的内存变更请求;判断所述内存变更请求是否满足预定的变更条件要求,若否,终止响应所述内存变更请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存变更请求,并更新嵌套页表中的内存地址映射关系。本发明实施例所提供的嵌套页表的维护方法、访问控制方法及相关装置能够防止虚拟机管理器直接修改嵌套页表,防止虚拟机管理器通过操纵嵌套页表的方式操纵虚拟机的内存数据,提高了虚拟机内存数据的安全性。
Description
技术领域
本发明实施例涉及虚拟机技术领域,具体涉及一种嵌套页表的维护方法、访问控制方法及相关装置。
背景技术
通过虚拟化技术(Virtualization),物理主机可虚拟化出多台虚拟机(VirtualMachine,VM),从而最大化的利用物理主机的硬件资源;虚拟化出的每台虚拟机可被分配内存(空间),每台虚拟机配的内存主要用于任务消耗及支持虚拟化。
虚拟机运行时,需要利用嵌套页表将虚拟机的物理内存地址映射到主机的物理内存地址,这就需要保证嵌套页表的安全,因此,如何保证嵌套页表的安全性,成为了本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明实施例提供一种嵌套页表的维护方法、访问控制方法及相关装置,以防止虚拟机管理器直接修改嵌套页表,进而防止虚拟机管理器通过操纵嵌套页表的方式操纵虚拟机的内存数据,提高虚拟机内存数据的安全性。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例提供一种嵌套页表的维护方法,包括:
接收虚拟机管理器发出的内存变更请求;
判断所述内存变更请求是否满足预定的变更条件要求,若否,终止响应所述内存变更请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存变更请求,并更新嵌套页表中的内存地址映射关系。
本发明实施例还提供一种嵌套页表的访问控制方法,包括:
遍历虚拟机的虚拟机页表,所述虚拟机页表为虚拟机管理器访问的所述虚拟机的嵌套页表;
判断所述虚拟机页表与嵌套页表的一致性,所述嵌套页表为安全装置维护的所述虚拟机的嵌套页表;
当二者不一致时,终止所述虚拟机的运行。
本发明实施例还提供一种嵌套页表的维护装置,包括:
内存变更请求接收装置,适于接收虚拟机管理器发出的内存变更请求;
判断与执行装置,适于判断所述内存变更请求是否满足预定的变更条件要求,若否,终止响应所述内存变更请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存变更请求,并更新嵌套页表中的内存地址映射关系。
本发明实施例还提供一种嵌套页表的访问控制装置,包括:
遍历装置,适于遍历虚拟机的虚拟机页表,所述虚拟机页表为虚拟机管理器访问的所述虚拟机的嵌套页表;
一致性判断与执行装置,适于判断所述虚拟机页表与嵌套页表的一致性,所述嵌套页表为安全装置维护的所述虚拟机的嵌套页表;
当二者不一致时,终止所述虚拟机的运行。
本发明实施例还提供一种安全处理器,执行实现如上述的嵌套页表的维护方法的程序。
本发明实施例还提供一种安全处理器,执行实现如上述的嵌套页表的访问控制方法的程序。
本发明实施例还提供一种存储介质,所述存储介质存储有实现如上述的嵌套页表的维护方法。
本发明实施例还提供一种存储介质,所述存储介质存储有实现如上述的嵌套页表的访问控制方法。
本发明实施例还提供一种嵌套页表的维护***,包括:虚拟机管理器和如上所述的安全处理器。
本发明实施例还提供一种嵌套页表的访问控制***,包括:虚拟机管理器和如上所述的安全处理器。
对于本发明实施例所提供的嵌套页表的维护方法及装置,其中方法包括:接收虚拟机管理器发出的内存变更请求;判断所述内存变更请求是否满足预定的变更条件要求,若否,终止响应所述内存变更请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存变更请求,并更新嵌套页表中的内存地址映射关系。可以看出,本发明实施例所提供的嵌套页表的维护方法接收虚拟机管理器发出的内存变更请求,并经条件判断后,进行虚拟机的维护,虚拟机管理器不具备对嵌套页表的改写权限,仅具有读取权限,以实现在程序运行时,能够通过嵌套页表顺利找到对应的内存页面;并且,所有的虚拟机管理器对内存的变更都经过了判断,并对结果进行记录,防止了虚拟机管理器执行不满足预定的变更条件要求的内存变更,从而可以防止虚拟机管理器直接修改嵌套页表,防止虚拟机管理器通过操纵嵌套页表的方式操纵虚拟机的内存数据,提高了虚拟机内存数据的安全性。
对于本发明实施例所提供的嵌套页表的访问控制方法及装置,其中方法包括:遍历虚拟机的虚拟机页表,所述虚拟机页表为虚拟机管理器访问的所述虚拟机的嵌套页表;判断所述虚拟机页表与嵌套页表的一致性,所述嵌套页表为安全装置维护的所述虚拟机的嵌套页表;当二者不一致时,终止所述虚拟机的运行。可以看出,本发明提供的嵌套页表的访问控制方法,在虚拟机的程序运行时,通过遍历的方式,判断虚拟机的程序运行时,虚拟机管理器访问的虚拟机页表是否与安全装置所维护的嵌套页表一致,实现对嵌套页表的访问控制,防止虚拟机访问非对应虚拟机的内存,从而造成内存数据的泄露。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是虚拟化环境的一种***架构示意图;
图2是一种内存页面的虚拟地址到物理地址的多级页表结构示意图;
图3是一种页表中内存页面的映射关系示意图;
图4是本发明实施例提供的虚拟化环境的另一***架构示意图;
图5是在内存中划分安全内存和普通内存的示意图;
图6是哈希树的一种示意图;
图7是本发明实施例提供的嵌套页表的维护方法的一种可选流程示意图;
图8是本发明实施例提供的嵌套页表的维护方法的另一种可选流程示意图;
图9是本发明实施例提供的嵌套页表的维护方法的又一种可选流程示意图;
图10是本发明实施例提供的嵌套页表的维护方法的再一种可选流程示意图;
图11是本发明实施例提供的嵌套页表的维护方法的又一种可选流程示意图;
图12为本发明实施例所提供的嵌套页表的访问控制方法的一种可选流程:
图13为本发明实施例提供的嵌套页表的维护装置的一种可选框图;
图14为图13中内存变更请求接收装置的一种可选框图;
图15为图13中判断与执行装置的一种可选框图;
图16为本发明实施例提供的嵌套页表的访问控制装置的一种可选框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为一种可选示例,图1示出了虚拟化环境的***架构示意图,如图1所示,虚拟化环境的***架构可以包括:CPU(Central Processing Unit,中央处理器)核心1,内存控制器2,内存3。
其中,CPU核心1可通过软件形式配置虚拟机管理器11,并且通过虚拟化技术虚拟化出多台虚拟机12,该多台虚拟机12可由虚拟机管理器11进行内存3分配管理。
内存控制器2是控制内存3,并且使内存3与CPU核心1之间交换数据的硬件;在典型的计算机***中,内存控制器2负责处理内存访问请求,对于内存访问请求,内存控制器2可检测缓存是否记录内存访问请求对应的地址,若是,则从缓存读取该地址相应的数据,否则,查找该地址并读取该地址相应的数据。
内存3以内存页面为单位,通过虚拟机控制器11实现虚拟机12的内存分配。
为保证虚拟机12的程序运行时,虚拟机12需要能够顺利地找到为该程序运行而分配的内存页面,也就是通过找到内存页面对应的主机物理地址,需建立包含虚拟机虚拟地址到主机物理地址的映射关系的页表。
为方便存储,可以使用多级页表进行内存的管理。其中,末级页表中保存着虚拟地址到物理地址的映射,称为页表项;除末级页表外的其他页表中,上级页表保存着虚拟地址到下级页表的映射,称为页目录。
多级页表的结构可以参考图2,其中示出了一种内存页面的虚拟地址到物理地址的多级页表结构示意图。
由图中可以看出,该内存页面的地址通过32位地址描述,CR3是控制寄存器的一种示例,用来记录一级页表所在页地址,虚拟机管理器11通过一级页表的页地址找到一级页表。
给定虚拟地址,取其20~31位作为偏移,在一级页表中找到其所指向的条目,其数据包含二级页表所在的页地址。
取虚拟地址的12~19位作为偏移,在二级页表中找到其所指向的条目,其数据包含虚拟地址对应的物理地址的12~31位。
将虚拟地址的0~12位作为物理地址的0~12位,得到完整的物理地址。
图2所示的虚拟地址到物理地址的映射关系,既可以是虚拟机虚拟地址到虚拟机物理地址的映射关系,也可以是虚拟机物理地址(此种情况下,虚拟机物理地址可以理解为主机虚拟地址)到主机物理地址的映射关系。
图3示出了一种页表中内存页面的映射关系示意图。
从图3可以看出,从虚拟机的虚拟地址到主机的物理地址,包含了虚拟机虚拟地址到虚拟机物理地址的映射页表,该映射页表称为虚拟机映射页表,和虚拟机物理地址到主机物理地址的映射页表,该映射页表即为嵌套页表。
在进行虚拟机12初始化时,完成包含虚拟机映射页表和嵌套页表的初步构建。
当虚拟机12的程序运行时,虚拟机操作***到由其设置的控制器寄存器中找到虚拟机映射页表一级页表的内存地址,从而根据多级页表的存储逻辑找到虚拟机映射页表的多级页表,实现基于虚拟机映射页表实现虚拟机虚拟地址到虚拟机物理地址的查找,如不能找到对应的虚拟机物理页,则会出现缺页异常,虚拟机操作***会查找空闲的虚拟机物理页,并分配给相应程序,同时完善虚拟机映射页表。
同时,虚拟机管理器11会通过找到的虚拟机物理地址,根据嵌套页表查找主机物理地址,即:在虚拟机管理器11的控制寄存器找到嵌套页表的一级页表,并根据多级页表的存储逻辑,按照顺序在内存3中找到完整的主机物理地址,进而找到对应的内存页面,如不能找到对应的内存页面(主要原因是嵌套页表中的信息不完善),则也会出现缺页异常,虚拟机管理器11会查找空闲的主机内存页面,并分配给相应程序,同时完善嵌套页表。
图1所示的***架构可以是基于传统虚拟化技术实现,传统虚拟化技术并不对虚拟机的内存进行安全保护,因此虚拟机数据的安全性存在威胁,为了提升虚拟机数据的安全性,区别于传统虚拟化技术的安全虚拟化技术应运而生。
安全虚拟化技术是可对虚拟机的内存进行安全保护的虚拟化技术,例如可对虚拟机的内存进行加密、隔离的虚拟化技术;在一种示例中,通过安全虚拟化技术可对部分或所有虚拟机的内存进行加密,而且不同的虚拟机使用不同的密钥加密内存,并且虚拟机管理器也无法访问密钥;通过安全虚拟化技术,可防止物理主机、虚拟机管理器对虚拟机的数据访问和篡改,从而提升虚拟机的数据安全性。
作为安全虚拟化技术的一种可选示例,图4示出了本发明实施例提供的虚拟化环境的另一***架构示意图,结合图1和图4所示,图4所示***架构相比于图1所示***架构还可以包括:安全处理器4。
安全处理器4为本发明实施例专门设置的负责处理与虚拟机的安全相关操作的处理器,例如,安全处理器4可进行内存加解密等;在本发明实施例中,虚拟机管理器11可配置与安全处理器4相通信的API(Application Programming Interface,应用程序编程接口)接口,实现虚拟机管理器11与安全处理器4的数据交互。
在本发明实施例中,内存控制器2可配置加密引擎21,加密引擎21可存储密钥。
安全处理器4可通过加密引擎21存储的密钥为部分或所有虚拟机的内存进行加密,并且不同的虚拟机的内存使用不同的密钥进行加密;可选的,为了更好地预防重放攻击,虚拟机的内存中的不同物理地址可使用不同的加密参数;需要说明的是,重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗***的目的,主要在身份认证场景下破坏认证的正确性。
可选的,图4所示***架构中,CPU核心1,内存控制器2,安全处理器4可集成在SOC(System on Chip,片上***)上;显然,SOC仅是计算机体系结构的一种可选形式,本发明实施例也可支持其他形式的计算机体系结构(例如,处理器和南桥相耦合的计算机体系结构,分设南桥和北桥的计算机体系结构等),此时,CPU核心1,内存控制器2,内存3,和安全处理器4可相应部署,此处不再展开说明。
需要说明的是,本发明实施例可在内存3中划分安全内存(空间)和普通内存(空间),一般的,安全内存的安全性高于普通内存,例如,安全内存可以采用安全保护机制(如,使用SEV技术对虚拟机的内存进行加密)。
示例的,图5示出了在内存中划分安全内存和普通内存的示意图,作为一种可选实现,本发明实施例可在内存中划分出若干内存区域(该若干内存区域可以是内存的部分空间,也可以是内存的全部空间),通过记录所划分的若干内存区域的相关信息,并将所划分的该若干内存区域标记为安全内存(如通过硬件标记安全内存),并采用安全保护机制进行保护(如安全内存可使用加密,隔离等机制进行保护,最为典型的,受安全处理器4保护的内存可以认为是安全内存的一种示例);内存中未标记的内存区域可称为普通内存,普通内存一般未采用安全保护机制进行保护;安全内存的安全性可高于普通内存。
作为一种可选示例,安全内存的大小可大于普通内存,当然,本发明实施例也可支持安全内存的大小可小于普通内存;需要说明的是,图5所示示例是将内存的部分内存区域标记为安全内存,本发明实施例也可支持将内存的全部内存区域标记为安全内存。
可选的,使用安全保护机制的虚拟机可称为安全虚拟机,如使用安全内存的虚拟机可称为安全虚拟机,未使用安全保护机制的虚拟机可称为普通虚拟机,如使用普通内存的虚拟机可称为普通虚拟机,一般的,安全虚拟机的安全性可高于普通虚拟机。
下文描述的内存页面可以包含安全内存页面,虚拟机可以是安全虚拟机。而嵌套页表存储于安全内存中,则为安全嵌套页表。
可以理解的是,在一种可选示例中,图4所示***架构可通过虚拟机管理器实现虚拟机的内存管理,并进行嵌套页表的维护。
不论是基于传统虚拟化技术实现的***架构,还是基于安全虚拟化技术实现的***架构,为保证虚拟机12的程序运行时,虚拟机12需要能够顺利地找到为该程序运行而分配的内存页面,也就是通过找到内存页面对应的主机物理地址,因此,需维护包含虚拟机物理地址到主机物理地址的映射关系的页表。
然而,在基于安全虚拟化技术实现虚拟机的场景下,本发明的发明人发现,安全虚拟化技术虽然能够保障虚拟机的数据安全,但在通过虚拟机管理器进行内存的分配和管理、并进行嵌套页表的维护工作时,至少存在如下问题:
虚拟机管理器进行虚拟机的内存分配管理时,虚拟机管理器负责控制嵌套页表,而由于虚拟机管理器的代码量很大,易存在漏洞和缺陷,此种情况下,恶意的虚拟机管理器(存在漏洞和缺陷的虚拟机管理器)可以通过操纵嵌套页表的方式,操纵虚拟机所使用的内存中的数据;或者通过对嵌套页表的信息泄露(比如物理地址的使用情况)进行侧信道攻击,使得恶意程序能够操纵虚拟机的数据,从而造成即使通过加密虚拟化技术,对部分或所有虚拟机的内存进行了加密,而且不同的虚拟机使用不同的密钥加密内存的情况下,仍然可能出现通过对嵌套页表的操纵或攻击操纵虚拟机的数据的情况,对虚拟机数据的安全带来潜在的威胁。
为解决上述问题,本发明实施例提供一种嵌套页表的维护方法,通过首先对内存变更时的条件判断,再确定是否更新嵌套页表的方式进行嵌套页表的维护,以避免恶意虚拟机控制器或恶意程序对嵌套页表的操纵和攻击。
需要说明的是,本文所述的方法可以通过安全级别较高的安全装置执行,比如:安全处理器、赋予维护嵌套页表权限的特殊虚拟机等。
以下以执行本发明所提供的嵌套页表的维护方法的装置为安全管理器为例进行说明,当然在其他实施例中,可以利用其他软件或硬件设备执行本发明所提供的嵌套页表的维护方法。
安全处理器可以是物理主机的芯片硬件***中高安全级别的部件,在一种可选实现中,安全处理器可拥有比虚拟机管理器更高的权限,安全处理器和其控制的软件可由生产商在芯片生产过程中定制。
可以理解的是,在虚拟机整个生命过程中,虚拟机会有内存页面变更的需求,此时,虚拟机管理器首先发出内存变更请求,一方面告知需要为某个虚拟机变更内存,另一方面,发送需要变更的内存页面的地址信息。
在一种可选实现中,当执行本发明所提供的嵌套页表的维护方法的装置为安全虚拟机时,本发明实施例可以透过设置虚拟机管理器与安全处理器之间的交互接口,实现信息的传输,可选地,交互接口可以为前述的API接口。
具体地,虚拟机的内存变更请求可以有多种,比如:
在一种实施例中,内存变更请求可以为虚拟机初始化过程中的内存页面的分配请求。
在另一种实施例中,内存变更请求可以为虚拟机的程序运行过程中内存页面缺失时,虚拟机管理器给虚拟机的程序分配空闲的内存页面的请求。
在其他实施例中,程序运行完成后,虚拟机管理器回收已分配的内存页面的请求。
或者,在一实施例中,虚拟机管理器出于某种目的,比如:为了能够有效使用虚拟机有限的内存,将物理内存页面中的数据交换到硬盘等其他存储介质中的内存页面交换分区请求。
以及在内存页面交换分区后,基于需要,将交换分区的数据再装载回内存,以实现访问需要的恢复请求。
当安全处理器接收到虚拟机管理器的内存变更请求后,判断内存变更请求是否满足预先存储的变更条件要求,如不满足,则终止响应内存变更请求,不执行内存变更,并维持嵌套页表中的内存地址的映射关系;如满足,则响应内存变更请求,执行内存变更,并更新嵌套页表中的内存地址映射关系,从而可以防止虚拟机管理器篡改嵌套页表的内存地址映射关系。
具体地,嵌套页表可以存储于普通内存中也可以存储于安全内存中,如果存储于安全内存中,则嵌套页表为安全嵌套页表,可以进一步提高嵌套页表的安全性。
在一种具体实施方式中,上述响应内存变更请求可以为向虚拟机管理器发出允许内存变更的指令,即安全处理器接收到虚拟机管理器的内存变更请求后,判断内存变更请求是否满足安全处理器的预先存储的变更条件要求,如果不满足,则安全处理器向虚拟机管理器发出禁止变更的指令,同时维持嵌套页表中的内存地址映射关系不变;如果满足,则安全处理器向虚拟机管理器发出允许变更的指令,同时更新嵌套页表中的内存地址映射关系,将变更后的内存页面的物理地址与虚拟机的物理地址之间的映射关系更新成最新的信息。
在另一种具体实施方式中,上述响应内存变更请求可以为安全处理器直接执行内存变更,即安全处理器接收到虚拟机管理器的内存变更请求后,判断内存变更请求是否满足安全处理器的预先存储的变更条件要求,如果不满足,则安全处理器不执行内存变更的指令,同时维持嵌套页表中的内存地址映射关系不变;如果满足,则安全处理器执行内存变更的指令,同时更新嵌套页表中的内存地址映射关系,将变更后的内存页面的物理地址与虚拟机的物理地址之间的映射关系更新成最新的信息。
具体地,在一种可选实现中,变更条件要求可以为内存页面的权限信息;在另一种实施例中,变更条件要求可以为程序执行是否执行完成的信息;在其他实施例中,变更条件要求还可以为交换页面的权限信息(比如:内存页面的数据是否能进行交换分区)。
在另一种具体实施方式中,当虚拟机管理器出于某种目的,比如:为了能够有效使用虚拟机有限的内存,会将物理内存页面中的数据交换到硬盘等其他存储介质中,然后在必要时再装载回内存,以实现访问需要时,需要一方面防止恢复的数据改变存储地址,另一方面,防止从内存页面中交换到交换分区中的虚拟机数据被恶意篡改。因此,变更条件要求还可以为恢复请求中的内存页面虚拟机物理地址信息与所述交换分区请求中的内存页面虚拟机物理地址信息是否相同,以及所述恢复请求中的内存页面数据信息与所述交换分区请求中的内存页面数据信息是否相同。
在一种具体实施例中,虚拟机管理器所发出的内存变更请求为内存页面的分配请求时,即要给虚拟机B分配的内存页面A时,安全处理器可以首先判断内存页面A是普通页面还是安全页面,然后判断虚拟机B为安全虚拟机还是普通虚拟机,当内存页面A为安全页面,虚拟机B为普通虚拟机时,根据安全页面不能被分配给普通虚拟机的变更条件要求,确定内存页面A不能分配给虚拟机B,从而向虚拟机管理器发出禁止变更的指令或者直接不执行内存变更的指令,并维持嵌套页表中原有的内存地址映射关系;而当虚拟机B为安全虚拟机时,根据安全页面能被分配给安全虚拟机的变更条件要求,确定内存页面A可以分配给虚拟机B,从而向虚拟机管理器发出允许变更指令或者直接为虚拟机B分配内存页面A,同时更新嵌套页表中这个条目的内存地址信息。
在一种具体实施方式中,当虚拟机执行完程序运行,需要将其所分配的内存页面回收时,虚拟机管理器向安全处理器发送内存页面回收的内存变更请求,安全处理器接收到内存变更请求后,判断该虚拟机的程序是否执行完闭,如执行完毕,则向虚拟机管理器发出允许回收的指令或执行内存页面的回收,虚拟机管理器回收内存页面,安全处理器变更嵌套页表的内存地址映射关系,否则,则不执行,并维持原有嵌套页表的内存地址。
当然,内存页面回收条件也可以为所要回收的内存页面是否是分配给对应虚拟机的内存页面。
在另一种具体实施方式中,当虚拟机管理器发出交换分区请求时,安全处理器首先判断所需要交换的内存页面能否进行交换,如可以,则记录交换分区的内存页面的数据信息和内存页面虚拟机物理地址,向虚拟机管理器发出允许交换分区指令,并更新嵌套页表中的内存地址映射关系,将交换的内存页面的映射关系删除;如果不可以,则向虚拟机管理器发出禁止交换分区指令,并维持嵌套页表中的内存地址映射关系。
可见,本发明实施例所提供的嵌套页表的维护方法,通过安全处理器记录需要交换分区请求中的内存页面的相关信息后,虚拟机管理器再将该页面中的数据进行交换,以便页面恢复的时候能够进行比对验证。
具体地,交换分区请求中的内存页面的相关信息可以包括:内存页面虚拟机物理地址信息和内存页面数据信息,其中,内存页面虚拟机物理地址信息用于确定内存页面的相关地址内容,以确保页面恢复时将页面恢复到原来的地址;内存页面数据信息用于确定内存页面上存储的数据信息,以防止页面数据被恶意篡改。
当虚拟机管理器发出内存页面交换分区恢复请求时,安全处理器首先判断所需要交换的内存页面能否进行恢复,即判断所述恢复请求中的内存页面虚拟机物理地址信息与所述交换分区请求中的内存页面虚拟机物理地址信息是否相同,以及所述恢复请求中的内存页面数据信息与所述交换分区请求中的内存页面数据信息是否相同,如果二者均相同,则向虚拟机管理器发出允许交换分区恢复指令,并更新嵌套页表中的内存地址映射关系,将交换的内存页面的内存地址映射关系写入嵌套页表;如果二者中至少一者不相同即恢复请求中的内存页面虚拟机物理地址信息与所述交换分区请求中的内存页面虚拟机物理地址信息不相同,或者所述恢复请求中的内存页面数据信息与所述交换分区请求中的内存页面数据信息不相同,则向虚拟机管理器发出禁止交换分区恢复的指令,并维持原有的嵌套页表的信息不变。
可选的,在本发明实施例中,虚拟机管理器可辅助完成将内存中的交换数据交换到交换分区。
可以理解的是,在使用交换分区功能时,交换数据是以内存页面为单位被交换到交换分区,即从内存中将交换数据交换到交换分区是:将内存中的内存页面的虚拟机数据,交换到交换分区;需交换到交换分区的内存页面的虚拟机数据可以认为是,内存中不活跃(如使用频次较低等)的内存页面的虚拟机数据;示例的,在安全内存场景下,可以是将安全内存页面的虚拟机数据,交换到交换分区。
内存页面可以是安全内存页面,虚拟机可以是安全虚拟机;另一方面,本发明实施例也可支持下文描述的内存页面为普通内存的内存页面,虚拟机为普通虚拟机。
作为一种可选实现,从内存页面交换到交换分区的交换数据可以是,内存页面的页面内容和附属信息,即对于每个需交换数据的内存页面,需将内存页面的页面内容和附属信息交换到交换分区。
也就是说,内存页面的交换数据信息包括内存页面的页面内容和附属信息,即除了将内存页面的页面内容交换到交换分区,还需将内存页面的附属信息交换到交换分区。
进一步,内存页面的页面内容可经过加密后交换到交换分区,内存页面的部分附属信息可经过加密后交换到交换分区,而另一部分附属信息可不经过加密,直接交换到交换分区;当然,本发明实施例也可支持内存页面的全部附属信息均经过加密后交换到交换分区;显然,对内存页面的页面内容和部分或全部附属信息进行加密,再交换到交换分区仅是一种可选方式,本发明实施例也可支持将不经过加密的内存页面的页面内容和附属信息,直接交换到交换分区。
示例的,下表1示出了附属信息的一种示例内容,并同时示出了部分需加密的附属信息和部分不需加密的附属信息,当然表1内容仅是示例说明,本发明实施例也可支持其他形式的附属信息。
表1
需要指出的是,表1中所示的KEY_ID是被用于密钥派生算法((KDF)来产生每个内存页面专用的数据加密密钥,以实现安全处理器对虚拟机的内存进行加密,使得不同内存页面的虚拟机数据以不同的密钥进行加密,提高了虚拟机内存的安全性;可选的,KDF算法的基础密钥可以在虚拟机启动时随机动态生成。
在一种可选实现中,本发明实施例可利用哈希树(Hash Tree)对内存交换到交换分区的交换数据进行保护,以防止交换分区的交换数据被篡改。其中,哈希树可以认为是存储哈希值的树状结构;可选的,作为一种示例,哈希树的一种表现形式可以是Merkle(默克尔)树;可选的,本发明实施例也可将交换数据加密后再交换到交换分区。
在本发明实施例中,哈希树的叶子节点的数据可以是所对应的内存页面交换到交换分区的交换数据的哈希值,非叶子节点的数据可以是该非叶子节点所对应的子节点的哈希值综合后的哈希值(例如,一个非叶子节点的数据是,该非叶子节点对应的子节点的哈希值联合构成的数据的哈希值),从而哈希树的数据可保存到交换分区,而哈希树的根节点的数据可由安全处理器保存,以确保除安全处理器,没有其他硬件或软件可以篡改哈希树的根节点的数据,达到对内存交换到交换分区的交换数据的完整性保护(即对内存交换到交换分区的交换数据进行哈希保护),有效的防止恶意虚拟机管理器对内存交换到交换分区的交换数据的恶意篡改或重放攻击。
作为一种可选实现,在使用交换分区功能时,本发明实施例使用哈希树的一种可选示意可如图6所示,图6所示是以二叉树的哈希树为示例进行说明;二叉树是每个节点最多具有两个子节点的树状结构,当然,本发明实施例也可支持其他形式的哈希树结构,本发明实施例并不限制哈希树的每个节点所具有的子节点数量,二叉树仅是本发明实施例提供的哈希树的一种可选形式。
在使用交换分区功能时,哈希树的一个叶子节点的数据可以是一个被保护的内存页面的交换数据的哈希值,可选的,哈希值的一个叶子节点可对应一个内存页面或多个内存页面。
示例的,哈希树的一个叶子节点的数据可以是所对应的内存页面的页面内容和附属信息的哈希值,即哈希树的一个叶子节点的可存储所对应的内存页面的页面内容和附属信息的哈希值;进一步,哈希树的一个叶子节点的数据可以是所对应的内存页面加密后的页面内容和附属信息的哈希值,即在该示例中,本发明实施例除对需交换到交换分区的内存页面的页面内容和附属信息进行加密保护外,还可通过哈希树对内存页面的页面内容和附属信息进行完整性保护;需要说明的是,内存页面的页面内容和附属信息仅是内存页面的交换数据的一种可选形式,本发明实施例也可支持直接将内存页面的页面内容作为交换数据。
作为一种可选示例,结合图6所示,以交换分区支持8个内存页面,哈希树为二叉树,且哈希树的一个叶子节点对应一个内存页面为例;图6中,叶子节点Node11可以存储所对应的内存页面P0的交换数据的哈希值Hash11,叶子节点Node12可以存储所对应的内存页面P1的交换数据的哈希值Hash12,叶子节点Node13可以存储所对应的内存页面P2的交换数据的哈希值Hash13,叶子节点Node14可以存储所对应的内存页面P3的交换数据的哈希值Hash14,叶子节点Node15可以存储所对应的内存页面P4的交换数据的哈希值Hash15,以此类推。
可选的,更为具体的,叶子节点Node11可以存储所对应的内存页面P0加密后的页面内容和附属信息的哈希值Hash11,叶子节点Node12可以存储所对应的内存页面P1加密后的页面内容和附属信息的哈希值Hash12,以此类推。
在本发明实施例中,哈希树中任何非叶子节点存储所对应的子节点的哈希值综合后的哈希值,可选的,一节点综合其子节点的哈希值所使用的Hash函数可以采用SM3或SHA256等Hash函数;叶子节点Node11和Node12的父节点为Node21,即节点Node21对应的子节点为Node11和12,节点Node21可存储其子节点Node11和Node12的哈希值综合后的哈希值,示例的,Node21的哈希值Hash21可以为Hash(Hash11,Hash12)。
同理,节点Node22可存储其子节点Node13和Node14的哈希值综合后的哈希值Hash22,示例的,Node22的哈希值Hash22可以为Hash(Hash13,Hash14);节点Node23可存储其子节点的哈希值综合后的哈希值Hash23,在本示例中,节点Node23的一子节点Node15的哈希值为Hash15,另一子节点的哈希值为000000,该另一子节点的哈希值代表其对应的内存页面没有被使用(即该另一子节点对应的内存页面未存储虚拟机数据)。
节点Node31为节点Node21和Node22的父节点,节点Node31可存储其子节点Node21和Node22的哈希值综合后哈希值Hash31,示例的,Node31的哈希值Hash31可以为Hash(Hash21,Hash22)。
同理,节点Node32可存储其子节点的哈希值综合后的哈希值Hash32,在本示例中,节点Node32的一子节点Node23的哈希值为Hash23,另一子节点的哈希值为00000000000000,该另一子节点的哈希值代表该另一子节点所属的内存页面没有被使用,此处指示的该另一子节点所对应的所有叶子节点的内存页面未存储虚拟机数据。
节点Node4为哈希树的根节点,根节点Node4可存储其子节点Node31和Node32的哈希值综合后的哈希值Hash4,示例的,Node4的哈希值Hash4可以为Hash(Hash31,Hash32)。
将哈希树根节点Node4的数据作为交换分区页面的数据信息由安全处理器保存,确保除安全处理器,没有其他硬件或软件可以篡改哈希树的根节点的数据信息,从而实现对交换分区的交换数据信息的保护。
可以看出,本发明实施例所提供的嵌套页表的维护方法,接收虚拟机管理器发出的内存变更请求,并经条件判断后,才进行虚拟机的维护,虚拟机管理器不具备对嵌套页表的改写权限,仅具有读取权限,以实现在程序运行时,能够通过嵌套页表顺利找到对应的内存页面;并且所有的虚拟机管理器对内存的变更都经过了判断,并对结果进行记录,防止了虚拟机管理器执行不满足预定的变更条件要求的内存变更,从而可以防止虚拟机管理器直接修改嵌套页表,防止虚拟机管理器通过操纵嵌套页表的方式操纵虚拟机的内存数据,提高了虚拟机内存数据的安全性。
当然,为了防止在虚拟机的程序运行过程中,出现虚拟机管理器存在漏洞而没有按照经过安全判断维护的嵌套页表建立内存页面的映射关系的情况,本发明实施例还公开了一种嵌套页表的访问控制方法,在此也以具体的执行装置为安全处理器为例进行说明。
在一种具体实施例中,本发明所提供的嵌套页表的访问控制方法,首先遍历虚拟机的虚拟机页表,所述虚拟机页表为虚拟机管理器访问的所述虚拟机的嵌套页表;然后判断所述虚拟机页表与嵌套页表的一致性,所述嵌套页表为安全处理器维护的所述虚拟机的嵌套页表;当二者一致时,更换所述虚拟机管理器的虚拟机,触发执行遍历虚拟机的虚拟机页表的步骤;当二者不一致时,终止所述虚拟机的运行。
其中,虚拟机页表即为虚拟机在执行时,虚拟机管理器所访问的虚拟机的嵌套页表。当虚拟机管理器所访问的虚拟机的嵌套页表(本文中称为:虚拟机页表)为安全处理器所维护的嵌套页表(本文中称为:嵌套页表)的拷贝件时,就需要确定二者的一致性。
通过对虚拟机页表的遍历与比对判断,可以发现虚拟机页表是否与嵌套页表一致,从而在不一致时及时终止虚拟机的运行,保证内存访问的安全性。
作为本发明实施例公开内容的一种可选实现,图7示出了本发明实施例提供的嵌套页表的维护方法的一种可选流程,基于图7所示方法,本发明实施例可实现将防止虚拟机管理器篡改嵌套页表。
为方便说明,以下各实施例均以安全管理器为执行本发明所提供的嵌套页表的维护方法的装置为例进行说明。
参照图7所示,该方法流程可以包括:
步骤S10:接收虚拟机管理器发出的内存变更请求。
需要说明的是,安全处理器可以是物理主机的芯片硬件***中高安全级别的部件,在一种可选实现中,安全处理器可拥有比虚拟机管理器更高的权限,安全处理器和其控制的软件可由生产商在芯片生产过程中定制。
在虚拟机整个生命过程中,虚拟机会有内存页面变更的需求,此时,虚拟机管理器首先向安全处理器发出内存变更请求,一方面告知安全处理器,需要为某个虚拟机变更内存,另一方面,将需要变更的内存页面的地址信息发送给安全处理器。
在一种可选实现中,本发明实施例可以透过设置虚拟机管理器与安全处理器之间的交互接口,实现信息的传输,可选地,交互接口可以为SEVAPI。
具体地,虚拟机的内存变更请求可以有多种,比如:
在一种实施例中,虚拟机创建过程中的内存页面的分配请求。
在另一种实施例中,虚拟机的程序运行过程中物理页缺失时,虚拟机管理器给虚拟器的程序分配空闲的内存页面的请求。
在其他实施例中,程序运行完成后物理页回收时,虚拟机管理器回收已分配的内存的请求。
或者在一实施例中,虚拟机管理器出于某种目的,比如:为了能够有效使用虚拟机有限的内存,将物理内存页面中的数据交换到硬盘等其他存储介质中的交换分区请求。
以及在必要时,将交换分区的数据再装载回内存,以实现访问需要的恢复请求。
步骤S11:判断所述内存变更请求是否满足预定的变更条件要求,若是,转向步骤S12,若否,转向步骤S13。
在一种可选实现中,变更条件要求可以为内存页面的权限信息;在另一种实施例中,变更条件要求可以为程序执行是否执行完成的信息;在其他实施例中,变更条件要求还可以为交换页面的权限信息(比如:内存页面的数据是否可以进行交换分区)。
在另一种具体实施方式中,当虚拟机管理器出于某种目的,比如:为了能够有效使用虚拟机有限的内存,会将物理内存页面中的数据交换到硬盘等其他存储介质中,然后在必要时再装载回内存,以实现访问需要时,需要一方面防止恢复的数据改变存储地址,另一方面,防止从内存页面中交换到交换分区中的虚拟机数据被恶意篡改。因此,变更条件要求还可以为恢复请求中的内存页面虚拟机物理地址信息与所述交换分区请求中的内存页面虚拟机物理地址信息是否相同,以及所述恢复请求中的内存页面数据信息与所述交换分区请求中的内存页面数据信息是否相同。
通过判断内存变更请求是否满足预定的内存变更条件要求,进而基于判断的结构,执行不同的步骤。如果内存变更请求满足预定的变更条件要求,则执行步骤S12,即响应内存变更请求,并更新嵌套页表中的内存地址映射关系;如果内存变更请求不能满足预定的变更条件要求,则执行步骤S13,即终止响应所述内存变更请求,并维持所述嵌套页表中的内存地址映射关系。
步骤S12:响应所述内存变更请求,并更新嵌套页表中的内存地址映射关系。
具体地,嵌套页表可以存储于普通内存中也可以存储于安全内存中,如果存储于安全内存中,则嵌套页表为安全嵌套页表,可以进一步提高嵌套页表的安全性。
可以理解的是,根据不同的配置,响应内存变更请求可以为向虚拟机管理器发出允许内存变更的指令,也可以为直接进行内存的变更。
步骤S13:终止响应所述内存变更请求,并维持所述嵌套页表中的内存地址映射关系。
基于前述描述可以看出,终止响应内存变更请求也可以根据配置不同,有不同的方式,在一实施例中,可以向虚拟机管理器发出终止内存变更的指令;在另一实施例中,可以为终止内存的变更。
因此,通过安全处理器进行嵌套页表的维护的情况下,虚拟机管理器不具备对嵌套页表的改写权限,但具有读取权限,以实现在程序运行时,能够通过嵌套页表顺利找到对应的内存页面;而安全处理器则同时具备改写和读取的权限,实现在需要对嵌套页表维护时进行改写,并在虚拟机的程序运行时,通过遍历的方式,判断虚拟机的程序运行是否与嵌套页表一致,实现对嵌套页表的访问控制。
通过安全处理器维护嵌套页表,所有的虚拟机管理器对内存的变更都经过了安全处理器判断,并对结果进行记录,防止了虚拟机管理器执行不满足预定的变更条件要求的内存变更,从而可以防止虚拟机管理器直接修改嵌套页表,防止虚拟机管理器通过操纵嵌套页表的方式操纵虚拟机的内存数据,提高了虚拟机内存数据的安全性。
可以看出,本发明实施例所提供的嵌套页表的维护方法,接收虚拟机管理器发出的内存变更请求,并经条件判断后,才进行虚拟机的维护,虚拟机管理器不具备对嵌套页表的改写权限,仅具有读取权限,以实现在程序运行时,能够通过嵌套页表顺利找到对应的内存页面;并且所有的虚拟机管理器对内存的变更都经过了判断,并对结果进行记录,防止了虚拟机管理器执行不满足预定的变更条件要求的内存变更,从而可以防止虚拟机管理器直接修改嵌套页表,防止虚拟机管理器通过操纵嵌套页表的方式操纵虚拟机的内存数据,提高了虚拟机内存数据的安全性。
下面基于不同的具体情况,分别说明嵌套页表的维护方法。
请参考图8,图8是本发明实施例提供的嵌套页表的维护方法的另一种可选流程。
由图中可以看出,本发明实施例所提供的嵌套页表的维护方法包括:
步骤S20:接收虚拟机管理器发出的内存页面分配请求。
虚拟机要运行程序,就需要虚拟机管理器为其分配内存,在一种实施例中,在虚拟机初始化的过程中,虚拟机管理器为虚拟机分配内存,发出内存页面的分配请求,并请求构建初步的与该虚拟机对应的嵌套页表。
在另一种实施例中,虚拟机的程序运行过程中基于初始的嵌套页表寻找主机物理地址,当无法根据嵌套页表中的虚拟机物理地址找到对应得主机物理地址时,说明物理内存页面缺失,虚拟机管理器需要给虚拟机的程序分配物理内存页面,由于嵌套页表的维护由安全处理器执行,从而虚拟机管理器也会发送内存页面分配请求。
而安全处理器则接收虚拟机管理器发出的内存页面分配请求,为进行后续的工作做好准备。
容易理解的是,内存页面分配请求中包含请求分配的内存页面的信息,比如:内存页面地址、内存页面的权限等,以及虚拟机的信息,比如:虚拟机的状态、虚拟机的安全级别等。
步骤S21:判断所述内存页面分配请求是否满足预定的内存页面分配条件要求,若是,转向步骤S22,若否,转向步骤S23;
当接收到的内存变更请求为内存页面分配请求时,相应的变更条件要求也就成为内存页面分配条件要求。
在一种可选实现中,内存页面分配条件要求可以为内存页面的权限信息,比如内存页面是否为安全内存页面,与虚拟机的安全性是否匹配,或内存页面是否为加密内存页面,且是否为虚拟机可以访问的内存页面。
如果内存页面分配请求满足预定的内存页面分配条件要求,则执行步骤S22,即响应所述内存页面分配请求,并更新嵌套页表中的内存地址映射关系;如果内存页面分配请求不满足预定的内存页面分配条件要求,则执行步骤S23,即终止响应所述内存页面分配请求,并维持所述嵌套页表中的内存地址映射关系。
在一种具体实施例中,虚拟机管理器所发出的内存变更请求所要给虚拟机B分配的内存页面A,时,安全处理器可以首先判断内存页面A是普通页面还是安全页面,然后判断虚拟机B为安全虚拟机还是普通虚拟机,当然判断虚拟机B是否为安全虚拟机和判断内存页面A是否为内存页面的顺序可以更换,当内存页面A为安全页面,虚拟机B为普通虚拟机时,根据安全页面不能被分配给普通虚拟机的变更条件要求,确定内存页面A不能分配给虚拟机B,从而向虚拟机管理器发出禁止变更的指令或者直接不执行内存变更的指令,并维持嵌套页表中原有的内存地址映射关系(步骤S23);而当虚拟机B为安全虚拟机时,根据安全页面能被分配给安全虚拟机的变更条件要求,确定内存页面A可以分配给虚拟机B,从而向虚拟机管理器发出允许变更指令或者直接为虚拟机B分配内存页面A,同时更新嵌套页表中这个条目的内存地址信息(步骤S22)。
步骤S22:响应所述内存页面分配请求,并更新嵌套页表中的内存地址映射关系。
具体地,根据不同的配置,响应内存变更请求可以为向虚拟机管理器发出允许内存页面分配给该虚拟机的指令,也可以为直接为该虚拟机进行内存的分配。步骤S23:终止响应所述内存页面分配请求,并维持所述嵌套页表中的内存地址映射关系。
当然,终止响应内存变更请求也可以根据配置不同,有不同的方式,在一实施例中,可以向虚拟机管理器发出禁止内存页面分配给该虚拟机的指令;在另一实施例中,可以安全处理器直接终止将该内存页面分配给该虚拟机。
通过安全处理器维护嵌套页表,所有的虚拟机管理器对内存页面的分配都经过了安全处理器判断,并对结果进行记录,防止了虚拟机管理器将不能分配给某一虚拟机的内存页面分配给虚拟机,并且防止虚拟机管理器直接修改嵌套页表,降低了虚拟机管理器通过操纵嵌套页表的方式操纵虚拟机的内存数据的风险,提高了虚拟机内存数据的安全性。
请参考图9,图9是本发明实施例提供的嵌套页表的维护方法的又一种可选流程。
由图中可以看出,本发明实施例所提供的嵌套页表的维护方法包括:
步骤S30:接收虚拟机管理器发出的内存页面回收请求。
虚拟机完成程序运行或者需要终止虚拟机时,为保证内存页面的利用率,就回收分配给虚拟机或虚拟机的内存页面,由于嵌套页表的维护由安全处理器执行,从而虚拟机管理器会发送内存页面回收请求。
而安全处理器则接收虚拟机管理器发出的内存页面回收请求,为进行后续的工作做好准备。
容易理解的是,内存页面回收请求中包含请求回收的内存页面的信息,比如:内存页面地址、内存页面的权限等,以及虚拟机的信息,比如:虚拟机的状态、虚拟机的安全级别等。
步骤S31:判断所述内存页面回收请求是否满足预定的内存页面回收条件要求,若是,转向步骤S32,若否,转向步骤S33;
当接收到的内存变更请求为内存页面回收请求时,相应的变更条件要求也就成为内存页面回收条件要求。
在一种可选实现中,内存页面回收条件要求可以为使用该内存页面的程序是否完成运行,或者使用该内存页面的虚拟机是否已经终止执行。
如果内存页面回收请求满足预定的内存页面回收条件要求,则执行步骤S32,即响应所述内存页面回收请求,并更新嵌套页表中的内存地址映射关系,即将被回收的内存页面的地址映射关系删除;如果内存页面回收请求不满足预定的内存页面回收条件要求,则执行步骤S33,即终止响应所述内存页面回收请求,并维持所述嵌套页表中的内存地址映射关系。
步骤S32:响应所述内存页面回收请求,并更新嵌套页表中的内存地址映射关系。
具体地,根据不同的配置,响应内存变更请求可以为向虚拟机管理器发出允许内存页面回收的指令,也可以为直接进行内存页面的回收。
步骤S33:终止响应所述内存页面回收请求,并维持所述嵌套页表中的内存地址映射关系。
当然,终止响应内存变更请求也可以根据配置不同,有不同的方式,在一实施例中,可以向虚拟机管理器发出禁止内存页面回收的指令;在另一实施例中,可以安全处理器直接终止该内存页面的回收。
通过安全处理器维护嵌套页表,所有的虚拟机管理器对内存页面的回收都经过了安全处理器判断,并对结果进行记录,防止了虚拟机管理器将不能回收的内存页面回收,并且防止虚拟机管理器直接修改嵌套页表,降低了虚拟机管理器通过操纵嵌套页表的方式操纵虚拟机的内存数据的风险,提高了虚拟机内存数据的安全性。
请参考图10,图10是本发明实施例提供的嵌套页表的维护方法的再一种可选流程。
由图中可以看出,本发明实施例所提供的嵌套页表的维护方法包括:
步骤S40:接收虚拟机管理器发出的内存页面交换分区请求。
虚拟机管理器为了能够有效使用虚拟机有限的内存,会将物理内存页面中的数据交换到硬盘等其他存储介质中,此时,虚拟机管理器会向安全处理器发送内存页面交换分区请求。
而安全处理器则接收虚拟机管理器发出的内存页面交换分区请求,为进行后续的工作做好准备。
容易理解的是,内存页面交换分区请求中包含请求交换分区的内存页面的信息,比如:内存页面地址(包括内存页面的虚拟机物理地址和主机物理地址)、内存页面数据信息等,以及虚拟机的信息,比如:虚拟机的标识、虚拟机的状态、虚拟机的安全级别等。
步骤S41:判断所述内存页面交换分区请求是否满足预定的内存页面交换分区条件要求,若是,转向步骤S42,若否,转向步骤S43;
当接收到的内存变更请求为内存页面交换分区请求时,相应的变更条件要求也就成为内存页面交换分区条件要求。
在一种可选实现中,内存页面交换分区条件要求可以为该内存页面当前是否正在被使用;在其他实施例中,内存页面交换分区条件要求可以为该内存页面是否是可以交换的等级等等。
如果内存页面交换分区请求满足预定的内存页面交换分区条件要求,则执行步骤S42,即记录所述交换分区请求中的内存页面虚拟机物理地址信息和内存页面数据信息,并执行步骤S44,即响应所述内存页面交换分区请求,并更新嵌套页表中的内存地址映射关系,即将被交换分区的内存页面的地址映射关系删除;如果内存页面交换分区请求不满足预定的内存页面交换分区条件要求,则执行步骤S43,即终止响应所述内存页面交换分区请求,并维持所述嵌套页表中的内存地址映射关系。
步骤S42:记录所述交换分区请求中的内存页面虚拟机物理地址信息和内存页面数据信息。
安全处理器记录所述交换分区请求中的内存页面虚拟机物理地址信息和内存页面数据信息,以便待需要将交换分区的内存页面恢复时能够确定是否满足恢复要求。
步骤S44:响应所述内存页面交换分区请求,并更新嵌套页表中的内存地址映射关系。
具体地,根据不同的配置,响应内存变更请求可以为向虚拟机管理器发出允许内存页面交换分区的指令,也可以为直接进行内存页面的交换分区,并在嵌套页表中将该虚拟机物理地址到主机物理地址的映射关系删除,从而将内存页面释放出来,以供其他虚拟机等使用。
步骤S43:终止响应所述内存页面交换分区请求,并维持所述嵌套页表中的内存地址映射关系。
当然,终止响应内存变更请求也可以根据配置不同,有不同的方式,在一实施例中,可以向虚拟机管理器发出禁止内存页面交换分区的指令;在另一实施例中,可以安全处理器直接终止该内存页面的交换分区。
通过安全处理器维护嵌套页表,所有的虚拟机管理器对内存页面的交换分区都经过了安全处理器判断,并对结果进行记录,防止了虚拟机管理器将不能交换分区的内存页面交换,并且防止虚拟机管理器直接修改嵌套页表,降低了虚拟机管理器通过操纵嵌套页表的方式操纵虚拟机的内存数据的风险,提高了虚拟机内存数据的安全性。
请参考图11,图11是本发明实施例提供的嵌套页表的维护方法的又一种可选流程。
由图中可以看出,本发明实施例所提供的嵌套页表的维护方法包括:
步骤S50:接收虚拟机管理器发出的内存页面交换分区恢复请求。
当虚拟机管理器为了能够有效使用虚拟机有限的内存,将物理内存页面中的数据交换到硬盘等其他存储介质后,当虚拟机需要使用该交换分区的内存页面及其内部数据时,就需要将交换分区的内存页面恢复,此时,虚拟机管理器会向安全处理器发送内存页面交换分区恢复请求。
而安全处理器则接收虚拟机管理器发出的内存页面交换分区请求,为进行后续的工作做好准备。
容易理解的是,内存页面交换分区恢复请求中包含请求恢复交换分区的内存页面的信息,比如:内存页面地址(包括内存页面的虚拟机物理地址和主机物理地址)、内存页面数据信息等,以及虚拟机的信息,比如:虚拟机的标识、虚拟机的状态、虚拟机的安全级别等。
步骤S51:判断所述内存页面交换分区恢复请求是否满足预定的内存页面交换分区恢复条件要求,若是,转向步骤S52,若否,转向步骤S53;
当接收到的内存变更请求为内存页面交换分区恢复请求时,相应的变更条件要求也就成为内存页面交换分区恢复条件要求。
在一种可选实现中,内存页面交换分区恢复条件要求可以为该内存页面当前是否正在被使用;在其他实施例中,内存页面交换分区恢复条件要求可以为该内存页面交换分区恢复请求中的内存页面信息与已记录的交换分区的内存页面的信息是否一致等等。
内存页面交换分区请求满足预定的内存页面交换分区条件要求包括:内存页面交换分区恢复请求中的内存页面虚拟机物理地址信息与已记录的交换分区请求中的内存页面虚拟机物理地址信息相同,且内存页面交换分区恢复请求中的内存页面数据信息与已记录的交换分区请求中的内存页面数据信息相同;
内存页面交换分区请求不满足预定的内存页面交换分区条件要求包括:
内存页面交换分区恢复请求中的内存页面虚拟机物理地址信息与已记录的交换分区请求中的内存页面虚拟机物理地址信息不同;或者,
内存页面交换分区恢复请求中的内存页面数据信息与已记录的交换分区请求中的内存页面数据信息不同;或者,
内存页面交换分区恢复请求中的内存页面虚拟机物理地址信息与已记录的交换分区请求中的内存页面虚拟机物理地址信息不同,且内存页面交换分区恢复请求中的内存页面数据信息与已记录的交换分区请求中的内存页面数据信息不同。
如果内存页面交换分区恢复请求满足预定的内存页面交换分区恢复条件要求,则执行步骤S52,即响应所述内存页面交换分区恢复请求,并更新嵌套页表中的内存地址映射关系,建立被恢复交换分区的内存页面的地址映射关系;如果内存页面交换分区恢复请求不满足预定的内存页面交换分区恢复条件要求,则执行步骤S53,即终止响应所述内存页面交换分区恢复请求,并维持所述嵌套页表中的内存地址映射关系。
步骤S52:响应所述内存页面交换分区恢复请求,并更新嵌套页表中的内存地址映射关系。
具体地,根据不同的配置,响应内存变更请求可以为向虚拟机管理器发出允许内存页面交换分区恢复的指令,也可以为直接进行内存页面的交换分区恢复。
步骤S53:终止响应所述内存页面交换分区恢复请求,并维持所述嵌套页表中的内存地址映射关系。
当然,终止响应内存变更请求也可以根据配置不同,有不同的方式,在一实施例中,可以向虚拟机管理器发出禁止恢复内存页面交换分区的指令;在另一实施例中,可以安全处理器直接终止该内存页面的交换分区恢复。
通过安全处理器维护嵌套页表,所有的虚拟机管理器对内存页面的交换分区恢复都经过了安全处理器判断,并对结果进行记录,防止了虚拟机管理器将不能恢复交换分区的内存页面恢复,并且防止虚拟机管理器直接修改嵌套页表,降低了虚拟机管理器通过操纵嵌套页表的方式操纵虚拟机的内存数据的风险,提高了虚拟机内存数据的安全性。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
由前述内容可以看出内存的变更通过了安全处理器的判断,嵌套页表的维护直接由安全处理器执行,可以防止虚拟机管理器修改嵌套页表,从而保证了嵌套页表修改的安全性;但在虚拟机的程序运行过程中,还可能会出现虚拟机管理器存在漏洞而没有按照安全处理器维护的嵌套页表建立内存页面的映射关系的情况,因此如何保证虚拟机运行时,虚拟机管理器访问的与该虚拟机对应的嵌套页表与安全处理器所维护的与该虚拟机对应的嵌套页表的一致性,防止内存数据的泄露,就成为需要解决的问题。
为解决所述问题,本发明还提供了一种嵌套页表的访问控制方法,通过将虚拟机页表以及嵌套页表进行比对,确定虚拟机的运行是否合法,防止虚拟机访问非对应虚拟机的内存,从而造成内存数据的泄露。
当然,本文所述的嵌套页表的访问控制方法可以通过安全级别较高的安全装置执行,比如:安全处理器、赋予维护嵌套页表权限的特殊虚拟机等。
以下以执行本发明所提供的嵌套页表的访问控制方法的装置为安全管理器为例进行说明,当然在其他实施例中,可以利用其他软件或硬件设备执行本发明所提供的嵌套页表的访问控制方法。请参考图12,图12为本发明实施例所提供的嵌套页表的访问控制方法的一种可选流程。
如图中所示,该方法流程可以包括:
步骤S60:遍历虚拟机的虚拟机页表,所述虚拟机页表为虚拟机管理器访问的所述虚拟机的嵌套页表;
在一种具体实施方式中,安全处理器可以通过定时设置的方式执行遍历虚拟机的虚拟机页表;在其他实施方式中,安全处理器可以基于请求执行遍历虚拟机页表。
其中,虚拟机页表即为虚拟机在执行时,虚拟机管理器所访问的虚拟机的嵌套页表。当虚拟机管理器所访问的虚拟机的嵌套页表(本发明中称为:虚拟机页表)为安全处理器所维护的嵌套页表(本发明中称为:嵌套页表)的拷贝件时,就需要确定二者的一致性。
步骤S61:判断所述虚拟机页表与嵌套页表的一致性,所述嵌套页表为安全处理器维护的所述虚拟机的嵌套页表;当二者一致时,执行步骤S62,当二者不一致时,执行步骤S63;
安全处理器基于存储的嵌套页表,与其遍历的虚拟机页表进行比对,判断虚拟机页表和嵌套页表的一致性,如果一致,则执行步骤S62,即更换虚拟机页表,如果不一致,则说明虚拟机的运行不合法,则执行步骤S63,即终止该虚拟机的执行。
步骤S62:更换虚拟机页表,并触发执行步骤S60;
更换了虚拟机页表后,再次触发执行遍历虚拟机页表的动作,对更换后的虚拟机页表进行判断,直至完成一个虚拟机管理器所创建的所有虚拟机页表的判断。
步骤S63:终止所述虚拟机的运行。
通过对虚拟机页表的遍历与比对判断,可以发现虚拟机页表是否与嵌套页表一致,从而在不一致时及时终止虚拟机的运行,保证内存访问的安全性。
下面从安全装置(例如安全处理器)的角度,对本发明实施例提供的嵌套页表的维护装置进行介绍,下文描述的嵌套页表的维护装置可以认为是安全装置为实现本发明实施例提供的嵌套页表的维护方法,所需设置的程序模块。下文描述的嵌套页表的维护装置可与前文描述的方案内容相互对应参照。
图13为本发明实施例提供的嵌套页表的维护装置的一种可选框图,该装置可以包括:
内存变更请求接收装置100,适于接收虚拟机管理器发出的内存变更请求;
可选地,请参考图14,图14示出了内存变更请求接收装置100的一种可选框图,所述内存变更请求接收装置100可以包括:
内存页面分配请求接收装置101,适于接收虚拟机管理器发出的内存页面分配请求;
内存页面回收请求接收装置102,适于接收虚拟机管理器发出的内存页面回收请求;
内存页面交换分区请求接收装置103,适于接收虚拟机管理器发出的内存页面交换分区请求;
内存页面交换分区恢复请求接收装置104,适于接收虚拟机管理器发出的内存页面交换分区恢复请求。
判断与执行装置110,适于判断所述内存变更请求是否满足预定的变更条件要求,若否,终止响应所述内存变更请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存变更请求,并更新嵌套页表中的内存地址映射关系。
请参考图15,图15示出了判断与执行装置110的一种可选框图,所述判断与执行装置110可以包括:
内存页面分配判断与执行装置111,适于判断所述内存页面分配请求是否满足预定的内存页面分配条件要求,若否,终止响应所述内存页面分配请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存页面分配请求,并更新嵌套页表中的内存地址映射关系。
内存页面回收判断与执行装置112,适于判断所述内存页面回收请求是否满足预定的内存页面回收条件要求,若否,终止响应所述内存页面回收请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存页面回收请求,并更新嵌套页表中的内存地址映射关系。
内存页面交换分区判断与执行装置113,适于判断所述内存页面交换分区请求是否满足预定的内存页面交换分区条件要求,若否,终止响应所述内存页面交换分区请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存页面交换分区请求,并更新嵌套页表中的内存地址映射关系。
内存页面交换分区恢复判断与执行装置114,适于判断所述内存页面交换分区恢复请求是否满足预定的内存页面交换分区恢复条件要求,若否,终止响应所述内存页面交换分区恢复请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存页面交换分区恢复请求,并更新嵌套页表中的内存地址映射关系。
本发明实施例还提供一种安全处理器,该安全处理器可执行,实现上述以安全处理器角度描述的嵌套页表的维护方法的程序。
具体地,上述安全处理器可以通过硬件执行上述的嵌套页表的维护方法,也可以通过软件执行前述嵌套页表的维护方法,当通过软件的方式执行所述的嵌套页表的维护方法时,本发明实施例还提供一种存储介质,存储介质存储有实现所述的嵌套页表的维护方法的程序。
本发明实施例还提供一种嵌套页表的维护***,包括:虚拟机管理器和如上述所的安全处理器。
下面从安全装置(例如安全处理器)的角度,对本发明实施例提供的嵌套页表的访问控制装置进行介绍,下文描述的嵌套页表的访问控制装置可以认为是安全装置为实现本发明实施例提供的嵌套页表的访问控制方法,所需设置的程序模块。下文描述的嵌套页表的访问控制装置可与前文描述的方案内容相互对应参照。
图16为本发明实施例提供的嵌套页表的访问控制装置的一种可选框图,该装置可以包括:
遍历装置200,适于遍历虚拟机的虚拟机页表,所述虚拟机页表为虚拟机管理器访问的所述虚拟机的嵌套页表;
在一种具体实施方式中,遍历装置200可以通过定时设置的方式执行遍历虚拟机的虚拟机页表;在其他实施方式中,遍历装置200可以基于请求执行遍历虚拟机页表。
其中,虚拟机页表即为虚拟机在执行时,虚拟机管理器所访问的虚拟机的嵌套页表。当虚拟机管理器所访问的虚拟机的嵌套页表(虚拟机页表)为安全处理器所维护的嵌套页表(嵌套页表)的拷贝件时,就需要确定二者的一致性。
一致性判断与执行装置210,适于判断所述虚拟机页表与嵌套页表的一致性,所述嵌套页表为安全处理器维护的所述虚拟机的嵌套页表;当二者不一致时,终止所述虚拟机的运行。
一致性判断与执行装置210基于存储的嵌套页表,与其遍历的虚拟机页表进行比对,判断虚拟机页表和嵌套页表的一致性如果不一致,则说明虚拟机的运行不合法,终止该虚拟机的执行。当然,如果一致,则更换虚拟机管理器的虚拟机,再次由遍历装置200,遍历更换后的虚拟机的虚拟机页表。
通过对虚拟机页表的遍历与比对判断,可以发现虚拟机页表是否与嵌套页表一致,从而在不一致时及时终止虚拟机的运行,保证内存访问的安全性。
本发明实施例还提供一种安全处理器,该安全处理器可执行,实现上述以安全处理器角度描述的嵌套页表的访问控制方法的程序。
具体地,上述安全处理器可以通过硬件执行上述的访问控制方法,也可以通过软件执行前述访问控制方法,当通过软件的方式执行所述的访问控制方法时,本发明实施例还提供一种存储介质,存储介质存储有实现所述的嵌套页表的访问控制方法的程序。
本发明实施例还提供一种嵌套页表的访问控制***,包括:虚拟机管理器和如上述所的安全处理器。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (24)
1.一种嵌套页表的维护方法,其特征在于,包括:
接收虚拟机管理器发出的内存变更请求;
判断所述内存变更请求是否满足预定的变更条件要求,若否,终止响应所述内存变更请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存变更请求,并更新嵌套页表中的内存地址映射关系;
所述嵌套页表的维护方法应用于安全处理器;
当所述安全处理器接收到虚拟机管理器的内存变更请求后,判断内存变更请求是否满足预先存储的变更条件要求,如不满足,则终止响应内存变更请求,不执行内存变更,并维持嵌套页表中的内存地址的映射关系;如满足,则响应内存变更请求,执行内存变更,并更新嵌套页表中的内存地址映射关系。
2.如权利要求1所述的嵌套页表的维护方法,其特征在于,所述内存变更请求包括内存页面分配请求,所述变更条件要求包括内存页面分配条件要求。
3.如权利要求1所述的嵌套页表的维护方法,其特征在于,所述内存变更请求包括内存页面回收请求,所述变更条件要求包括内存页面回收条件要求。
4.如权利要求1所述的嵌套页表的维护方法,其特征在于,所述内存变更请求包括内存页面交换分区请求,所述变更条件要求包括内存页面交换分区条件要求,所述响应所述内存变更请求之前,还包括:
记录所述内存页面交换分区请求中的内存页面虚拟机物理地址信息和内存页面数据信息。
5.如权利要求4所述的嵌套页表的维护方法,其特征在于,所述内存变更请求还包括内存页面交换分区恢复请求,所述变更条件要求还包括内存页面交换分区恢复条件要求。
6.如权利要求5所述的嵌套页表的维护方法,其特征在于,所述内存页面交换分区恢复条件要求包括:
所述恢复请求中的内存页面虚拟机物理地址信息与所述内存页面交换分区请求中的内存页面虚拟机物理地址信息相同,且
所述恢复请求中的内存页面数据信息与所述内存页面交换分区请求中的内存页面数据信息相同。
7.如权利要求1-6任一项所述的嵌套页表的维护方法,其特征在于,所述嵌套页表存储于安全内存。
8.一种嵌套页表的访问控制方法,其特征在于,包括:
遍历虚拟机的虚拟机页表,所述虚拟机页表为虚拟机管理器访问的所述虚拟机的嵌套页表;
判断所述虚拟机页表与嵌套页表的一致性,所述嵌套页表为如权利要求1-7任一项所述的嵌套页表的维护方法维护的嵌套页表;
当二者不一致时,终止所述虚拟机的运行。
9.如权利要求8所述的嵌套页表的访问控制方法,其特征在于,还包括:当二者一致时,更换所述虚拟机管理器的虚拟机,触发执行遍历虚拟机的虚拟机页表的步骤。
10.一种嵌套页表的维护装置,其特征在于,包括:
内存变更请求接收装置,适于接收虚拟机管理器发出的内存变更请求;
判断与执行装置,适于判断所述内存变更请求是否满足预定的变更条件要求,若否,终止响应所述内存变更请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存变更请求,并更新嵌套页表中的内存地址映射关系;
所述装置应用于安全处理器;
当所述安全处理器接收到虚拟机管理器的内存变更请求后,判断内存变更请求是否满足预先存储的变更条件要求,如不满足,则终止响应内存变更请求,不执行内存变更,并维持嵌套页表中的内存地址的映射关系;如满足,则响应内存变更请求,执行内存变更,并更新嵌套页表中的内存地址映射关系。
11.如权利要求10所述的嵌套页表的维护装置,其特征在于,所述内存变更请求接收装置包括:
内存页面分配请求接收装置,适于接收虚拟机管理器发出的内存页面分配请求;
所述判断与执行装置,包括:
内存页面分配判断与执行装置,适于判断所述内存页面分配请求是否满足预定的内存页面分配条件要求,若否,终止响应所述内存页面分配请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存页面分配请求,并更新嵌套页表中的内存地址映射关系。
12.如权利要求10所述的嵌套页表的维护装置,其特征在于,所述内存变更请求接收装置包括:
内存页面回收请求接收装置,适于接收虚拟机管理器发出的内存页面回收请求;
所述判断与执行装置,包括:
内存页面回收判断与执行装置,适于判断所述内存页面回收请求是否满足预定的内存页面回收条件要求,若否,终止响应所述内存页面回收请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存页面回收请求,并更新嵌套页表中的内存地址映射关系。
13.如权利要求10所述的嵌套页表的维护装置,其特征在于,所述内存变更请求接收装置包括:
内存页面交换分区请求接收装置,适于接收虚拟机管理器发出的内存页面交换分区请求;
所述判断与执行装置,包括:
内存页面交换分区判断与执行装置,适于判断所述内存页面交换分区请求是否满足预定的内存页面交换分区条件要求,若否,终止响应所述内存页面交换分区请求,并维持所述嵌套页表中的内存地址映射关系;若是,记录所述交换分区请求中的内存页面虚拟机物理地址信息和内存页面数据信息,并响应所述内存页面交换分区请求,并更新嵌套页表中的内存地址映射关系。
14.如权利要求13所述的嵌套页表的维护装置,其特征在于,所述内存变更请求接收装置还包括:
内存页面交换分区恢复请求接收装置,适于接收虚拟机管理器发出的内存页面交换分区恢复请求;
所述判断与执行装置,还包括:
内存页面交换分区恢复判断与执行装置,适于判断所述内存页面交换分区恢复请求是否满足预定的内存页面交换分区恢复条件要求,若否,终止响应所述内存页面交换分区恢复请求,并维持所述嵌套页表中的内存地址映射关系;若是,响应所述内存页面交换分区恢复请求,并更新嵌套页表中的内存地址映射关系。
15.如权利要求14所述的嵌套页表的维护装置,其特征在于,所述内存页面交换分区恢复条件要求包括:
所述恢复请求中的内存页面虚拟机物理地址信息与所述交换分区请求中的内存页面虚拟机物理地址信息相同,且
所述恢复请求中的内存页面数据信息与所述交换分区请求中的内存页面数据信息相同。
16.如权利要求10-15任一项所述的嵌套页表的维护装置,其特征在于,所述嵌套页表存储于安全内存。
17.一种嵌套页表的访问控制装置,其特征在于,包括:
遍历装置,适于遍历虚拟机的虚拟机页表,所述虚拟机页表为虚拟机管理器访问的所述虚拟机的嵌套页表;
一致性判断与执行装置,适于判断所述虚拟机页表与嵌套页表的一致性,所述嵌套页表为安全装置维护的所述虚拟机的嵌套页表;
当二者不一致时,终止所述虚拟机的运行。
18.如权利要求17所述的嵌套页表的访问控制装置,其特征在于,所述一致性判断与执行装置,还适于当二者一致时,更换所述虚拟机管理器的虚拟机,触发执行遍历虚拟机的虚拟机页表的步骤。
19.一种安全处理器,其特征在于,适于执行实现如权利要求1-7任一项所述的嵌套页表的维护方法的程序。
20.一种安全处理器,其特征在于,适于执行实现如权利要求8或9所述的嵌套页表的访问控制方法的程序。
21.一种存储介质,其特征在于,所述存储介质存储有适于安全装置执行的程序,以实现如权利要求1-7任一项所述的嵌套页表的维护方法。
22.一种存储介质,其特征在于,所述存储介质存储有适于安全装置执行的程序,以实现如权利要求8或9所述的嵌套页表的访问控制方法。
23.一种嵌套页表的维护***,其特征在于,包括:虚拟机管理器和如权利要求19所述的安全处理器。
24.一种嵌套页表的访问控制***,其特征在于,包括:虚拟机管理器和如权利要求20所述的安全处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811400819.1A CN109739613B (zh) | 2018-11-22 | 2018-11-22 | 嵌套页表的维护方法、访问控制方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811400819.1A CN109739613B (zh) | 2018-11-22 | 2018-11-22 | 嵌套页表的维护方法、访问控制方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739613A CN109739613A (zh) | 2019-05-10 |
CN109739613B true CN109739613B (zh) | 2021-08-13 |
Family
ID=66358026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811400819.1A Active CN109739613B (zh) | 2018-11-22 | 2018-11-22 | 嵌套页表的维护方法、访问控制方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739613B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143900B (zh) * | 2019-12-24 | 2023-09-26 | 海光信息技术(苏州)有限公司 | 数据处理、访问控制方法、***、器件、设备、存储介质 |
CN112099903B (zh) * | 2020-08-18 | 2023-01-31 | 海光信息技术股份有限公司 | 一种虚拟机的内存管理方法、装置、cpu芯片及服务器 |
CN112099904B (zh) * | 2020-08-25 | 2024-05-17 | 海光信息技术股份有限公司 | 一种虚拟机的嵌套页表管理方法、装置、处理器芯片及服务器 |
CN111966468B (zh) * | 2020-08-28 | 2021-10-26 | 海光信息技术股份有限公司 | 用于直通设备的方法、***、安全处理器和存储介质 |
CN112257064B (zh) * | 2020-10-31 | 2024-02-09 | 海光信息技术股份有限公司 | 一种嵌套页表度量方法、装置及相关设备 |
CN113342711B (zh) * | 2021-06-28 | 2024-02-09 | 海光信息技术股份有限公司 | 页表更新方法、装置及相关设备 |
CN116701248B (zh) * | 2022-02-24 | 2024-04-30 | 象帝先计算技术(重庆)有限公司 | 页表管理方法、单元、soc、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306126A (zh) * | 2011-08-24 | 2012-01-04 | 华为技术有限公司 | 内存管理方法、装置和*** |
CN103858113B (zh) * | 2011-10-13 | 2016-02-24 | 国际商业机器公司 | 用于保护虚拟客户的内存的方法、装置和*** |
CN107038128A (zh) * | 2016-02-03 | 2017-08-11 | 华为技术有限公司 | 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113111A1 (en) * | 2007-10-30 | 2009-04-30 | Vmware, Inc. | Secure identification of execution contexts |
US9824032B2 (en) * | 2015-04-16 | 2017-11-21 | Red Hat Israel, Ltd. | Guest page table validation by virtual machine functions |
-
2018
- 2018-11-22 CN CN201811400819.1A patent/CN109739613B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306126A (zh) * | 2011-08-24 | 2012-01-04 | 华为技术有限公司 | 内存管理方法、装置和*** |
CN103858113B (zh) * | 2011-10-13 | 2016-02-24 | 国际商业机器公司 | 用于保护虚拟客户的内存的方法、装置和*** |
CN107038128A (zh) * | 2016-02-03 | 2017-08-11 | 华为技术有限公司 | 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109739613A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739613B (zh) | 嵌套页表的维护方法、访问控制方法及相关装置 | |
CN109800050B (zh) | 一种虚拟机的内存管理方法、装置、相关设备及*** | |
CN109783188B (zh) | 用于安全公共云的密码存储器所有权表 | |
CN109766164B (zh) | 一种访问控制方法、内存管理方法及相关装置 | |
JP6162652B2 (ja) | メモリ管理装置、プログラム、及び方法 | |
US9529735B2 (en) | Secure data encryption in shared storage using namespaces | |
JP5175856B2 (ja) | セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法 | |
US11507284B2 (en) | Storage device and control method | |
CN109725983B (zh) | 一种数据交换方法、装置、相关设备及*** | |
KR101081118B1 (ko) | 보안되는 프로그램을 복원하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
CN109901911A (zh) | 一种信息设置方法、控制方法、装置及相关设备 | |
TWI813771B (zh) | 資料處理方法,以及其設備、電腦程式,及儲存媒體 | |
CN112433817B (zh) | 信息配置方法、直接存储访问方法及相关装置 | |
JP2008527532A (ja) | 非セキュリティ領域にセキュリティ領域を割り当てる方法及び携帯用保存装置 | |
CN107092495A (zh) | 平台固件铠装技术 | |
JP7431224B2 (ja) | レルム・セキュリティ構成パラメータのためのパラメータ署名 | |
JP2020527777A (ja) | レルム階層における目標レルムの無効化 | |
US9881142B2 (en) | Method and apparatus for preventing and investigating software piracy | |
CN107526974A (zh) | 一种信息密码保护装置和方法 | |
KR20220148076A (ko) | 인스토리지 프로세싱을 수행하는 데이터 저장 장치 및 그 동작 방법 | |
US11829454B2 (en) | Method and apparatus for preventing and investigating software piracy | |
JP2021060721A (ja) | メモリシステム | |
TWI775284B (zh) | 記憶系統、其控制方法及資訊處理系統 | |
CN109840412B (zh) | 安全控制方法及安全处理器、计算机*** | |
US20240045933A1 (en) | Method and apparatus for preventing and investigating software piracy |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 300384 industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Tianjin Huayuan Industrial Zone, Binhai New Area, Tianjin Applicant after: Haiguang Information Technology Co., Ltd Address before: 300384 industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Tianjin Huayuan Industrial Zone, Binhai New Area, Tianjin Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |