CN116126463A - 内存访问方法、配置方法、计算机***及相关器件 - Google Patents
内存访问方法、配置方法、计算机***及相关器件 Download PDFInfo
- Publication number
- CN116126463A CN116126463A CN202211633272.6A CN202211633272A CN116126463A CN 116126463 A CN116126463 A CN 116126463A CN 202211633272 A CN202211633272 A CN 202211633272A CN 116126463 A CN116126463 A CN 116126463A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- memory
- encrypted
- address
- memory access
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种内存访问方法、配置方法、计算机***及相关器件。其中内存访问方法包括:接收内存访问请求,内存访问请求包括虚拟机访问的主机物理地址;根据预先配置的安全页面属性表,判断主机物理地址是否位于虚拟机的加密内存区域;若主机物理地址位于虚拟机的加密内存区域,对虚拟机进行安全身份验证,并根据安全身份验证的结果,决定是否允许处理内存访问请求;其中,安全页面属性表包括多个第一比特位,一个第一比特位对应一个虚拟机内存基本单元,且用于指示对应的虚拟机内存基本单元是否位于加密内存区域。可见,本申请实施例所提供的内存访问方法,可以提升访问性能。
Description
技术领域
本发明实施例涉及计算机处理技术领域,具体涉及一种内存访问方法、配置方法、计算机***及相关器件。
背景技术
通过虚拟化技术(Virtualization),主机可虚拟化出多台虚拟机(VirtualMachine,VM),从而高效利用主机的硬件资源。虚拟化出的虚拟机可在内存中分配虚拟机内存,每台虚拟机的虚拟机内存主要用于任务消耗及支持虚拟化。出于对虚拟机内存的安全保护,部分或全部虚拟机的虚拟机内存可使用虚拟机密钥进行安全保护。
虚拟机在运行过程中,涉及到对虚拟机内存进行访问,此时,如何提升访问性能,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本发明实施例提供一种内存访问方法、配置方法、计算机***及相关器件。
为实现上述目的,本发明实施例提供如下技术方案:
第一方面,为解决上述问题,本发明实施例提供一种内存访问方法,包括:接收内存访问请求,所述内存访问请求包括虚拟机访问的主机物理地址;
根据预先配置的安全页面属性表,判断所述主机物理地址是否位于虚拟机的加密内存区域;其中,所述加密内存区域划分有供虚拟机使用的多个虚拟机内存基本单元,所述虚拟机内存基本单元的划分粒度与操作***使用的***内存基本单元的划分粒度相匹配;所述安全页面属性表包括多个第一比特位,一个第一比特位对应一个虚拟机内存基本单元,且用于指示对应的虚拟机内存基本单元是否位于加密内存区域;
若所述主机物理地址位于虚拟机的加密内存区域,对所述虚拟机进行安全身份验证,并根据安全身份验证的结果,决定是否允许处理所述内存访问请求。
第二方面,本申请实施例还提供一种虚拟机的配置方法,适用于安全处理器,包括:
接收加密内存区域申请,所述加密内存区域申请用于为待启动的虚拟机申请加密内存区域,所述加密内存区域申请包括所述虚拟机申请的虚拟机内存基本单元的内存地址;
根据所述内存地址,确定安全页面属性表中与所述虚拟机内存基本单元对应的第一比特位,将所述第一比特位的比特值配置为表示所述虚拟机内存基本单元位于加密内存区域中;
其中,所述加密内存区域按照第一粒度划分有多个虚拟机内存基本单元,所述安全页面属性表包括与各个虚拟机内存基本单元对应的第一比特位,一个第一比特位的比特值用于指示对应的虚拟机内存基本单元是否位于加密内存区域。
第三方面,本申请实施例还提供一种内存访问方法,适用于处理器,包括:
获取虚拟机发送的第一内存访问请求,所述第一内存访问请求中包括虚拟机访问的虚拟地址;
利用预先从虚拟机的加密内存区域中获取的嵌套页表,将所述虚拟地址转换为主机物理地址,所述嵌套页表通过嵌套页表基地址获取,所述嵌套页表预先存储于所述加密虚拟机的虚拟机控制块中,所述虚拟机控制块存储于所述加密虚拟机的加密内存区域中;
发送第二内存访问请求至访问控制检查器,所述第二内存访问请求包括所述主机物理地址;其中,所述访问控制检查器被配置为执行如第一方面所述的内存访问方法。
第四方面,本申请实施例还提供一种内存访问装置,包括:
内存访问请求接收单元,适于接收内存访问请求,所述内存访问请求包括虚拟机访问的主机物理地址;
加密内存区域判断单元,适于根据预先配置的安全页面属性表,判断所述主机物理地址是否位于虚拟机的加密内存区域;其中,所述加密内存区域划分有供虚拟机使用的多个虚拟机内存基本单元,所述虚拟机内存基本单元的划分粒度与操作***使用的***内存基本单元的划分粒度相匹配;所述安全页面属性表包括多个第一比特位,一个第一比特位对应一个虚拟机内存基本单元,且用于指示对应的虚拟机内存基本单元是否位于加密内存区域;
安全身份验证单元,适于若所述主机物理地址位于虚拟机的加密内存区域,对所述虚拟机进行安全身份验证,并根据安全身份验证的结果,决定是否允许处理所述内存访问请求。
第五方面,本申请实施例提供一种虚拟机的配置装置,包括:
加密内存区域申请接收单元,适于接收加密内存区域申请,所述加密内存区域申请用于为待启动的虚拟机申请加密内存区域,所述加密内存区域申请包括所述虚拟机申请的虚拟机内存基本单元的内存地址;
安全页面属性表配置单元,适于根据所述内存地址,确定安全页面属性表中与所述虚拟机内存基本单元对应的第一比特位,将所述第一比特位的比特值配置为表示所述虚拟机内存基本单元位于加密内存区域中;
其中,所述加密内存区域按照第一粒度划分有多个虚拟机内存基本单元,所述安全页面属性表包括与各个虚拟机内存基本单元对应的第一比特位,一个第一比特位的比特值用于指示对应的虚拟机内存基本单元是否位于加密内存区域。
第六方面,本申请实施例提供一种内存访问装置,包括:
虚拟内存访问请求获取单元,适于获取虚拟机发送的虚拟内存访问请求,所述虚拟内存访问请求中包括虚拟机访问的虚拟地址;
虚拟地址转换单元,适于利用预先从虚拟机的加密内存区域中获取的嵌套页表,将所述虚拟地址转换为主机物理地址,所述嵌套页表通过嵌套页表基地址获取,所述嵌套页表预先存储于所述加密虚拟机的虚拟机控制块中,所述虚拟机控制块存储于所述加密虚拟机的加密内存区域中;
内存访问请求发送单元,适于发送内存访问请求至访问控制检查器,所述内存访问请求包括所述主机物理地址;其中,所述访问控制检查器被配置为执行如上述所述的内存访问方法。
第七方面,本申请实施例提供一种计算机***,包括:处理器,访问控制检查器;其中,所述处理器被配置为执行如第三方面所述的内存访问方法,所述访问控制检查器被配置为执行如第一方面所述的内存访问方法。
第八方面,本申请实施例还提供一种芯片,包括:第四方面所述的计算机***。
第九方面,本申请实施例还提供一种电子设备,包括如第五方面所述的芯片。
本申请实施例所提供的内存访问方法,适用于访问控制检查器,包括:接收内存访问请求,所述内存访问请求包括虚拟机访问的主机物理地址;根据预先配置的安全页面属性表,判断所述主机物理地址是否位于虚拟机的加密内存区域;其中,所述加密内存区域划分有供虚拟机使用的多个虚拟机内存基本单元,所述虚拟机内存基本单元的划分粒度与操作***使用的***内存基本单元的划分粒度相匹配;所述安全页面属性表包括多个第一比特位,一个第一比特位对应一个虚拟机内存基本单元,且用于指示对应的虚拟机内存基本单元是否位于加密内存区域;若所述主机物理地址位于虚拟机的加密内存区域,对所述虚拟机进行安全身份验证,并根据安全身份验证的结果,决定是否允许处理所述内存访问请求。
这样,本申请实施例所提供的内存访问方法,安全页面属性表的每一比特位与虚拟机内存基本单元一一对应,安全页面属性表在获取处理器发送的主机物理地址和虚拟机标识后,只负责可以筛选出主机物理地址位于加密内存区域的访问,通过安全验证表进一步判断该虚拟机标识是否为安全虚拟机的虚拟机标识,从而判断访问请求的发送方是否为安全虚拟机。只有来自安全虚拟机的对加密内存的访问请求可以被通过,恶意虚拟机篡改普通虚拟机,控制普通虚拟机发送对加密内存区域的访问请求会被拦截。
可以看出,本申请实施例所提供的虚拟机加密内存区域的访问方法,使安全页面属性表中每一第一比特位与一虚拟机内存基本单元对应,从而可以控制更多的虚拟机内存基本单元,使虚拟机内存基本单元的粒度更小,从而与现代操作***中***内存基本单元的粒度相匹配,进而提升访问性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示例性的示出了安全页面属性表的结构示例图;
图2为本申请实施例所提供的内存访问方法的安全页面属性表的结构示意图;
图3为本申请实施例所提供的内存访问方法的虚拟机内存基本单元示意图;
图4为本申请实施例所提供的内存访问方法的计算机***的一结构示意图;
图5为本申请实施例所提供的内存访问方法的一流程示意图;
图6为本申请实施例所提供的内存访问方法的安全验证表的一示意图;
图7为本申请实施例所提供的内存方访问方法的另一流程示意图;
图8为本申请实施例所提供的内存访问方法中,安全虚拟机身份验证方法;
图9为本申请实施例所提供的虚拟机的配置方法的一流程示意图;
图10为本申请实施例所提供的内存访问方法的安全页面属性表查找方法的一流程图;
图11为本申请实施例所提供的内存访问方法的又一流程示意图;
图12为本申请实施例所提供的内存访问装置一示意图;
图13为本申请实施例所提供的虚拟机的配置装置示意图;
图14为本申请实施例所提供的内存访问装置另一示意图;
图15为本申请实施例所提供的计算机***的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先介绍一计算机***,该计算机***可以位于片上***(System on Chip;***级芯片)上;该计算机***包括:处理器、安全处理器、访问控制检查器,内存控制器和内存。
处理器发送安全虚拟机的内存访问请求;访问控制检查器接受访问请求,查找被安全处理器管理的安全页面属性表,通过安全页面属性表判断是否可以执行所述访问请求;内存控制器负责执行内存访问请求,根据访问请求中的主机物理地址访问内存,并利用与访问请求中的虚拟机标识对应的虚拟机密钥进行解密。
安全虚拟机以软件形式运行在处理器中;当安全虚拟机访问加密内存区域时,处理器会通过总线向访问控制检查器发送内存访问请求;访问控制检查器中设置有安全页面属性表,访问控制检查器接受内存访问请求后,可通过检查安全页面属性表,判断发出访问请求的安全虚拟机是否有权限访问所请求访问的加密内存区域。当检查认为安全虚拟机有权限访问所请求访问的加密内存区域时,则允许将所述访问请求发送至内存控制器,由内存控制器根据该访问请求对被请求访问的加密内存区域进行读写和加解密操作。
由上述可知,访问控制检查器利用位于自身的安全页面属性表实现对访问请求的检查,图1示例性的示出了安全页面属性表的结构示例图,如图1所示,安全页面属性表包括多个项目(例如项目0至项目n),一个项目记录有一个虚拟机的虚拟机标识,以及该虚拟机标识是否有效的有效位,每组虚拟机标识和有效位都对应一虚拟机内存基本单元。根据访问请求中携带的被请求访问的内存地址,找到该内存地址所位于的基本管理单元,如果所述访问请求中的虚拟机标识是否与安全页面属性表中该基本管理单元对应的虚拟机标识相同(且有效标识信息为有效),则允许该访问请求对被请求访问的内存地址进行访问。
虚拟机内存基本单元是虚拟机对内存划分的基本管理单元,***内存基本单元是操作***对内存划分的基本管理单元,不论是虚拟机还是现代操作***,对内存的管理都是以某一粒度大小划分内存,将内存划分为多个虚拟机内存基本单元或***内存基本单元,通过对各虚拟机内存基本单元或***内存基本单元进行管理从而实现对整个内存的管理。
值得注意的是,现代计算机的内存空间通常较为巨大,同时,现代操作***为了平衡内存使用效率和内存访问速率,其***内存基本单元通常为2M大小的大页;而访问控制检查器是集成于***级芯片中的,所占用的芯片面积有限,所能记载的虚拟机标识和有效位组数有限,因此为了对现代服务器中巨大的内存进行管理,每组虚拟机标识和有效位对应的内存空间(虚拟机内存基本单元)较大。
例如:以安全页面属性表所使用的SRAM总容量8K来计算,安全页面属性表表中每个项占用8bit(包含7bit asid和1bit valid),即1各字节,安全页面属性表中总共可支持的项数目8K条,总容量为8×1024bit。当每个项管理的内存粒度为4K时,整个安全页面属性表所能管理的内存空间范围仅为4M;当每个项管理的内存粒度为2M时,整个安全页面属性表所管理的内存空间范围为2G。显然整个安全页面属性表所能管理的内存空间范围有限。为了将8K容量的安全页面属性表所管理的内存范围提高到128G,每个项所管理的内存粒度需要为128M。
因此,安全页面属性表的虚拟机内存基本单元较大通常远大于操作***的***内存基本单元,二者并不匹配。由于安全页面属性表和现代操作***的***内存基本单元不匹配,因此在通过安全页面属性表进行内存管理时,存在需要额外实现一套安全内存的分配和管理方法,无法利用操作***现有的内存管理方法的技术问题,从而加大了内存管理的复杂度,降低了内存访问性能。
为了解决上述技术问题,本申请实施例对安全页面属性表的配置进行改进调整。请参考图2和图3,图2为本申请实施例所提供的内存访问方法的安全页面属性表,图3为本申请实施例所提供的内存访问方法的虚拟机内存基本单元示意图。
如图所示,本申请实施例所提供的安全页面属性表,包括多条项,每条项包括八个比特位。当然,本申请实施例所提供的安全页面属性表并不限制每条项的比特位必须是八个,以八为例只是为了与图1中的安全页面属性表对比,更好地说明本申请实施例,在其它实施方式中,每项的比特位数目可以是其它任意数据。
继续参考图2至图3,本申请提供的主机内存中包括起始地址和终止地址,位于所述起始地址和终止地址之间的为预设内存区域,所述预设内存区域包括多个虚拟机内存基本单元,每个虚拟机内存基本单元与安全页面属性表中的一个比特位对应。当虚拟机内存基本单元位于加密内存区域时,与该虚拟机内存基本单元对应的比特位记录的比特值为比特1,当虚拟机内存基本单元不位于加密内存区域,仅为普通内存时,与该虚拟机内存基本单元对应的比特位记录的比特值为比特0。这样,通过安全页面属性表中某比特位记录的比特值是1还是0,就可以得知与该比特位对应的虚拟机内存基本单元是否位于加密内存区域。
在一些实施例中,也可以是比特值为“0”表示虚拟机内存基本单元位于加密内存区域中,比特值为“1”表示虚拟机内存基本单元不位于加密内存区域中。
利用上述改进调整后的安全页面属性表,本申请实施例提供一种内存访问方法,请参考图4和图5,图4为本申请实施例所提供的内存访问方法的计算机***的结构示意图;图5为本申请实施例所提供的内存访问方法的一流程示意图。
如图所示,本申请实施例所提供的内存访问方法,包括:
在步骤S11中,处理器获取虚拟机发送的虚拟内存访问请求,所述虚拟内存访问请求中包括虚拟机访问的虚拟地址。
虚拟机运行于处理器,使用虚拟地址进行数据读写,因此当虚拟机需要读写数据时,会发送包括虚拟地址的虚拟内存访问请求。
在步骤S12中,处理器利用预先从虚拟机的加密内存区域中获取的嵌套页表,将所述虚拟地址转换为主机物理地址。
所述嵌套页表(示于图4)通过预先存储于所述加密虚拟机的加密内存区域中的虚拟机控制块所包括的嵌套页表基地址获取。
计算机实际读写数据需要根据数据所在的主机物理地址,通常由处理器利用嵌套页表转换虚拟地址为主机物理地址。所述嵌套页表通常存储于内存中,处理器中预先配置内存中嵌套页表的嵌套页表基基地,从而可以根据所述嵌套页表基地址从内存中读取嵌套页表。具体地,可以通过集成在CPU中的内存管理单元实现上述虚拟地址和主机物理地址的转换。
为了防止恶意虚拟机管理器篡改嵌套页表或嵌套页表基地址,导致处理器转换错误主机物理地址,从而窃取位于加密内存区域中的数据,可以将嵌套页表和嵌套页表基地址都放置于加密内存区域中。
虚拟机可以具有加密内存区域和虚拟机密钥,加密内存区域是存储被虚拟机密钥加密的数据的内存空间。为了便于与不具有加密内存区域和虚拟机密钥的虚拟机进行区分,称前述具有加密内存区域的虚拟机密钥的虚拟机为安全虚拟机。
对于需要防止被篡改和窃取的私密数据,虚拟机会通过虚拟机密钥对所述私密数据进行加密,并存放于所述加密内存区域中;当需要对所述私密数据进行读取时,需要访问该加密内存区域获取加密后的私密数据,并根据所述虚拟机密钥对该数据进行解密,从而得到私密数据,从而实现对加密内存区域中数据的保护。
这样,设置具有加密内存区域的虚拟机的嵌套页表和嵌套页表基地址于加密内存区域,可以保护嵌套页表,防止恶意虚拟机管理器的窃取和篡改。
在步骤S13中,处理器发送内存访问请求至访问控制检查器,所述内存访问请求包括所述主机物理地址。
处理器转换所述虚拟地址为主机物理地址后,会发送包括所述主机物理地址的访问请求,以使访问控制检查器执行后续所述内存访问方法,判断是否执行所述访问请求,从而防止恶意虚拟机管理器篡改虚拟机。
相应的,访问控制检查器可接收内存访问请求,所述内存访问请求包括虚拟机访问的主机物理地址。
内存控制器是集成于***级芯片中的硬件电路模块,可以通过***总线与同样集成于***级芯片中的处理器相连,从而接受处理器发送的内存访问请求。
在步骤S14中,访问控制检查器根据预先配置的安全页面属性表,判断所述主机物理地址是否位于虚拟机的加密内存区域;当判断为是时,执行步骤S15,当判断为否时,执行步骤S16。
其中,所述加密内存区域划分有供虚拟机使用的多个虚拟机内存基本单元,所述虚拟机内存基本单元的划分粒度与操作***使用的***内存基本单元的划分粒度相匹配;所述安全页面属性表包括多个第一比特位,一个第一比特位对应一个虚拟机内存基本单元,且用于指示对应的虚拟机内存基本单元是否位于加密内存区域。
预设内存区域是主机内存中可以作为加密内存区域划分给虚拟机的内存空间,所述只有位于预设内存区域的主机内存才可能成为虚拟机的加密内存区域。
虚拟机内存基本单元是预设内存区域中粒度最小的管理单元,虚拟机的加密内存区域包括至少一个所述虚拟机内存基本单元。
在访问控制检查器中设置有本申请实施例所提供的安全页面属性表,安全页面属性表的每个第一比特位都唯一对应一个预设内存区域中划分的虚拟机内存基本单元,每个第一比特位中记载的比特值都适于标识虚拟机内存基本单元是否位于加密内存区域中,所述第一比特位可以是安全页面属性表中的任何一个比特位。这样,相同比特位大小的安全页面属性表,可以管理最大数量的虚拟机内存基本单元。
在一些实施例中,虚拟机内存基本单元与***内存基本单元相匹配可以是指虚拟机内存基本单元与***内存基本单元的划分粒度相同;在另一些实施例中,也可以是指虚拟机内存基本单元的划分粒度是***内存基本单元的划分粒度的整数倍。
若所述主机物理地址不位于虚拟机的加密内存区域,确认所述主机物理地址位于普通内存区域,普通内存区域的对所述主机物理地址进行直接数据读写。
在步骤S15中,访问控制检查器对所述虚拟机进行安全身份验证,并根据安全身份验证的结果,决定是否允许处理所述内存访问请求。
当主机物理地址位于加密内存区域时,需要对虚拟机进行安全身份验证,从而确定是否允许处理所述内存访问请求。
在步骤S16中,访问控制检查器允许执行所述内存访问请求。
当主机物理地址不位于加密内存区域中,或者发送所述内存访问请求的虚拟机为安全虚拟机时,允许执行所述内存访问请求。
可以看出,本申请实施例所提供的虚拟机加密内存区域的访问方法,使安全页面属性表中每一比特位与一虚拟机内存基本单元对应,从而可以控制更多的虚拟机内存基本单元,使虚拟机内存基本单元的粒度更小,从而与现代操作***中***内存基本单元的粒度相匹配,进而提升访问性能。
为了对所述虚拟机进行安全身份验证,本申请实施例设置安全验证表。请参考图,请参考图6,图6为本申请实施例所提供的内存访问方法的安全验证表的一示意图。
所述安全验证表包括与虚拟机的虚拟机标识一一对应的第二比特位,所述第二比特位记录的比特值适于表示虚拟机标识是否为安全虚拟机的虚拟机标识。
如图所示,安全验证表包括多个第二比特位,每个第二比特位与一虚拟机标识对应。所述第二比特位仅是为了与安全页面属性表中的第一比特位相区分。
当确定访问请求是请求读写加密虚拟机内的数据后,为了防止恶意虚拟机管理器控制不具有加密内存区域的普通虚拟机读取安全虚拟机的加密内存区域,在一具体实施方式中,请参考图7,图7为本申请实施例所提供的内存方访问方法的另一流程示意图。
如图所示,在步骤S21中,处理器获取虚拟机发送的第一内存访问请求,所述第一内存访问请求中包括虚拟机访问的虚拟地址。
在步骤S22中,处理器利用预先从虚拟机的加密内存区域中获取的嵌套页表,将所述虚拟地址转换为主机物理地址。
在步骤S23中,处理器发送内存访问请求至访问控制检查器,所述内存访问请求包括主机物理地址。
步骤S21至步骤S23的具体内容请参考上述步骤S11至步骤S13的相关描述,值得注意的是,所述内存访问请求中还包括发送所述内存访问请求的虚拟机的虚拟机标识。
在步骤S24中,访问控制检查器根据预先配置的安全页面属性表,判断所述主机物理地址是否位于加密内存区域;当判断为是时执行步骤S25,当为否时执行步骤S26。
当然,其中所述加密内存区域划分有供虚拟机使用的多个虚拟机内存基本单元,所述虚拟机内存基本单元的划分粒度与操作***使用的***内存基本单元的划分粒度相匹配;所述安全页面属性表包括多个第一比特位,一个第一比特位对应一个虚拟机内存基本单元,且用于指示对应的虚拟机内存基本单元是否位于加密内存区域。
当主机物理地址还位于加密内存区域时,需要进一步判断是否允许执行所述内存访问请求,而当主机物理地址不位于加密内存区域时,则可以直接允许发送访问请求至内存控制器,以使所述内存控制器执行所述内存访问请求。
在步骤S25中,访问控制检查器根据所述虚拟机标识和预先配置的安全验证表,判断所述虚拟机是否为安全虚拟机;当判断为是时,执行步骤S26,当判断为否时,执行步骤S27。
所述访问虚拟机标识位于访问控制检查器收到的内存访问请求中,是发送所述访问请求的虚拟机的虚拟机标识。由于是处理器发送的内存访问请求,所以恶意虚拟机管理器无法篡改所述虚拟机标识。
所述安全验证表包括多个第二比特位,一个第二比特位的数值用于表示一个虚拟机标识是否与安全虚拟机相对应,其中,安全虚拟机的数据使用虚拟机密钥进行安全保护。
因此,在一具体实施方式中,根据虚拟机标识和预先配置的安全验证表,判断发送所述访问请求的虚拟机是否为安全虚拟机的步骤可以参考图8,图8为本申请实施例所提供的内存访问方法中,安全虚拟机身份验证方法。
如图所示,包括:
在步骤S31中,访问控制检查器根据所述虚拟机标识,确定所述安全验证表中与所述虚拟机标识对应的目标第二比特位。
确定与所述虚拟机标识对应的第二比特位为目标第二比特位。
在步骤S32中,访问控制检查器根据所述目标第二比特位的比特值,判断所述虚拟机是否为安全虚拟机。
为了防止加密内存区域中的数据被不同安全虚拟机获取,在一具体实施方式中,请继续参考图7。
如图所示,在步骤S26中,访问控制检查器处理所述内存访问请求。
当访问请求并非是对加密内存区域中数据的访问时,或者请求访问加密内存区域的请问请求是由安全虚拟机发送的时,可以处理所述内存访问请求。在一些实施例中,可以是发送访问请求至内存控制器,从而使内存控制器执行所述内存访问请求。具体的,内存控制器接受所述内存访问请求后,可以获取与所述虚拟机的虚拟机标识对应的虚拟机密钥,并根据所述内存访问请求的类型,以所述虚拟机密钥,对所述虚拟机物理地址的数据进行加密或解密。
在步骤S27中,禁止执行所述内存访问请求。
当访问控制检查器判断主机物理地址位于加密内存区域的访问请求中的虚拟机标识对应普通虚拟机,即判断所述虚拟机不为安全虚拟机时,可以判断该次访问时恶意虚拟机管理器控制下的普通虚拟机的攻击行为,从而禁止处理所述内存访问请求,不再发往内存控制器。
所述安全页面属性表可以在所述虚拟机的启动过程中配置完成,具体请参考图9,图9为本申请实施例所提供的虚拟机的配置方法的一流程示意图。
如图所示,在步骤S41中,安全处理器接收加密内存区域申请,所述加密内存区域申请用于为待启动的虚拟机申请加密内存区域,所述加密内存区域申请包括所述虚拟机申请的虚拟机内存基本单元的内存地址。
虚拟机的加密内存区域是在启动虚拟机的阶段配置的。在启动虚拟机之前,安全处理器会根据加密内存区域申请分配该申请指定的基本单元给待启动虚拟机。在一些实施例中,所述加密内存区域申请可以由虚拟机管理器发送。
在步骤S42中,安全处理器根据所述内存地址,确定安全页面属性表中与所述虚拟机内存基本单元对应的第一比特位,将所述第一比特位的比特值配置为表示所述虚拟机内存基本单元位于加密内存区域中。
其中,所述加密内存区域按照第一粒度划分有多个虚拟机内存基本单元,所述安全页面属性表包括与各个虚拟机内存基本单元对应的第一比特位,一个第一比特位的比特值用于指示对应的虚拟机内存基本单元是否位于加密内存区域。
安全处理器根据加密内存区域申请中所包括的虚拟机内存基本单元的内存地址,计算得到安全页面属性表中与该虚拟机内存基本单元对应的比特位,该比特位即第一比特位。设置第一比特位的比特值为表示虚拟机内存基本单元位于加密内存区域的比特值。在一些实施例中,所述表示虚拟机内存基本单元位于加密内存区域中的比特值为“1”,所述安全处理器可以设置第一比特位的比特值为1.
这样,在为待启动的虚拟机配置加密内存区域时,通过安全处理器配置安全页面属性表,安全页面属性表只由安全处理器修改和写入,从而可以防止恶意虚拟机管理器修改安全页面属性表,为之后篡改或窃取位于加密内存区域中的虚拟机数据做准备。
在一具体实施方式中,通过预先配置的安全页面属性表,根据主机物理地址,判断所述主机物理地址是否位于加密内存区域的具体步骤可以参考图10,图10为本申请实施例所提供的内存访问方法的安全页面属性表查找方法的一流程图。
如图所示,在步骤S51中,访问控制检查器根据所述起始地址或所述终止地址,以及所述虚拟机内存基本单元的粒度,确定所述主机物理地址所位于的目标虚拟机内存基本单元。
具体的,可以首先通过起始地址或终止地址与所述主机物理地址作差,得到一差值,该差值反应主机物理地址与起始地址或终止地址之间的主机物理内存大小;再用虚拟机内存基本单元的粒度除以该差值,得到主机物理地址与起始地址或终止地址之间包括多少虚拟机内存基本单元,从而得知主机物理地址位于的目标虚拟机内存基本单元。
在一具体实施方式中,可以从第三寄存器中获取预先设置的虚拟机内存基本单元的粒度,所述第三寄存器可以集成于***级芯片中,从而便于处理器从第三寄存器中读写虚拟机内存基本单元的粒度。
在步骤S52中,访问控制检查器确定所述目标内存基本单元在所述安全页面属性表中的目标项,以及所述目标内存基本单元在所述目标项中对应的目标第一比特位。
其中,所述安全页面属性表包括多个项,一个项纪录有至少一个比特位。
具体的,可以是通过目标基本单元与起始地址或终止地址间包括的虚拟机内存基本单元个数除以安全页面属性表中每一项所包含的比特位个数,从而得知目标项。进一步地,可以通过对目标基本单元的序号除以目标项中的比特位个数取余数,该余数即为目标项中比特位的序号,也即目标项中的目标第一比特位。
在步骤S53中,访问控制检查器根据所述目标第一比特位的比特值,判断所述主机物理地址是否位于所述加密内存区域中。
从目标第一比特位中读取比特值,从而可以根据目标第一比特位的比特值判断该主机物理地址是否位于所述加密内存区域中。
当判断主机物理地址不位于加密内存区域时,表示访问请求并非是对加密内存区域中的数据请求访问,而需要保护的数据通常只会位于加密内存区域中,虚拟机的普通内存中的数据通常不需要保护,因此为了便于加快处理速度,可以允许执行所述访问请求。具体的,可以是发送所述访问请求至内存控制器,由内存控制器根据该访问请求包括的主机物理地址读写数据。
这样,可以以软件的方式根据主机物理地址获得目标第一比特位,而不需要额外设置和维持主机物理地址与第一比特位对应关系的关系表,从而节省了***级芯片中的空间。
为了使所述安全验证表可以不被篡改的记录信息,在一具体实施方式中,所述加密内存区域申请还包括所述虚拟机的虚拟机标识,所述配置过程包括安全验证表的配置,包括:
安全处理器根据所述虚拟机标识,确定安全验证表中与所述虚拟机标识对应的第二比特位,将所述第二比特位的比特值配置为表示所述虚拟机标识是否为安全虚拟机的虚拟机标识。
所述安全验证表包括多个第二比特位,一个第二比特位的比特值用于表示一个虚拟机标识是否与安全虚拟机相对应,其中,安全虚拟机的数据使用虚拟机密钥进行安全保护。
这样,通过安全处理器配置和修改安全验证表,安全验证表只由安全处理器配置,虚拟机管理器无权对安全验证表配置,从而可以防止恶意虚拟机管理器篡改安全验证表,从而将不具有加密内存区域的普通虚拟在安全验证表中记录为安全虚拟机,从而进一步使得被篡改的普通虚拟机对加密内存区域的访问请求得到执行。
在一具体实施方式中,内存控控制器中可以包括虚拟机密钥,所述内存控制器获取与所述访问请求包括的虚拟机标识对应的虚拟机密钥,并进一步根据所述虚拟机密钥加解密根据所述访问请求中的主机物理地址获取的数据。
这样,内存控制器通过针对访问请求中的虚拟机标识获取虚拟机密钥,并根据虚拟机密钥对获取的数据进行加解密,可以防止加密内存区域中的数据被其他虚拟机解密获取,即使恶意虚拟机管理器通过某些方式控制了安全虚拟机来读取其他虚拟机的加密内存区域中的数据,也可以时恶意虚拟机管理器只获取到加密状态的数据,无法对其进行解密,从而实现对加密内存区域中数据的保护。
在一具体实施方式中,主机内存过于巨大,即使本申请实施例提供的内存访问方法的的安全页面属性表,也无法使得虚拟机对所有的主机内存以与操作***对内存划分粒度相匹配的粒度划分虚拟机内存基本单元,因此本申请实施例还提供一种内存访问方法,请参考图11,图11为本申请实施例所提供的内存访问方法的又一流程示意图。
如图所示,包括:
在步骤S61中,处理器获取虚拟机发送的虚拟内存访问请求,所述虚拟内存访问请求中包括虚拟机访问的虚拟地址。
在步骤S62中,处理器利用预先从虚拟机的加密内存区域中获取的嵌套页表,将所述虚拟地址转换为主机物理地址。
在步骤S63中,处理器发送内存访问请求至访问控制检查器,所述内存访问请求包括主机物理地址。
步骤S61-步骤S63的相关内容请参考上述步骤S11-步骤S13的描述。
在步骤S64中,访问控制检查器判断所述主机物理地址是否位于预设内存区域;当为是时执行步骤S65,当为否时执行步骤S67。
所述加密内存区域为预设内存区域中提供给虚拟机使用,并利用虚拟机密钥保护的区域,这样,在主机内存中划分部分内存作为预设内存区域,只在机密区内存中划分虚拟机内存基本单元,从而可以避免在主机内存过于巨大时,难以划分与操作***的划分粒度相匹配粒度大小的虚拟机内存基本单元。
为了判断所述主机物理地址是否位于预设内存区域,在一具体实施方式中,获取预设内存区域的起始地址和终止地址,判断所述主机物理地址是否小于所述终止地址,且大于所述起始地址。
所述起始地址大于内存最小地址,所述终止地址小于内存最大地址;其中,地址的大小与地址在内存中的位置相关联。当判断结果为所述主机物理地址小于所述终止地址,大于所述起始地址,则所述主机物理地址位于预设内存区域,判断结果为所述主机物理地址大于所述终止地址或小于所述起始地址,则所述主机物理地址不位于所述预设内存区域。
这样,可以在判断所述主机物理地址是否位于预设内存区域内。
为了快速获取预设内存区域,在一具体实施方式中,可以通过从第一寄存器中获取预先设置的起始地址,从第二寄存器中获取预先设置的终止地址。
这样,可将第一寄存器和第二寄存器和处理器一同集成在***级芯片中,由处理器以硬件的方式快速调取。快速判断所述主机物理地址是否小于所述终止地址且大于所述加密区起始地址。
在步骤S65中,访问控制检查器根据预先配置的安全页面属性表,判断所述主机物理地址是否位于加密内存区域。
所述安全页面属性表的比特位与预设内存区域中划分的虚拟机内存基本单元一一对应,所述比特位记录的比特值适于表示虚拟机内存基本单元是否位于加密内存区域中;当判断为是时,执行步骤S66,当判断为否时,执行步骤S67。
在步骤S66中,访问控制检查器对所述虚拟机进行安全身份验证,并根据安全身份验证的结果,决定是否允许处理所述内存访问请求。
在步骤S67中,访问控制检查器允许执行所述内存访问请求。
步骤S65至步骤S67的相关内容请参考上述步骤S14至步骤S17的描述。
为解决上述技术问题,本申请实施例还提供一种内存访问装置,请参考图12,图12为本申请实施例所提供的内存访问装置一示意图。
如图所示,本申请实施例所提供的内存访问装置,包括:
内存访问请求接收单元11,适于接收内存访问请求,所述内存访问请求包括虚拟机访问的主机物理地址;
加密内存区域判断单元12,适于根据预先配置的安全页面属性表,判断所述主机物理地址是否位于虚拟机的加密内存区域;其中,所述加密内存区域划分有供虚拟机使用的多个虚拟机内存基本单元,所述虚拟机内存基本单元的划分粒度与操作***使用的***内存基本单元的划分粒度相匹配;所述安全页面属性表包括多个第一比特位,一个第一比特位对应一个虚拟机内存基本单元,且用于指示对应的虚拟机内存基本单元是否位于加密内存区域;
安全身份验证单元13,适于若所述主机物理地址位于虚拟机的加密内存区域,对所述虚拟机进行安全身份验证,并根据安全身份验证的结果,决定是否允许处理所述内存访问请求。
可以看出,本申请实施例所提供的虚拟机加密内存区域的访问装置,使安全页面属性表中每一第一比特位与一虚拟机内存基本单元对应,从而可以控制更多的虚拟机内存基本单元,使虚拟机内存基本单元的粒度更小,从而与现代操作***中***内存基本单元的粒度相匹配,进而提升访问性能。
本申请实施例还提供一种虚拟机的配置装置,请参考图13,图13为本申请实施例所提供的虚拟机的配置装置示意图。
如图所示,本申请实施例所提供的虚拟机的配置装置,包括:
加密内存区域申请接收单元21,适于接收加密内存区域申请,所述加密内存区域申请用于为待启动的虚拟机申请加密内存区域,所述加密内存区域申请包括所述虚拟机申请的虚拟机内存基本单元的内存地址;
安全页面属性表配置单元22,适于根据所述内存地址,确定安全页面属性表中与所述虚拟机内存基本单元对应的第一比特位,将所述第一比特位的比特值配置为表示所述虚拟机内存基本单元位于加密内存区域中;
其中,所述加密内存区域按照第一粒度划分有多个虚拟机内存基本单元,所述安全页面属性表包括与各个虚拟机内存基本单元对应的第一比特位,一个第一比特位的比特值用于指示对应的虚拟机内存基本单元是否位于加密内存区域。
本申请实施例还提供一种内存访问装置,请参考图14,图14为本申请实施例所提供的内存访问装置另一示意图。
如图所示,本申请实施例所提供的内存访问装置,包括:
虚拟内存访问请求获取单元31,适于获取虚拟机发送的虚拟内存访问请求,所述虚拟内存访问请求中包括虚拟机访问的虚拟地址;
虚拟地址转换单元32,适于利用预先从虚拟机的加密内存区域中获取的嵌套页表,将所述虚拟地址转换为主机物理地址,所述嵌套页表通过嵌套页表基地址获取,所述嵌套页表预先存储于所述加密虚拟机的虚拟机控制块中,所述虚拟机控制块存储于所述加密虚拟机的加密内存区域中;
内存访问请求发送单元33,适于发送内存访问请求至访问控制检查器,所述内存访问请求包括所述主机物理地址;其中,所述访问控制检查器被配置为执行如上述所述的内存访问方法。
本申请实施例还提供一种计算机***,请参考图15,图15为本申请所提供的计算机***的另一示意图。
如图所示,本申请实施例所提供的计算机***,包括处理器,访问控制检查器;其中,所述处理器和访问控制检查器被配置为执行上述所述内存访问方法。
可选地,本申请实施例所提供的计算机***,所述访问控制检查器的数量为多个;所述计算机***还包括:至少一个内存控制器,以及内存控制器所控制的内存,其中,一个内存控制器和所控制的内存形成一组内存访问通路;一个访问控制检查器与一组内存访问通路相对应。
本申请实施例还提供一种芯片,包括如上述所述的计算机***。
本申请实施例还提供一种电子设备,包括如上述所述的芯片。
可以看出,本申请实施例所提供的虚拟机的配置装置、内存访问装置、计算机***、芯片和电子设备,使安全页面属性表中每一比特位与一虚拟机内存基本单元对应,从而可以控制更多的虚拟机内存基本单元,使虚拟机内存基本单元的粒度更小,从而与现代操作***中***内存基本单元的粒度相匹配,进而提升访问性能。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是符合与本文所公开的原理和新颖特点相一致的最宽的范围。上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (20)
1.一种内存访问方法,其特征在于,适用于访问控制检查器,所述方法包括:
接收内存访问请求,所述内存访问请求包括虚拟机访问的主机物理地址;
根据预先配置的安全页面属性表,判断所述主机物理地址是否位于虚拟机的加密内存区域;其中,所述加密内存区域划分有供虚拟机使用的多个虚拟机内存基本单元,所述虚拟机内存基本单元的划分粒度与操作***使用的***内存基本单元的划分粒度相匹配;所述安全页面属性表包括多个第一比特位,一个第一比特位对应一个虚拟机内存基本单元,且用于指示对应的虚拟机内存基本单元是否位于加密内存区域;
若所述主机物理地址位于虚拟机的加密内存区域,对所述虚拟机进行安全身份验证,并根据安全身份验证的结果,决定是否允许处理所述内存访问请求。
2.如权利要求1所述的内存访问方法,其特征在于,所述内存访问请求还包括所述虚拟机的虚拟机标识;所述对所述虚拟机进行安全身份验证包括:
根据所述虚拟机标识和预先配置的安全验证表,判断所述虚拟机是否为安全虚拟机;所述安全验证表包括多个第二比特位,一个第二比特位的数值用于表示一个虚拟机标识是否与安全虚拟机相对应,其中,安全虚拟机的数据使用虚拟机密钥进行安全保护;
所述根据安全身份验证的结果,决定是否允许处理所述内存访问请求,包括:
当判断所述虚拟机不为安全虚拟机时,禁止处理所述内存访问请求;当所述虚拟机为安全虚拟机时,处理所述内存访问请求。
3.如权利要求2所述的内存访问方法,其特征在于,所述处理所述内存访问请求包括:
发送所述内存访问请求至内存控制器,以使内存控制器执行所述内存访问请求。
4.如权利要求3所述的内存访问方法,其特征在于,所述发送所述内存访问请求至内存控制器,以使内存控制器执行所述内存访问请求,包括:
发送所述内存访问请求至内存控制器,以使所述内存控制器获取与所述虚拟机的虚拟机标识对应的虚拟机密钥,并使得所述内存控制器,根据所述内存访问请求的类型,以所述虚拟机密钥,对所述主机物理地址的数据进行加解密。
5.如权利要求1-4任一项所述的内存访问方法,其特征在于,在所述根据预先配置的安全页面属性表,判断所述主机物理地址是否位于虚拟机的加密内存区域的步骤之前,所述方法还包括:
判断所述主机物理地址是否位于预设内存区域,其中,所述加密内存区域为预设内存区域中提供给虚拟机使用,并利用虚拟机密钥保护的区域;
当所述主机物理地址不位于所述预设内存区域中时,取消执行所述根据预先配置的安全页面属性表,判断所述主机物理地址是否位于虚拟机的加密内存区域的步骤。
6.如权利要求5所述的内存访问方法,其特征在于,所述判断所述主机物理地址是否位于预设内存区域包括:
获取所述预设内存区域的起始地址和终止地址,所述起始地址大于内存最小地址,所述终止地址小于内存最大地址;其中,地址的大小与地址在内存中的位置相关联;
判断所述主机物理地址是否小于所述终止地址,且大于所述起始地址;
其中,判断结果为所述主机物理地址小于所述终止地址,大于所述起始地址,则所述主机物理地址位于预设内存区域,判断结果为所述主机物理地址大于所述终止地址或小于所述起始地址,则所述主机物理地址不位于所述预设内存区域。
7.如权利要求6所述的内存访问方法,其特征在于,所述根据预先配置的安全页面属性表,判断所述主机物理地址是否位于虚拟机的加密内存区域,包括:
根据所述起始地址或所述终止地址,以及所述虚拟机内存基本单元的划分粒度,确定所述主机物理地址所位于的目标内存基本单元;
确定所述目标内存基本单元在所述安全页面属性表中的目标项,以及所述目标内存基本单元在所述目标项中对应的目标第一比特位;其中,所述安全页面属性表包括多个项,一个项记录有至少一个第一比特位;
根据所述目标第一比特位的比特值,判断所述主机物理地址是否位于所述加密内存区域中。
8.如权利要求2所述的内存访问方法,其特征在于,所述根据所述虚拟机标识和预先配置的安全验证表,判断所述虚拟机是否为安全虚拟机,包括:
根据所述虚拟机标识,确定所述安全验证表中与所述虚拟机标识对应的目标第二比特位;
根据所述目标第二比特位的比特值,判断所述虚拟机是否为安全虚拟机。
9.如权利要求7所述的内存访问方法,其特征在于,所述获取预设内存区域的起始地址和终止地址,包括:
从第一寄存器中获取预先设置的起始地址,从第二寄存器中获取预先设置的终止地址。
10.如权利要求9所述的内存访问方法,其特征在于,在根据所述起始地址或所述终止地址,以及所述虚拟机内存基本单元的划分粒度,确定所述主机物理地址所位于的目标内存基本单元的步骤之前,还包括:
从第三寄存器中获取预先设置的虚拟机内存基本单元的粒度。
11.一种虚拟机的配置方法,其特征在于,适用于安全处理器,包括:
接收加密内存区域申请,所述加密内存区域申请用于为待启动的虚拟机申请加密内存区域,所述加密内存区域申请包括所述虚拟机申请的虚拟机内存基本单元的内存地址;
根据所述内存地址,确定安全页面属性表中与所述虚拟机内存基本单元对应的第一比特位,将所述第一比特位的比特值配置为表示所述虚拟机内存基本单元位于加密内存区域中;
其中,所述加密内存区域按照第一粒度划分有多个虚拟机内存基本单元,所述安全页面属性表包括与各个虚拟机内存基本单元对应的第一比特位,一个第一比特位的比特值用于指示对应的虚拟机内存基本单元是否位于加密内存区域。
12.如权利要求11所述的虚拟机的配置方法,其特征在于,所述加密内存区域申请还包括所述虚拟机的虚拟机标识;
在所述接收加密内存区域申请的步骤之后,所述方法还包括:
根据所述虚拟机标识,确定安全验证表中与所述虚拟机标识对应的第二比特位,将所述第二比特位的比特值配置为表示所述虚拟机标识是否为安全虚拟机的虚拟机标识;所述安全验证表包括多个第二比特位,一个第二比特位的数值用于表示一个虚拟机标识是否与安全虚拟机相对应,其中,安全虚拟机的数据使用虚拟机密钥进行安全保护。
13.一种内存访问方法,其特征在于,适用于处理器,包括:
获取虚拟机发送的虚拟内存访问请求,所述虚拟内存访问请求中包括虚拟机访问的虚拟地址;
利用预先从虚拟机的加密内存区域中获取的嵌套页表,将所述虚拟地址转换为主机物理地址,所述嵌套页表通过嵌套页表基地址获取,所述嵌套页表预先存储于所述加密虚拟机的虚拟机控制块中,所述虚拟机控制块存储于所述加密虚拟机的加密内存区域中;
发送内存访问请求至访问控制检查器,所述内存访问请求包括所述主机物理地址;其中,所述访问控制检查器被配置为执行如权利要求1至权利要求10之一所述的内存访问方法。
14.一种内存访问装置,其特征在于,包括:
内存访问请求接收单元,适于接收内存访问请求,所述内存访问请求包括虚拟机访问的主机物理地址;
加密内存区域判断单元,适于根据预先配置的安全页面属性表,判断所述主机物理地址是否位于虚拟机的加密内存区域;其中,所述加密内存区域划分有供虚拟机使用的多个虚拟机内存基本单元,所述虚拟机内存基本单元的划分粒度与操作***使用的***内存基本单元的划分粒度相匹配;所述安全页面属性表包括多个第一比特位,一个第一比特位对应一个虚拟机内存基本单元,且用于指示对应的虚拟机内存基本单元是否位于加密内存区域;
安全身份验证单元,适于若所述主机物理地址位于虚拟机的加密内存区域,对所述虚拟机进行安全身份验证,并根据安全身份验证的结果,决定是否允许处理所述内存访问请求。
15.一种虚拟机的配置装置,其特征在于,包括:
加密内存区域申请接收单元,适于接收加密内存区域申请,所述加密内存区域申请用于为待启动的虚拟机申请加密内存区域,所述加密内存区域申请包括所述虚拟机申请的虚拟机内存基本单元的内存地址;
安全页面属性表配置单元,适于根据所述内存地址,确定安全页面属性表中与所述虚拟机内存基本单元对应的第一比特位,将所述第一比特位的比特值配置为表示所述虚拟机内存基本单元位于加密内存区域中;
其中,所述加密内存区域按照第一粒度划分有多个虚拟机内存基本单元,所述安全页面属性表包括与各个虚拟机内存基本单元对应的第一比特位,一个第一比特位的比特值用于指示对应的虚拟机内存基本单元是否位于加密内存区域。
16.一种内存访问装置,其特征在于,包括:
虚拟内存访问请求获取单元,适于获取虚拟机发送的虚拟内存访问请求,所述虚拟内存访问请求中包括虚拟机访问的虚拟地址;
虚拟地址转换单元,适于利用预先从虚拟机的加密内存区域中获取的嵌套页表,将所述虚拟地址转换为主机物理地址,所述嵌套页表通过嵌套页表基地址获取,所述嵌套页表预先存储于所述加密虚拟机的虚拟机控制块中,所述虚拟机控制块存储于所述加密虚拟机的加密内存区域中;
内存访问请求发送单元,适于发送内存访问请求至访问控制检查器,所述内存访问请求包括所述主机物理地址;其中,所述访问控制检查器被配置为执行如权利要求1至权利要求10之一所述的内存访问方法。
17.一种计算机***,其特征在于,包括:处理器,访问控制检查器;其中,所述处理器被配置为执行如权利要求13所述的内存访问方法,所述访问控制检查器被配置为执行如权利要求1至权利要求10之一所述的内存访问方法。
18.如权利要求17所述的计算机***,其特征在于,所述访问控制检查器的数量为多个;所述计算机***还包括:至少一个内存控制器,以及内存控制器所控制的内存,其中,一个内存控制器和所控制的内存形成一组内存访问通路;一个访问控制检查器与一组内存访问通路相对应。
19.一种芯片,其特征在于,包括:如权利要求17所述的计算机***。
20.一种电子设备,其特征在于,包括如权利要求19所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211633272.6A CN116126463A (zh) | 2022-12-19 | 2022-12-19 | 内存访问方法、配置方法、计算机***及相关器件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211633272.6A CN116126463A (zh) | 2022-12-19 | 2022-12-19 | 内存访问方法、配置方法、计算机***及相关器件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126463A true CN116126463A (zh) | 2023-05-16 |
Family
ID=86293810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211633272.6A Pending CN116126463A (zh) | 2022-12-19 | 2022-12-19 | 内存访问方法、配置方法、计算机***及相关器件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126463A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492932A (zh) * | 2023-12-28 | 2024-02-02 | 北京微核芯科技有限公司 | 虚拟机访问方法和设备 |
-
2022
- 2022-12-19 CN CN202211633272.6A patent/CN116126463A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492932A (zh) * | 2023-12-28 | 2024-02-02 | 北京微核芯科技有限公司 | 虚拟机访问方法和设备 |
CN117492932B (zh) * | 2023-12-28 | 2024-04-09 | 北京微核芯科技有限公司 | 虚拟机访问方法和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109901911B (zh) | 一种信息设置方法、控制方法、装置及相关设备 | |
CN110928646B (zh) | 一种访问共享内存的方法、装置、处理器和计算机*** | |
CN109766165B (zh) | 一种内存访问控制方法、装置、内存控制器及计算机*** | |
CN109766164B (zh) | 一种访问控制方法、内存管理方法及相关装置 | |
KR101372109B1 (ko) | 가상 보안 모듈을 위한 구조 | |
CN109800050B (zh) | 一种虚拟机的内存管理方法、装置、相关设备及*** | |
CN112433817B (zh) | 信息配置方法、直接存储访问方法及相关装置 | |
CN110348204B (zh) | 一种代码保护***、认证方法、装置、芯片及电子设备 | |
CN107563207B (zh) | 加密方法、装置及解密方法、装置 | |
CN111143247B (zh) | 存储装置数据完整性保护方法及其控制器、片上*** | |
EP2310976A1 (en) | Secure memory management system and method | |
CN116126463A (zh) | 内存访问方法、配置方法、计算机***及相关器件 | |
CN114237817A (zh) | 虚拟机数据读写方法及相关装置 | |
CN110955904B (zh) | 一种数据加密方法、数据解密方法、处理器及计算机设备 | |
CN112711752A (zh) | 一种嵌入式设备安全*** | |
CN116450281A (zh) | 访问处理方法、虚拟机标识配置方法、芯片及计算机设备 | |
CN112416526B (zh) | 一种直接存储访问方法、装置及相关设备 | |
CN112363800B (zh) | 一种网卡的内存访问方法、安全处理器、网卡及电子设备 | |
CN115994389A (zh) | 一种基于risc-v架构的硬件内存加密***及其应用 | |
CN111857947B (zh) | 内存隔离方法、隔离检查电路和cpu芯片 | |
CN111666579B (zh) | 计算机设备及其访问控制方法和计算机可读介质 | |
CN113343265B (zh) | 一种密钥配置方法、装置和相关设备 | |
CN110990120B (zh) | 虚拟机监视器分区间通信方法及装置、存储介质和终端 | |
CN116226870B (zh) | 安全增强***及方法 | |
CN116860666A (zh) | 一种gpu内存保护方法、装置、芯片及电子设备 |
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 |