CN109828827A - 一种检测方法、装置及相关设备 - Google Patents

一种检测方法、装置及相关设备 Download PDF

Info

Publication number
CN109828827A
CN109828827A CN201910059800.3A CN201910059800A CN109828827A CN 109828827 A CN109828827 A CN 109828827A CN 201910059800 A CN201910059800 A CN 201910059800A CN 109828827 A CN109828827 A CN 109828827A
Authority
CN
China
Prior art keywords
virtual machine
memory
secure
control block
region
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910059800.3A
Other languages
English (en)
Other versions
CN109828827B (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
Publication of CN109828827A publication Critical patent/CN109828827A/zh
Application granted granted Critical
Publication of CN109828827B publication Critical patent/CN109828827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明实施例提供一种检测方法、装置及相关设备,其中检测方法包括:检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域;其中,所述安全内存包括:多个安全内存区域;所述多个安全内存区域中的至少一个安全内存区域被隔离为安全控制内存区域,用于存储安全虚拟机的虚拟机控制块,所述多个安全内存区域中的非安全控制内存区域,用于至少存储安全虚拟机的页表,所述安全虚拟机的虚拟机控制块,指向所述安全虚拟机的页表;若安全虚拟机的虚拟机控制块不位于所述安全虚拟机的安全内存的安全控制内存区域,则进行提醒。本发明实施例可提升虚拟机内存的数据安全性。

Description

一种检测方法、装置及相关设备
技术领域
本发明实施例涉及虚拟机技术领域,具体涉及一种检测方法、装置及相关设备。
背景技术
通过虚拟化技术(Virtualization),主机可虚拟化出多台虚拟机(VirtualMachine,VM),从而最大化的利用主机的硬件资源;虚拟化出的每台虚拟机可被分配内存(空间),为虚拟机分配的内存可称为虚拟机内存,虚拟机内存主要用于任务消耗及支持虚拟化。
目前,虚拟机内存中的虚拟机页表主要由主机维护,而主机可以通过篡改虚拟机页表的信息,可达到对虚拟机页面之间进行任意交换的目的,这无疑使得虚拟机内存的数据安全性较低。
发明内容
有鉴于此,本发明实施例提供一种检测方法、装置及相关设备,以提升虚拟机内存的数据安全性。
为解决上述问题,本发明实施例提供如下技术方案:
一种检测方法,包括:
检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域;其中,所述安全内存包括:多个安全内存区域;所述多个安全内存区域中的至少一个安全内存区域被隔离为安全控制内存区域,用于存储安全虚拟机的虚拟机控制块,所述多个安全内存区域中的非安全控制内存区域,用于至少存储安全虚拟机的页表,所述安全虚拟机的虚拟机控制块,指向所述安全虚拟机的页表;
若安全虚拟机的虚拟机控制块不位于所述安全虚拟机的安全内存的安全控制内存区域,进行提醒。
本发明实施例还提供一种检测装置,包括:
第一检测模块,用于检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域;其中,所述安全内存包括:多个安全内存区域;所述多个安全内存区域中的至少一个安全内存区域被隔离为安全控制内存区域,用于存储安全虚拟机的虚拟机控制块,所述多个安全内存区域中的非安全控制内存区域,用于至少存储安全虚拟机的页表,所述安全虚拟机的虚拟机控制块,指向所述安全虚拟机的页表;
第一提醒模块,用于若安全虚拟机的虚拟机控制块不位于所述安全虚拟机的安全内存的安全控制内存区域,进行提醒。
本发明实施例还提供一种虚拟机内存,所述虚拟机内存包括为安全虚拟机分配的安全内存;所述安全内存包括:多个安全内存区域;
所述多个安全内存区域中的至少一个安全内存区域被隔离为安全控制内存区域,用于存储安全虚拟机的虚拟机控制块;
所述多个安全内存区域中的非安全控制内存区域,用于至少存储安全虚拟机的页表;所述安全虚拟机的虚拟机控制块,指向所述安全虚拟机的页表。
本发明实施例还提供一种CPU核心,包括上述所述的检测装置。
本发明实施例还提供一种芯片,包括安全处理器,上述所述的虚拟机内存,以及上述的CPU核心。
本发明实施例还提供一种电子设备,包括上述所述的芯片。
本发明实施例提供的方案,可将安全虚拟机的页表存储在安全虚拟机的安全内存中,安全内存采用安全保护机制保护,可实现对安全虚拟机的页表的安全保护,避免主机篡改安全虚拟机的页表的风险;并且通过在安全虚拟机的安全内存中隔离出安全控制内存区域,用于存储安全虚拟机的虚拟机控制块,并由安全控制内存区域的虚拟机控制块指向安全虚拟机的页表,可降低安全虚拟机的虚拟机控制块被篡改的可能,进一步提升安全虚拟机的页表的安全性。从而,本发明实施例可检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域,若否,则可进行提醒,实现提升虚拟机内存的数据安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为虚拟化环境的***架构示意图;
图2为虚拟化环境的另一***架构示意图;
图3为安全虚拟化技术的微架构示意图;
图4物理内存包括安全内存和普通内存的示意图;
图5为安全内存和普通内存的内存访问示意架构图;
图6为安全内存和普通内存的另一内存访问示意架构图;
图7为物理寄存器指示安全内存区域的地址范围的示意图;
图8为本发明实施例提供具有SMCR的架构示意图;
图9为特定物理寄存器指示安全控制内存区域的地址范围的示意图;
图10为通过共享普通内存共享页表的部分信息的示意图;
图11为本发明实施例提供的检测方法的流程图;
图12为确定虚拟机控制块所属的虚拟处理器的方法流程图;
图13为确定虚拟机控制块所属的虚拟处理器的示意图;
图14为本发明实施例提供的检测装置的框图;
图15为本发明实施例提供的检测装置的另一框图;
图16为本发明实施例提供的检测装置的再一框图;
图17为本发明实施例提供的检测装置的又一框图;
图18为本发明实施例提供的检测装置的又另一框图;
图19为本发明实施例提供的检测装置的又再一框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为一种可选示例,图1示出了虚拟化环境的***架构示意图,如图1所示,虚拟化环境的***架构可以包括:CPU(Central Processing Unit,中央处理器)核心1,内存控制器2,内存3;
其中,CPU核心可通过软件形式配置虚拟机管理器11,并通过虚拟化技术虚拟化出多台虚拟机12,该多台虚拟机12可由虚拟机管理器11进行内存管理,如由虚拟机管理器11管理虚拟机12的虚拟机内存;
内存控制器2是控制内存3,并且使内存3与CPU核心之间交换数据的硬件,内存3的部分或全部可以作为虚拟机内存,以为虚拟机分配内存空间;在典型的计算机***中,内存控制器2负责处理内存访问请求,对于内存访问请求,内存控制器2可检测缓存是否记录内存访问请求对应的地址,若是,则从缓存读取该地址相应的数据,否则,遍历内存的页表查找该地址并读取该地址相应的数据。
图1所示的***架构可以是基于传统虚拟化技术实现,传统虚拟化技术并不对虚拟机内存进行安全保护,因此虚拟机内存中虚拟机数据的安全性存在威胁,为了提升虚拟机内存中虚拟机数据的安全性,区别于传统虚拟化技术的安全虚拟化技术应运而生;
安全虚拟化技术是可对虚拟机内存进行安全保护的虚拟化技术,例如可对虚拟机内存进行加密等安全保护的虚拟化技术,当然,安全虚拟化技术还可例如对虚拟机内存进行隔离等保护的虚拟化技术;
在一种示例的安全虚拟化技术中,通过安全虚拟化技术可对部分或所有虚拟机的虚拟机内存进行加密,而且不同虚拟机内存通过不同的密钥加密,虚拟机管理器也无法访问密钥,从而防止物理主机、虚拟机管理器对虚拟机内存中虚拟机数据的访问和篡改,提升虚拟机数据的安全性;
作为一种可选示例,基于安全虚拟化技术,图2示出了虚拟化环境的另一***架构示意图,结合图1和图2所示,图2所示***架构相比于图1所示***架构还可以包括:安全处理器4;
安全处理器4为专门设置的负责处理与虚拟机的安全相关操作的处理器,例如,安全处理器4可对虚拟机内存进行加解密等操作;在本发明实施例中,虚拟机管理器11可配置与安全处理器4相通信的API接口,实现虚拟机管理器11与安全处理器4的数据交互;
在本发明实施例中,内存控制器2可配置加密引擎21,加密引擎21可存储密钥;
安全处理器4可通过加密引擎21存储的密钥为部分或所有虚拟机内存进行加密,并且不同虚拟机内存通过不同的密钥进行加密;可选的,为了更好地预防重放攻击,虚拟机内存中不同物理地址可使用不同的加密参数;需要说明的是,重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗***的目的,主要在身份认证场景下破坏认证的正确性。
示例的,图3示出了安全虚拟化技术的微架构示意图,如图3所示,安全处理器是SoC(System on Chip,片上***)中处理虚拟机内存加解密和启动虚拟机的处理器,安全处理器4可与CPU核心1通过API接***互,安全处理器4与内存控制器(memory controller)2通过总线交互,并运行program(程式);
在SoC内部涉及到的部件有CPU核心1,安全处理器4,和内存控制器2;SOC外部设计有内存3(例如动态随机存取存储器DRAM等);可选的,SOC外部的数据可以为加密后的密文,SOC内部为明文;
图3中多个VEK(Virtualization Encrypted Key,虚拟机加密密钥)分别用于不同的虚拟机,使得每个不同的虚拟机(或主机)都可以有各自独立的密钥,保证不同虚拟机和主机都无法读到其它虚拟机或主机的正确数据。
可选的,图2和图3所示***架构中,CPU核心,内存控制器,安全处理器可集成在SOC(System on Chip,片上***)上;显然,SOC仅是计算机体系结构的一种可选形式,本发明实施例也可支持其他形式的计算机体系结构,例如,处理器和南桥相耦合的计算机体系结构,分设南桥和北桥的计算机体系结构等,此时,CPU核心,内存控制器,内存,和安全处理器可相应部署,此处不再展开说明。
安全虚拟化技术通过不同的虚拟机使用不同的密钥,使得不同的虚拟机或主机之间都不能正确解读相互之间的内存数据,达到了虚拟机内存中数据机密性的保护要求,但是主机还是有权限修改虚拟机内存的数据而不被发现,缺乏虚拟机内存的数据完整性保护;
基于此,本发明实施例中,内存3包括安全内存(空间)和普通内存(空间),安全内存可以包括多个安全内存区域,普通内存可以包括多个普通内存区域;一般的,安全内存的安全性高于普通内存,例如,安全内存可以采用安全保护机制;
示例的,图4示出了物理内存可以包括安全内存和普通内存的示意图,作为一种可选实现,本发明实施例可将内存中的若干内存区域(该若干内存区域可以是内存的部分空间,也可以是内存的全部空间),标记为安全内存;例如,通过物理寄存器记录安全内存的内存区域的地址范围,实现通过硬件标记安全内存,并采用安全保护机制进行保护(如安全内存可使用加密,隔离等机制进行保护);内存中的非安全内存可称为普通内存,普通内存一般未采用安全保护机制进行保护;安全内存的安全性可高于普通内存;
作为一种可选示例,安全内存的大小可大于普通内存,当然,本发明实施例也可支持安全内存的大小可小于普通内存;需要说明的是,图4所示示例中,安全内存为内存的部分内存区域,本发明实施例也可支持安全内存为内存的全部内存区域;
可选的,使用安全保护机制的虚拟机可称为安全虚拟机,如使用安全内存的虚拟机可称为安全虚拟机,未使用安全保护机制的虚拟机可称为普通虚拟机,如使用普通内存的虚拟机可称为普通虚拟机,一般的,安全虚拟机的安全性可高于普通虚拟机。
在内存包括安全内存和普通内存的基础上,在虚拟机启动时,专用的安全硬件(例如安全处理器)可在安全内存中设置安全虚拟机独占的安全内存,实现安全虚拟机的安全内存(空间)分配,并对安全虚拟机的安全内存进行访问控制,使得即使虚拟机管理器也不能访问安全虚拟机的安全内存;
作为一种可选实现,图5示出了安全内存和普通内存的内存访问示意架构,如图5所示,对于任一客户机而言,客户机OS(Operating System,操作***)可运行于普通内存,也可运行于安全内存,客户机OS也可在普通内存和安全内存同时运行,其中,客户机在虚拟机上运行;
如果虚拟机的客户机OS运行于普通内存,此时虚拟机为普通虚拟机,普通虚拟机的内存由虚拟机管理器管理;如果虚拟机的客户机OS运行于安全内存,此时虚拟机为安全虚拟机,安全虚拟机的内存可由安全处理器或主虚拟机管理;以此方式可使得安全虚拟机的安全内存即使虚拟机管理器也无法访问,虚拟机管理器可运行于主机OS之上;即本发明实施例可通过隔离出安全虚拟机独占的安全内存,对不同虚拟机之间的内存访问进行隔离,使得即使主机也不能访问安全虚拟机处于被保护的安全内存中的数据。
需要说明的是,如果改进安全虚拟化技术,将对虚拟机内存的管理由虚拟机管理器移交由安全处理器实现,虽然可以提升虚拟机内存的安全性,但安全处理器将成为性能瓶颈(安全处理器的性能一般弱于通用处理器);因此为对虚拟机进行内存管理时,兼顾安全性和性能,本发明实施例可设计一个特殊的虚拟机来管理其他虚拟机使用的内存,该特殊的虚拟机可称为主虚拟机,除主虚拟机外的其他虚拟机可称为从虚拟机。
可选的,主虚拟机可以是安全处理器配置的具有信任根的虚拟机,如由安全处理器签名认证的虚拟机,主虚拟机的代码可通过软件形式进行事先设定,安全处理器负责配置主虚拟机,并在配置主虚拟机的过程中,为主虚拟机授予对从虚拟机的内存管理权限,从而由主虚拟机实现对从虚拟机的内存管理工作。
在对安全虚拟机隔离出独占的安全内存后,对于安全虚拟机的安全内存的访问控制可由内存控制器执行实现,通过为安全虚拟机的安全内存配置访问权限(访问权限的配置可由安全处理器或主虚拟机实现),从而使得对于安全虚拟机的安全内存的访问请求(该访问请求可由主机或者虚拟机发出)仅在满足配置的访问权限时,才允许执行访问请求。
可选的,在对安全虚拟机隔离出独占的安全内存后,为使得安全虚拟机与主机可以交换必要的信息,本发明实施例中普通内存可以包括由安全虚拟机与主机(如运行于主机的虚拟机管理器)共享的共享普通内存,如图6示出了安全内存和普通内存的另一内存访问示意架构,共享普通内存可由虚拟机管理器和运行于安全内存的安全虚拟机共同访问,以进行信息交互。
作为一种可选实现,安全内存可以包括多个安全内存区域,普通内存可以包括多个普通内存区域,内存中的内存区域的地址范围可由物理寄存器进行指示;可选的,本发明实施例可为每个安全内存区域设置指示地址范围的物理寄存器,从而实现安全内存中各安全内存区域的定义;示例的,一对物理寄存器可指示一个安全内存区域的地址范围,如一对物理寄存器可指示一个安全内存区域的起始地址和大小,例如图7所示,一对物理寄存器中的一个物理寄存器指示安全内存区域的起始地址,另一个物理寄存器指示安全内存区域的大小,从而实现对安全内存区域的定义;本发明实施例可通过多对物理寄存器定义多个安全内存区域;普通内存区域的地址范围的指示同理实现;
作为可能的替代实现,指示安全内存区域的地址范围的一对物理寄存器中,一个物理寄存器指示安全内存区域的起始地址外,另一个物理寄存器可指示安全内存区域的地址掩码或结束地址等,而不限于指示安全内存区域的大小。
本发明实施例提供的方案可通过对不同虚拟机的内存数据进行隔离,为安全虚拟机隔离出独占的安全内存,使得主机无法访问安全虚拟机的安全内存,避免了安全虚拟机的安全内存的数据被主机篡改的威胁,可为安全虚拟机的安全内存中的内存数据提供完整性保护,提升虚拟机数据的安全性。
在安全虚拟化技术中,虚拟机的页表是由主机维护,从而主机可以通过篡改虚拟机的页表的信息,达到对虚拟机页面之间进行任意交换的目的,这无疑破坏了虚拟机内存数据的完整性;
基于此,本发明的发明人提出对安全虚拟化技术进行改进:对于安全虚拟机,除设置安全虚拟机独占的安全内存,使得安全虚拟机的数据处于被隔离的安全内存中,还需使得安全虚拟机的页表也处于安全虚拟机的安全内存(Secure Memory Region,SMR)中,从而使得主机也无法访问安全虚拟机的页表的信息;
在本发明实施例中,安全虚拟机的页表可由安全内存进行保护(示例的,页表可以是虚拟机物理地址到主机物理地址的映射页表),即安全内存应至少存储安全虚拟机的页表,当然也可存储安全虚拟机的数据;本发明实施例由安全内存保护的页表可称为安全页表。
需要说明的是,本发明实施例所指的页表可以如虚拟机物理地址到主机物理地址的映射页表,并不特指某一虚拟化技术,而是可适应于所有可能的虚拟化技术;在一种可能的虚拟化技术中,本发明实施例所指的页表可以是嵌套页表,相应的,由安全内存保护的页表可以称为安全嵌套页表;
内存一般是以内存页面为单位,并使用多级页表进行内存管理;末级页表中保存着虚拟地址到物理地址的映射,称为页表项;除末级页表外的其他页表中,上级页表保存着虚拟地址到下级页表的映射,称为页目录。
在安全虚拟化技术中,页表的起始地址一般位于一个描述虚拟机的状态的虚拟机控制块中,例如由虚拟机控制块中的控制寄存器指向页表;可选的,虚拟机控制块是对虚拟机的虚拟处理器的状态进行描述的信息结构,示例的,虚拟机的控制块可描述CPU中与虚拟机对应的逻辑核心的状态,即与虚拟机对应的虚拟处理器的状态;
需要说明的是,本发明实施例所指的虚拟机控制块并不特指某一虚拟化技术,而是可适应于所有可能的虚拟化技术;在不同的虚拟化技术中,虚拟机控制块的叫法可能并不统一,例如也可能是虚拟机控制结构。
可选的,页表的起始地址可位于虚拟机控制块,虚拟机控制块可用于描述虚拟机对应的虚拟处理器的状态,并由虚拟机控制块中的控制寄存器指向页表;
区别于虚拟机控制块由主机维护的情况,本发明实施例并不由虚拟机管理器维护安全虚拟机的虚拟机控制块,本发明实施例可在安全虚拟机的安全内存中进一步隔离出特殊安全内存区域,用于存储安全虚拟机的虚拟机控制块;该特殊安全内存区域,可称为安全控制内存区域(Secure Memory Control Region,SMCR),SMCR无论是虚拟机还是主机(如虚拟机管理器)均无法访问,并由安全处理器或主虚拟机访问SMCR;
可选的,在内存包括普通内存和安全内存,并为安全虚拟机隔离出独占的安全内存的情况下,图8示出了具有SMCR的架构示意,如图8所示,安全虚拟机的虚拟机控制块并不由主机的虚拟管理器维护,而是在安全虚拟机的安全内存进一步隔离出了SMCR,由SMCR存储虚拟机控制块,并由安全处理器或主虚拟机实现管理安全虚拟机的虚拟机控制块和页表;
同时,安全虚拟机的页表存储在安全虚拟机的安全内存中,并由SMCR中存储的虚拟机控制块的控制寄存器,指向安全虚拟机的页表,通过安全虚拟机的页表可管理安全内存的物理地址的映射,实现安全虚拟机的虚拟机物理地址到主机(宿主机)物理地址的映射。
可见,在本发明实施例中,安全虚拟机的虚拟机控制块位于安全控制内存区域中,安全虚拟机的页表的起始地址位于安全内存中;而对于普通虚拟机而言,普通虚拟机的虚拟机控制块不位于安全内存中(所以也不位于SMCR中),且普通虚拟机的页表的起始地址也不位于安全内存中。
作为一种可选实现,在安全内存区域的地址范围由物理寄存器指示的基础上,本发明实施例可设置具有特定标志位的特定物理寄存器指示安全控制内存区域的地址范围,例如,如图9所示,可通过特定标志位的一对特定物理寄存器指示安全控制内存区域的地址范围,其中一个特定标志位的特定物理寄存器指示安全控制内存区域的起始地址,另一特定标志位的特定物理寄存器指示安全控制内存区域的大小。
可以看出,本发明实施例可为安全虚拟机分配采用安全保护机制保护的安全内存,即安全内存可以包括多个安全内存区域;所述多个安全内存区域中的至少一个安全内存区域可隔离为安全控制内存区域,用于存储安全虚拟机的虚拟机控制块,所述多个安全内存区域中的非安全控制内存区域可用于至少存储安全虚拟机的页表,且安全控制内存区域存储的安全虚拟机的虚拟机控制块可指向,非安全控制内存区域存储的安全虚拟机的页表。
作为可选实现,安全内存区域可以由物理寄存器指示地址范围,且指示安全控制内存区域的地址范围的特定物理寄存器具有特定标志位。
本发明实施例提供的方案,可将安全虚拟机的页表存储在安全虚拟机的安全内存中,安全内存采用安全保护机制保护,可实现对安全虚拟机的页表的安全保护,避免主机篡改安全虚拟机的页表的风险;并且通过在安全虚拟机的安全内存中隔离出安全控制内存区域,用于存储安全虚拟机的虚拟机控制块,并由安全控制内存区域的虚拟机控制块指向安全虚拟机的页表,可降低安全虚拟机的虚拟机控制块被篡改的可能,进一步提升安全虚拟机的页表的安全性,从而提升虚拟机内存的数据安全性。
可选的,进一步,在普通内存中设置由安全虚拟机与虚拟机管理器共享的共享普通内存的情况下(可选的,该共享普通内存可动态设置调整),安全内存中页表的共享信息(共享信息可以为嵌套页面的部分信息)可传送到共享普通内存,以使得虚拟机管理器可通过共享普通内存实现安全虚拟机的页表的部分信息获取,可选的,安全处理器或主虚拟机可具有权限决定安全虚拟机的页表中可被共享的部分信息;
可选的,图10示出了通过共享普通内存向虚拟机管理器共享安全虚拟机的页表的共享信息的示意,可参照;可以看出,由于安全虚拟机的页表还是在安全虚拟机的安全内存中进行保护,共享普通内存中记录的仅是安全虚拟机的页表的部分信息,因此虚拟机管理器并无法实现安全虚拟机的页表篡改。
可选的,在安全虚拟机的页表存储在安全虚拟机的安全内存中,且安全内存进一步隔离出安全控制内存区域,用于存储虚拟机控制块的基础上,CPU核心可通过微指令形式检测安全虚拟机的虚拟机控制块是否在安全内存的SMCR内;
示例的,可在运行虚拟机的指令时,由CPU核心检测安全虚拟机的虚拟机控制块是否在该安全虚拟机的安全内存的SMCR内,只有在检测结果为是时,才运行安全虚拟机,而在检测结果为否时,进行提醒,如报错;
可选的,图11示出了本发明实施例提供的检测方法的流程,该方法流程可由CPU核心执行,参照图11,该方法流程可以包括:
步骤S10、在运行虚拟机的指令时,检测安全虚拟机的虚拟机控制块是否处于安全虚拟机的安全内存的SMCR,若否,执行步骤S11,若是,执行步骤S12。
可选的,本发明实施例可判断安全虚拟机的虚拟机控制块的起始地址是否处于SMCR的地址范围内,从而实现检测安全虚拟机的虚拟机控制块是否处于安全虚拟机的安全内存的SMCR。
示例的,在通过特定物理寄存器指示SMCR的地址范围的情况下,本发明实施例可判断虚拟机控制块的起始地址是否处于特定物理寄存器指示的地址范围内;
例如,在一对特定物理寄存器中的一个特定物理寄存器指示SMCR的起始地址,另一个特定物理寄存器指示SMCR的大小的情况下,本发明实施例可要求特定物理寄存器指示的SMCR的起始地址和大小,应按内存页面大小的倍数对齐,如SMCR的起始地址应是一内存页面的起始地址,SMCR的大小应是内存页面大小的整数倍;并且要求虚拟机控制块的起始地址也按内存页面的大小对齐,如虚拟机控制块的起始地址为一内存页面的起始地址;
从而,本发明实施例可在判断以下结果时,认为安全虚拟机的虚拟机控制块处于SMCR内:SMCR的起始地址≤安全虚拟机的虚拟机控制块的起始地址<SMCR的起始地址+SMCR的大小;假设,SMCR的起始地址为base,大小为size,安全虚拟机的虚拟机控制块的起始地址为start_address,则base≤start_address<base+size。
又如,在一对特定物理寄存器中的一个特定物理寄存器指示SMCR的起始地址,另一个特定物理寄存器指示SMCR的地址掩码的情况下,本发明实施例可在判断以下结果时,认为安全虚拟机的虚拟机控制块处于SMCR内:SMCR的起始地址与SMCR的地址掩码的取反的与运算结果,等于,虚拟机控制块的起始地址与SMCR的地址掩码的取反的与运算结果;假设,SMCR的地址掩码为mask,则base&(~mask)和start_address&(~mask)相等时,认为安全虚拟机的虚拟机控制块处于SMCR内。
步骤S11、提醒。
可选的,如报错。
步骤S12、运行安全虚拟机。
进一步,CPU核心还可检测普通虚拟机的虚拟机控制块是否存储于普通内存,例如,可判断普通虚拟机的虚拟机控制块的起始地址是否位于普通内存区域的地址范围内;CPU核心还可检测普通虚拟机的虚拟机控制块是否不指向安全内存,例如普通虚拟机的虚拟机控制块指向的地址是否不处于安全内存区域的地址范围内;
若普通虚拟机的虚拟机控制块不位于普通内存,和/或,普通虚拟机的虚拟机控制块指向安全内存,则进行提醒(如报错);若普通虚拟机的虚拟机控制块位于普通内存,且普通虚拟机的虚拟机控制块不指向安全内存,则可运行普通虚拟机。
本发明实施例提供的方案,可实现对安全虚拟机的页表的安全保护,避免主机篡改安全虚拟机的页表的风险。
可选的,进一步,本发明的发明人发现:安全虚拟化技术虽然可以采用安全虚拟机的虚拟机控制块描述安全虚拟机对应的虚拟处理器的状态,但安全虚拟机的虚拟机控制块只能单独描述一个虚拟处理器的状态(如初始状态),缺乏对虚拟机整体状态的描述;同时,在初始化安全虚拟机时只保护了安全虚拟机每个内存页面的数据,但是对数据本身的地址信息没有进行保护,从而恶意虚拟机管理器可以在虚拟机启动时,任意交换安全虚拟机初始数据在内存中的分布;
基于此,本发明的发明人进一步提出改进安全虚拟化技术:本发明实施例除了使用虚拟机控制块分别单独描述单个虚拟处理器的状态外,安全处理器或主虚拟机还可给每个安全虚拟机定义安全代码控制信息结构(SCCS);一个虚拟机的安全代码控制信息结构用于描述,安全虚拟机的整体初始状态,包括但不限于:安全虚拟机在虚拟地址空间内的分布情况,安全虚拟机的初始状态所有数据的地址分布,安全虚拟机使用的虚拟处理器数目和每个虚拟处理器的初始状态等信息;本发明实施例通过安全代码控制信息结构更好的保证安全虚拟机的初始状态的完整性。
可选的,安全虚拟机的安全代码控制信息结构可以由安全处理器或主虚拟机通过软件进行定义,并存储于安全虚拟机的安全内存;优选的,安全虚拟机的每个虚拟机控制块可以保留一个地址字段(位于安全内存内),该地址字段可用于保存安全代码控制信息结构的起始地址,从而实现通过安全虚拟机的虚拟机控制块指向,安全虚拟机的安全代码控制信息结构;
可选的,虚拟机控制块一般与内存中的物理页面相应,可以被划分成多个字段,比如每个字段可以是几个字节,也可以是一个比特;本发明实施例可以使用安全虚拟机的虚拟机控制块中未被使用的Reserve(储备)字段作为所述地址字段,例如可从Reserve字段任意选择8个对齐的连续字节作为所述地址字段,以保存安全虚拟机的安全代码控制信息结构的起始地址。
进一步,同一安全虚拟机的虚拟机控制块中的地址字段(起始地址)可被初始化为相同的值(如由安全处理器或主虚拟机进行初始化),并且在整个虚拟机的生命周期中不进行任何改变,由于在本发明实施例中,安全虚拟机的虚拟机控制块保存在SMCR中,除安全处理器(或者主虚拟机)以外,没有任何设备能够访问SMCR,因此通过设置安全处理器或主虚拟机的管理代码在安全虚拟机生命周期不修改地址字段的数据,则可保证同一安全虚拟机的虚拟机控制块中的地址字段被初始化为相同的值后,在整个安全虚拟机的生命周期中不进行任何改变,从而无论同一安全虚拟机的虚拟机控制块如何调整改变,均可使得同一安全虚拟机的虚拟机控制块指向的安全代码控制信息结构相同。
本发明实施例使用安全代码控制信息结构描述安全虚拟机的整体初始状态,可以提供一个安全的虚拟机环境,防止控制了虚拟机管理代码的黑客窃取安全虚拟机的内容;在没有设置安全代码控制信息结构统一描述安全虚拟机的整体初始状态的情况下,对于同一安全虚拟机的不同虚拟处理器,硬件很难识别这些不同的虚拟处理器是否来源自同一安全虚拟机,此时,如果攻击者创建一个虚拟处理器,然后通过这个虚拟处理器访问另外一个虚拟处理器的资源,由于硬件无法识别这两个虚拟处理器是否属于同一安全虚拟机,就无法判断这种访问是否非法,从而无法阻止这种非法访问;
而本发明实施例通过设置安全代码控制信息结构,就可使得不同安全虚拟机的虚拟处理器具有不同的安全代码控制信息结构,从而可以对不属于同一安全虚拟机的虚拟处理器间的非法访问进行拒绝,保护了安全虚拟机的数据安全性。
作为一种可选实现,硬件(如CPU核心)可通过检测不同虚拟机控制块指向的SCCS是否相同,来确定和验证不同虚拟机控制块是否属于同一安全虚拟机的不同虚拟处理器,即不同虚拟机控制块指向的SCCS相同时,本发明实施例认为不同虚拟机控制块属于同一安全虚拟机的不同虚拟处理器,安全虚拟机的一个虚拟机控制块可对应安全虚拟机的一个虚拟处理器;
可选的,图12示出了确定虚拟机控制块所属的虚拟处理器的方法流程,图12所示方法可由CPU核心通过微指令形式执行,参照图12,该方法流程可以包括:
步骤S20、确定至少两个虚拟机控制块。
所述至少两个虚拟机控制块可能属于相同的安全虚拟机,也可能属于不同的安全虚拟机。
步骤S21、确定指向的SCCS相同的虚拟机控制块。
虚拟机控制块可存在地址字段指示所指向的SCCS的起始地址,本发明实施例可通过虚拟机控制块的地址字段确定虚拟机控制块指向的SCCS,如果虚拟机控制块的地址字段相同,则虚拟机控制块指向的SCCS相同,从而可确定出指向的SCCS相同的虚拟机控制块。
步骤S22、将指向的SCCS相同的虚拟机控制块确定为同属于一安全虚拟机,且指向的SCCS相同的一虚拟机控制块属于所属安全虚拟机的一个虚拟处理器。
示例的,如图13所示,以虚拟机控制块1的地址字段指向SCCS1,虚拟机控制块2的地址字段指向SCCS1,虚拟机控制块3的地址字段指向SCCS2;则可确定出虚拟机控制块1和虚拟机控制块2指向相同的SCCS,虚拟机控制块1和虚拟机控制块2属于同一安全虚拟机的不同的虚拟处理器,例如,虚拟机控制块1属于安全虚拟机1的虚拟处理器11,虚拟机控制块2属于安全虚拟机1的虚拟处理器12;而由于虚拟机控制块3指向的SCCS与虚拟机控制块1和虚拟机控制块2不同,因此虚拟机控制块3和虚拟机控制块1及虚拟机控制块2属于不同的安全虚拟机,例如虚拟机控制块3属于安全虚拟机2的虚拟处理器21。
可选的,对于不属于同一安全虚拟机的虚拟处理器,本发明实施例可拒绝不属于同一安全虚拟机的虚拟处理器之间的访问,从而进一步保护安全虚拟机的数据安全;而允许属于同一安全虚拟机的虚拟处理器之间的访问。
本发明实施例可限制安全虚拟机的虚拟机控制块和SCCS处于安全内存中,使得虚拟机管理器无法修改虚拟控制块中各种关于安全虚拟机的控制信息和状态信息;作为一种替代实现,本发明实施例也可支持虚拟机控制块中的部分信息可被主机修改,例如,在SCCS中可定义允许被主机修改的虚拟机控制块的信息。
可选的,下表1示出了SCCS示例的各字段和字段描述的说明,可参照。
表1
可选的,本发明实施例可以向安全处理器或主虚拟机申请修改安全虚拟机的虚拟机控制块的状态信息;而安全虚拟机的安全代码控制信息结构可以定义虚拟机控制块的信息的修改属性,从而根据安全代码控制信息结构定义的修改属性,安全处理器或主虚拟机可以辅助实现对虚拟机控制块的信息进行修改;
例如,在需对安全虚拟机的虚拟机控制块的目标信息进行修改时,CPU核心或安全处理器可获取为所述安全虚拟机定义的安全代码控制信息结构;其中,所述安全代码控制信息结构还定义有所述安全虚拟机的虚拟机控制块中的信息的修改属性,所述修改属性包括可修改和不可修改;从而,可根据所述安全代码控制信息结构,确定所述目标信息的修改属性;若所述目标信息的修改属性为可修改,允许修改所述目标信息;若所述目标信息的修改属性为不可修改,拒绝修改所述目标信息。
可选的,目标信息可以是安全虚拟机的虚拟机控制块的任一信息。
可选的,上述对安全虚拟机的虚拟机控制块的目标信息进行修改的流程可由CPU核心或安全处理器执行;例如,CPU核心可通过特殊指令执行上述流程,又如主机可通过安全处理器对虚拟机控制块中的信息进行修改,此时安全处理器可以通过查询安全代码控制信息结构来确定是否可以对虚拟机控制块中的信息进行修改。
可选的,所述安全代码控制信息结构可定义安全虚拟机的虚拟机控制块的各字段信息的修改属性。
进一步,所述虚拟机控制块包括:控制区信息和状态保存区信息;所述控制区信息包括所述虚拟机控制块的多个控制信息,所述状态保存区信息包括所述虚拟机控制块的多个状态信息;
可选的,所述安全代码控制信息结构定义有为所述控制区信息的各控制信息定义的修改属性,以及,为所述状态保存区信息的各状态信息定义的修改属性。
可选的,所述控制区信息的控制信息的修改属性包括可修改和不可修改;所述状态保存区信息的修改属性为不可修改。
可选的,可修改的修改属性以第一值的标记信息表示,不可修改的修改属性以第二值的标记信息表示,所述第一值和第二值逻辑相反,例如第一值为1的比特值,第二值为0的比特值。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
本发明实施例还提供一种检测装置,可选的,该检测装置可以认为是CPU核心的微指令逻辑架构;下文描述的检测装置的内容可与上文内容相互对应参照。
图14为本发明实施例提供的检测装置的框图,参照图14,该检测装置可以包括:
第一检测模块100,用于检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域;其中,所述安全内存包括:多个安全内存区域;所述多个安全内存区域中的至少一个安全内存区域被隔离为安全控制内存区域,用于存储安全虚拟机的虚拟机控制块,所述多个安全内存区域中的非安全控制内存区域,用于至少存储安全虚拟机的页表,所述安全虚拟机的虚拟机控制块,指向所述安全虚拟机的页表;
第一提醒模块110,用于若安全虚拟机的虚拟机控制块不位于所述安全虚拟机的安全内存的安全控制内存区域,进行提醒。
可选的,所述安全内存可以是为安全虚拟机分配的采用安全保护机制保护的虚拟机内存。
可选的,第一检测模块100,用于检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域,具体包括:
检测安全虚拟机的虚拟机控制块的起始地址是否处于所述安全控制内存区域的地址范围内;其中,所述安全虚拟机的虚拟机控制块的起始地址处于所述安全控制内存区域的地址范围内,则安全虚拟机的虚拟机控制块位于所述安全控制内存区域。
可选的,所述安全控制内存区域的地址范围由一对特定物理寄存器指示,所述一对特定物理寄存器中的一个特定物理寄存器指示所述安全控制内存区域的起始地址,另一个特定物理寄存器指示所述安全控制内存区域的大小;
第一检测模块100,用于检测安全虚拟机的虚拟机控制块的起始地址是否处于所述安全控制内存区域的地址范围内,具体包括:
检测所述安全虚拟机的虚拟机控制块的起始地址是否不小于所述安全控制内存区域的起始地址,且小于所述安全控制内存区域的起始地址加上所述安全控制内存区域的大小。
可选的,图15示出了本发明实施例提供的检测装置的另一框图,结合图14和图15所示,该检测装置还可以包括:
第二检测模块120,用于在执行所述检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域的步骤之前,检测运行虚拟机的指令;
运行安全虚拟机模块130,用于若安全虚拟机的虚拟机控制块位于所述安全虚拟机的安全内存的安全控制内存区域,运行所述安全虚拟机。
可选的,图16示出了本发明实施例提供的检测装置的再一框图,结合图15和图16所示,该检测装置还可以包括:
第三检测模块140,用于检测普通虚拟机的虚拟机控制块是否存储于普通内存,及检测普通虚拟机的虚拟机控制块是否不指向安全内存;
运行普通虚拟机模块150,用于若普通虚拟机的虚拟机控制块存储于普通内存,且普通虚拟机的虚拟机控制块不指向安全内存,运行普通虚拟机;
第二提醒模块160,用于若普通虚拟机的虚拟机控制块不存储于普通内存,和/或,普通虚拟机的虚拟机控制块指向安全内存,进行提醒。
可选的,图17示出了本发明实施例提供的检测装置的又一框图,结合图14和图17所示,该检测装置还可以包括:
第四检测模块170,用于检测至少两个虚拟机控制块指向的安全代码控制信息结构是否相同;其中,所述安全代码控制信息结构用于描述安全虚拟机的整体初始状态,所述安全虚拟机的虚拟机控制块保留有地址字段,所述地址字段用于保存安全虚拟机的安全代码控制信息结构的起始地址;同一安全虚拟机的虚拟机控制块中的地址字段初始化为相同的值,以使得同一安全虚拟机的不同虚拟机控制块指向的安全代码控制信息结构相同;
确定模块180,用于若所述至少两个虚拟机控制块指向的安全代码控制信息结构相同,确定所述至少两个虚拟机控制块对应的虚拟处理器属于同一安全虚拟机。
可选的,图18示出了本发明实施例提供的检测装置的又另一框图,结合图17和图18所示,该检测装置还可以包括:
允许访问模块190,用于若所述至少两个虚拟机控制块指向的安全代码控制信息结构相同,允许所述至少两个虚拟机控制块对应的虚拟处理器间的访问;
拒绝访问模块200,用于若所述至少两个虚拟机控制块指向的安全代码控制信息结构不同,拒绝所述至少两个虚拟机控制块对应的虚拟处理器间的访问。
可选的,图19示出了本发明实施例提供的检测装置的又再一框图,结合图17和图19所示,该检测装置还可以包括:
修改模块210,用于在需对安全虚拟机的虚拟机控制块的目标信息进行修改时,获取为所述安全虚拟机定义的安全代码控制信息结构;根据所述安全代码控制信息结构,确定所述目标信息的修改属性;若所述目标信息的修改属性为可修改,允许修改所述目标信息;若所述目标信息的修改属性为不可修改,拒绝修改所述目标信息;
其中,所述安全代码控制信息结构还定义有所述安全虚拟机的虚拟机控制块中的信息的修改属性,所述修改属性包括可修改和不可修改。
可选的,本发明实施例还提供一种CPU核心,包括上述所述的检测装置。
可选的,本发明实施例还提供一种芯片,该芯片可例如SoC芯片,该芯片可以包括安全处理器,上述所述的虚拟机内存,以及上述所述的CPU核心。
可选的,本发明实施例还提供一种电子设备,该电子设备可以包括上述所述的芯片。该电子设备可以是终端设备,也可以是服务器设备。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (21)

1.一种检测方法,其特征在于,包括:
检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域;其中,所述安全内存包括:多个安全内存区域;所述多个安全内存区域中的至少一个安全内存区域被隔离为安全控制内存区域,用于存储安全虚拟机的虚拟机控制块,所述多个安全内存区域中的非安全控制内存区域,用于至少存储安全虚拟机的页表,所述安全虚拟机的虚拟机控制块,指向所述安全虚拟机的页表;
若安全虚拟机的虚拟机控制块不位于所述安全虚拟机的安全内存的安全控制内存区域,进行提醒。
2.根据权利要求1所述的检测方法,其特征在于,所述检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域包括:
检测安全虚拟机的虚拟机控制块的起始地址是否处于所述安全控制内存区域的地址范围内;其中,所述安全虚拟机的虚拟机控制块的起始地址处于所述安全控制内存区域的地址范围内,则安全虚拟机的虚拟机控制块位于所述安全控制内存区域。
3.根据权利要求2所述的检测方法,其特征在于,所述安全控制内存区域的地址范围由一对特定物理寄存器指示,所述一对特定物理寄存器中的一个特定物理寄存器指示所述安全控制内存区域的起始地址,另一个特定物理寄存器指示所述安全控制内存区域的大小;
所述检测安全虚拟机的虚拟机控制块的起始地址是否处于所述安全控制内存区域的地址范围内包括:
检测所述安全虚拟机的虚拟机控制块的起始地址是否不小于所述安全控制内存区域的起始地址,且小于所述安全控制内存区域的起始地址加上所述安全控制内存区域的大小。
4.根据权利要求1-3任一项所述的检测方法,其特征在于,还包括:
在执行所述检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域的步骤之前,检测运行虚拟机的指令;
若安全虚拟机的虚拟机控制块位于所述安全虚拟机的安全内存的安全控制内存区域,运行所述安全虚拟机。
5.根据权利要求4所述的检测方法,其特征在于,还包括:
检测普通虚拟机的虚拟机控制块是否存储于普通内存,及检测普通虚拟机的虚拟机控制块是否不指向安全内存;
若普通虚拟机的虚拟机控制块存储于普通内存,且普通虚拟机的虚拟机控制块不指向安全内存,运行普通虚拟机;
若普通虚拟机的虚拟机控制块不存储于普通内存,和/或,普通虚拟机的虚拟机控制块指向安全内存,进行提醒。
6.根据权利要求1所述的检测方法,其特征在于,还包括:
检测至少两个虚拟机控制块指向的安全代码控制信息结构是否相同;其中,所述安全代码控制信息结构用于描述安全虚拟机的整体初始状态,所述安全虚拟机的虚拟机控制块保留有地址字段,所述地址字段用于保存安全虚拟机的安全代码控制信息结构的起始地址;同一安全虚拟机的虚拟机控制块中的地址字段初始化为相同的值,以使得同一安全虚拟机的不同虚拟机控制块指向的安全代码控制信息结构相同;
若所述至少两个虚拟机控制块指向的安全代码控制信息结构相同,确定所述至少两个虚拟机控制块对应的虚拟处理器属于同一安全虚拟机。
7.根据权利要求6所述的检测方法,其特征在于,还包括:
若所述至少两个虚拟机控制块指向的安全代码控制信息结构相同,允许所述至少两个虚拟机控制块对应的虚拟处理器间的访问;
若所述至少两个虚拟机控制块指向的安全代码控制信息结构不同,拒绝所述至少两个虚拟机控制块对应的虚拟处理器间的访问。
8.根据权利要求6或7所述的检测方法,其特征在于,还包括:
在需对安全虚拟机的虚拟机控制块的目标信息进行修改时,获取为所述安全虚拟机定义的安全代码控制信息结构;其中,所述安全代码控制信息结构还定义有所述安全虚拟机的虚拟机控制块中的信息的修改属性,所述修改属性包括可修改和不可修改;
根据所述安全代码控制信息结构,确定所述目标信息的修改属性;
若所述目标信息的修改属性为可修改,允许修改所述目标信息;
若所述目标信息的修改属性为不可修改,拒绝修改所述目标信息。
9.一种检测装置,其特征在于,包括:
第一检测模块,用于检测安全虚拟机的虚拟机控制块是否位于所述安全虚拟机的安全内存的安全控制内存区域;其中,所述安全内存包括:多个安全内存区域;所述多个安全内存区域中的至少一个安全内存区域被隔离为安全控制内存区域,用于存储安全虚拟机的虚拟机控制块,所述多个安全内存区域中的非安全控制内存区域,用于至少存储安全虚拟机的页表,所述安全虚拟机的虚拟机控制块,指向所述安全虚拟机的页表;
第一提醒模块,用于若安全虚拟机的虚拟机控制块不位于所述安全虚拟机的安全内存的安全控制内存区域,进行提醒。
10.一种虚拟机内存,其特征在于,所述虚拟机内存包括为安全虚拟机分配的安全内存;所述安全内存包括:多个安全内存区域;
所述多个安全内存区域中的至少一个安全内存区域被隔离为安全控制内存区域,用于存储安全虚拟机的虚拟机控制块;
所述多个安全内存区域中的非安全控制内存区域,用于至少存储安全虚拟机的页表;所述安全虚拟机的虚拟机控制块,指向所述安全虚拟机的页表。
11.根据权利要求10所述的虚拟机内存,其特征在于,每个安全内存区域由一对物理寄存器指示地址范围;所述安全控制内存区域由具有特定标志位的一对特定物理寄存器指示地址范围。
12.根据权利要求11所述的虚拟机内存,其特征在于,每个安全内存区域由一个物理寄存器指示起始地址,另一个物理寄存器指示安全内存区域的大小;所述安全控制内存区域由一个具有特定标志位的特定物理寄存器指示起始地址,另一个具有特定标志位的特定物理寄存器指示安全控制内存区域的大小。
13.根据权利要求12所述的虚拟机内存,其特征在于,安全内存区域的起始地址与安全内存的一内存页面的起始地址对齐,安全内存区域的大小为内存页面大小的整数倍。
14.根据权利要求10-13任一项所述的虚拟机内存,其特征在于,所述虚拟机内存还包括为普通虚拟机分配的普通内存,所述安全内存的安全性高于普通内存;所述普通内存至少存储有普通虚拟机的虚拟机控制块和页表,所述普通虚拟机的虚拟机控制块指向所述普通虚拟机的页表,且不指向安全内存。
15.根据权利要求14所述的虚拟机内存,其特征在于,所述安全虚拟机的虚拟机控制块和所述安全虚拟机的页表由安全处理器或主虚拟机维护;所述主虚拟机为安全处理器配置的具有信任根的虚拟机。
16.根据权利要求15所述的虚拟机内存,其特征在于,所述普通内存包括由安全虚拟机和虚拟机管理器共享的共享普通内存,所述共享普通内存至少存储有共享给虚拟机管理器的安全虚拟机的页表的共享信息。
17.根据权利要求10所述的虚拟机内存,其特征在于,所述安全内存的非安全控制内存区域还存储有安全虚拟机的安全代码控制信息结构;
所述安全代码控制信息结构用于描述安全虚拟机的整体初始状态,及定义安全虚拟机的虚拟机控制块的信息的修改属性;所述安全虚拟机的虚拟机控制块保留有地址字段,所述地址字段用于保存安全代码控制信息结构的起始地址;其中,同一安全虚拟机的虚拟机控制块中的地址字段初始化为相同的值,以使得同一安全虚拟机的不同虚拟机控制块指向的安全代码控制信息结构相同时,该不同虚拟机控制块对应的虚拟处理器属于同一安全虚拟机。
18.根据权利要求17所述的虚拟机内存,其特征在于,所述地址字段从虚拟机控制块的储备字段中选择。
19.一种CPU核心,其特征在于,包括权利要求9所述的检测装置。
20.一种芯片,其特征在于,包括安全处理器,权利要求10-18任一项所述的虚拟机内存,以及权利要求19所述的CPU核心。
21.一种电子设备,其特征在于,包括权利要求20所述的芯片。
CN201910059800.3A 2018-11-22 2019-01-22 一种检测方法、装置及相关设备 Active CN109828827B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2018114018390 2018-11-22
CN201811401839 2018-11-22

Publications (2)

Publication Number Publication Date
CN109828827A true CN109828827A (zh) 2019-05-31
CN109828827B CN109828827B (zh) 2023-10-27

Family

ID=66861836

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201910059800.3A Active CN109828827B (zh) 2018-11-22 2019-01-22 一种检测方法、装置及相关设备
CN201910060494.5A Active CN109858265B (zh) 2018-11-22 2019-01-22 一种加密方法、装置及相关设备
CN201910060502.6A Active CN109901911B (zh) 2018-11-22 2019-01-22 一种信息设置方法、控制方法、装置及相关设备

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201910060494.5A Active CN109858265B (zh) 2018-11-22 2019-01-22 一种加密方法、装置及相关设备
CN201910060502.6A Active CN109901911B (zh) 2018-11-22 2019-01-22 一种信息设置方法、控制方法、装置及相关设备

Country Status (1)

Country Link
CN (3) CN109828827B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110348204A (zh) * 2019-06-17 2019-10-18 海光信息技术有限公司 一种代码保护***、认证方法、装置、芯片及电子设备
CN111045605A (zh) * 2019-12-12 2020-04-21 海光信息技术有限公司 利用处理器缓存和安全处理器改进***安全性的技术方案
CN111143900A (zh) * 2019-12-24 2020-05-12 海光信息技术有限公司 数据处理、访问控制方法、***、器件、设备、存储介质
CN111949376A (zh) * 2020-08-24 2020-11-17 海光信息技术有限公司 虚拟机***和用于虚拟机***的方法
CN111949995A (zh) * 2020-08-25 2020-11-17 海光信息技术有限公司 安全管理硬件资源的主机cpu架构***和方法
CN111984374A (zh) * 2020-08-20 2020-11-24 海光信息技术有限公司 用于管理安全内存的方法及其***、装置和存储介质
CN112363797A (zh) * 2020-10-19 2021-02-12 海光信息技术股份有限公司 一种虚拟机安全运行方法、电子设备及存储介质
CN113342735A (zh) * 2021-06-28 2021-09-03 海光信息技术股份有限公司 一种处理器芯片及电子设备
CN114564724A (zh) * 2021-12-30 2022-05-31 海光信息技术股份有限公司 虚拟机内存完整性保护方法、装置、电子设备及存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110380854A (zh) * 2019-08-12 2019-10-25 南京芯驰半导体科技有限公司 针对多个***的根密钥生成、隔离方法及根密钥模块
US11604671B2 (en) 2020-03-19 2023-03-14 Red Hat, Inc. Secure virtual machine and peripheral device communication
CN112363800B (zh) * 2020-11-10 2023-03-07 海光信息技术股份有限公司 一种网卡的内存访问方法、安全处理器、网卡及电子设备
CN112363801B (zh) * 2020-11-10 2022-10-21 海光信息技术股份有限公司 虚拟机迁移方法、处理方法、***、装置、芯片及介质
CN112433817B (zh) * 2020-11-27 2022-11-25 海光信息技术股份有限公司 信息配置方法、直接存储访问方法及相关装置
CN112748984B (zh) * 2020-12-28 2022-12-06 海光信息技术股份有限公司 虚拟机数据处理、控制方法、处理器、芯片、装置及介质
CN112540833B (zh) * 2020-12-28 2022-11-11 海光信息技术股份有限公司 进程运行方法、装置、处理器、存储介质及电子设备
CN113485785B (zh) * 2021-06-28 2023-10-27 海光信息技术股份有限公司 一种虚拟化可信平台模块实现方法、安全处理器及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204357A1 (en) * 2004-03-15 2005-09-15 Ajay Garg Mechanism to protect extensible firmware interface runtime services utilizing virtualization technology
US20080005794A1 (en) * 2004-08-25 2008-01-03 Nec Corporation Information Communication Device and Program Execution Environment Control Method
CN104572488A (zh) * 2015-02-13 2015-04-29 西安酷派软件科技有限公司 内存管理方法、内存管理装置和终端
JP2015176292A (ja) * 2014-03-14 2015-10-05 三菱電機株式会社 情報処理装置、情報処理方法及びプログラム
EP2985718A1 (en) * 2014-08-15 2016-02-17 Intel Corporation Technologies for secure inter-virtual-machine shared memory communication
CN106295267A (zh) * 2015-06-09 2017-01-04 阿里巴巴集团控股有限公司 一种访问电子设备的物理内存中私密数据的方法和装置
US20170032119A1 (en) * 2014-04-16 2017-02-02 Commissariat A L'energie Atomique Et Aux Energies Alternatives System for executing code with blind hypervision mechanism
CN106445628A (zh) * 2015-08-11 2017-02-22 华为技术有限公司 一种虚拟化方法、装置和***
CN107038128A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置
US20170288874A1 (en) * 2016-03-31 2017-10-05 Intel Corporation Cryptographic protection for trusted operating systems
CN107450962A (zh) * 2017-07-03 2017-12-08 北京东土科技股份有限公司 一种虚拟化运行环境下的异常处理方法、装置及***
US20180247082A1 (en) * 2016-08-11 2018-08-30 Intel Corporation Secure Public Cloud with Protected Guest-Verified Host Control

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719825A (zh) * 2009-04-30 2010-06-02 中兴通讯股份有限公司 Ip多媒体子***中实现安全分叉呼叫会话的方法及***
CN102752301A (zh) * 2012-07-04 2012-10-24 深圳市京华科讯科技有限公司 应用于虚拟化环境的数据传输***及方法
EP2876593B1 (en) * 2013-11-21 2018-09-26 Nxp B.V. Method of generating a structure and corresponding structure
CN105718794B (zh) * 2016-01-27 2018-06-05 华为技术有限公司 基于vtpm对虚拟机进行安全保护的方法及***
CN106293873B (zh) * 2016-07-29 2019-11-05 北京北信源软件股份有限公司 一种准确获取虚拟机控制块(vmcs)中关键数据位置的方法
CN106970823B (zh) * 2017-02-24 2021-02-12 上海交通大学 高效的基于嵌套虚拟化的虚拟机安全保护方法及***
CN107341115B (zh) * 2017-06-30 2021-07-16 联想(北京)有限公司 虚拟机内存访问方法、***和电子设备
CN107368354B (zh) * 2017-08-03 2021-02-02 海光信息技术股份有限公司 一种虚拟机安全隔离方法
CN107562515B (zh) * 2017-08-04 2021-09-07 海光信息技术股份有限公司 一种在虚拟化技术中管理内存的方法
CN108599930B (zh) * 2018-04-02 2021-05-14 湖南国科微电子股份有限公司 固件加解密***与方法
CN108804203B (zh) * 2018-06-15 2019-06-21 四川大学 基于标签的vTPM私密信息保护方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204357A1 (en) * 2004-03-15 2005-09-15 Ajay Garg Mechanism to protect extensible firmware interface runtime services utilizing virtualization technology
US20080005794A1 (en) * 2004-08-25 2008-01-03 Nec Corporation Information Communication Device and Program Execution Environment Control Method
JP2015176292A (ja) * 2014-03-14 2015-10-05 三菱電機株式会社 情報処理装置、情報処理方法及びプログラム
US20170032119A1 (en) * 2014-04-16 2017-02-02 Commissariat A L'energie Atomique Et Aux Energies Alternatives System for executing code with blind hypervision mechanism
EP2985718A1 (en) * 2014-08-15 2016-02-17 Intel Corporation Technologies for secure inter-virtual-machine shared memory communication
CN104572488A (zh) * 2015-02-13 2015-04-29 西安酷派软件科技有限公司 内存管理方法、内存管理装置和终端
CN106295267A (zh) * 2015-06-09 2017-01-04 阿里巴巴集团控股有限公司 一种访问电子设备的物理内存中私密数据的方法和装置
CN106445628A (zh) * 2015-08-11 2017-02-22 华为技术有限公司 一种虚拟化方法、装置和***
CN107038128A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置
US20170288874A1 (en) * 2016-03-31 2017-10-05 Intel Corporation Cryptographic protection for trusted operating systems
US20180247082A1 (en) * 2016-08-11 2018-08-30 Intel Corporation Secure Public Cloud with Protected Guest-Verified Host Control
CN108509250A (zh) * 2017-02-28 2018-09-07 英特尔公司 具有受保护的访客机验证主机控制的安全公共云
CN107450962A (zh) * 2017-07-03 2017-12-08 北京东土科技股份有限公司 一种虚拟化运行环境下的异常处理方法、装置及***

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110348204A (zh) * 2019-06-17 2019-10-18 海光信息技术有限公司 一种代码保护***、认证方法、装置、芯片及电子设备
CN111045605A (zh) * 2019-12-12 2020-04-21 海光信息技术有限公司 利用处理器缓存和安全处理器改进***安全性的技术方案
CN111045605B (zh) * 2019-12-12 2023-10-20 海光信息技术股份有限公司 利用处理器缓存和安全处理器改进***安全性的技术方案
CN111143900B (zh) * 2019-12-24 2023-09-26 海光信息技术(苏州)有限公司 数据处理、访问控制方法、***、器件、设备、存储介质
CN111143900A (zh) * 2019-12-24 2020-05-12 海光信息技术有限公司 数据处理、访问控制方法、***、器件、设备、存储介质
CN111984374A (zh) * 2020-08-20 2020-11-24 海光信息技术有限公司 用于管理安全内存的方法及其***、装置和存储介质
CN111984374B (zh) * 2020-08-20 2021-07-23 海光信息技术股份有限公司 用于管理安全内存的方法及其***、装置和存储介质
CN111949376A (zh) * 2020-08-24 2020-11-17 海光信息技术有限公司 虚拟机***和用于虚拟机***的方法
CN111949376B (zh) * 2020-08-24 2021-12-17 海光信息技术股份有限公司 虚拟机***和用于虚拟机***的方法
CN111949995A (zh) * 2020-08-25 2020-11-17 海光信息技术有限公司 安全管理硬件资源的主机cpu架构***和方法
CN111949995B (zh) * 2020-08-25 2021-07-16 海光信息技术股份有限公司 安全管理硬件资源的主机cpu架构***和方法
CN112363797A (zh) * 2020-10-19 2021-02-12 海光信息技术股份有限公司 一种虚拟机安全运行方法、电子设备及存储介质
CN113342735A (zh) * 2021-06-28 2021-09-03 海光信息技术股份有限公司 一种处理器芯片及电子设备
CN113342735B (zh) * 2021-06-28 2024-04-16 海光信息技术股份有限公司 一种处理器芯片及电子设备
CN114564724A (zh) * 2021-12-30 2022-05-31 海光信息技术股份有限公司 虚拟机内存完整性保护方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN109828827B (zh) 2023-10-27
CN109858265A (zh) 2019-06-07
CN109858265B (zh) 2022-01-28
CN109901911A (zh) 2019-06-18
CN109901911B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
CN109828827A (zh) 一种检测方法、装置及相关设备
CN109766165B (zh) 一种内存访问控制方法、装置、内存控制器及计算机***
US9092632B2 (en) Platform firmware armoring technology
CN103607279B (zh) 基于多核处理器的密钥保护方法及***
US7073059B2 (en) Secure machine platform that interfaces to operating systems and customized control programs
US6820177B2 (en) Protected configuration space in a protected environment
CN108055133B (zh) 一种基于区块链技术的密钥安全签名方法
US8826391B2 (en) Virtualized trusted descriptors
CN110348204B (zh) 一种代码保护***、认证方法、装置、芯片及电子设备
WO2020192406A1 (zh) 数据存储、验证方法及装置
US20040093505A1 (en) Open generic tamper resistant CPU and application system thereof
CN109766164A (zh) 一种访问控制方法、内存管理方法及相关装置
US20080134321A1 (en) Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates
CN102855161B (zh) 用于安全微控制器的外部存储器的数据交织方案
EP2990953B1 (en) Periodic memory refresh in a secure computing system
CN112639789A (zh) 用于存储器完好性检查的完好性树
US20090172663A1 (en) Method and apparatus for tamper resistant communication in a virtualization enabled platform
CN111159097A (zh) 一种片上访存保护***及方法
CN107563226A (zh) 一种存储器控制器、处理器模块及密钥更新方法
CN116126463A (zh) 内存访问方法、配置方法、计算机***及相关器件
CN114357465A (zh) 多核cpu的安全控制方法与装置
CN117763601B (zh) 一种针对共享内存的隐私保护方法及***
CN117254930A (zh) 一种针对虚拟机管理器跨域攻击的防御方法、装置和介质
CN106233266A (zh) 安全的存储器***及其方法
You et al. KVSEV: A Secure In-Memory Key-Value Store with Secure Encrypted Virtualization

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

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.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant