CN109766165A - 一种内存访问控制方法、装置、内存控制器及计算机系统 - Google Patents
一种内存访问控制方法、装置、内存控制器及计算机系统 Download PDFInfo
- Publication number
- CN109766165A CN109766165A CN201811401836.7A CN201811401836A CN109766165A CN 109766165 A CN109766165 A CN 109766165A CN 201811401836 A CN201811401836 A CN 201811401836A CN 109766165 A CN109766165 A CN 109766165A
- Authority
- CN
- China
- Prior art keywords
- access
- memory
- permission
- application heap
- 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.)
- Granted
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种内存访问控制方法、装置、内存控制器及计算机系统;其中方法包括:接收对内存的访问请求;如果所述访问请求所对应的目标内存段配置有访问权限,判断所述访问请求是否匹配所述目标内存段的访问权限,其中,内存中的至少一个内存段配置有访问权限;若所述访问请求匹配所述内存段的访问权限,允许对所述目标内存段执行所述访问请求。本发明实施例可对内存进行访问控制,提升内存的安全性;在一种虚拟化场景下,本发明实施例可对虚拟机的内存段配置访问权限,并进行访问控制。
Description
技术领域
本发明实施例涉及内存访问技术领域,具体涉及一种内存访问控制方法、装置、内存控制器及计算机系统。
背景技术
内存是物理主机中重要的部件之一,它是与CPU核心进行沟通的桥梁。物理主机中程序的运行都是在内存中进行,因此内存的性能对物理主机的影响非常大。
一般的,内存可被物理主机的特权级程序(如操作系统)无限制地进行访问,如果特权级程序存在漏洞,无疑会产生恶意的内存访问,对内存的安全性造成威胁,例如在虚拟化技术下,恶意的内存访问将影响虚拟机内存的安全性;因而,如何对内存进行访问控制,以提升内存的安全性,成为了本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明实施例提供一种内存访问控制方法、装置、内存控制器及计算机系统,对内存进行访问控制,以提升内存的安全性。
为实现上述目的,本发明实施例提供如下技术方案:
一种内存访问控制方法,包括:
接收对内存的访问请求;
如果所述访问请求所对应的目标内存段配置有访问权限,判断所述访问请求是否匹配所述目标内存段的访问权限,其中,内存中的至少一个内存段配置有访问权限;
若所述访问请求匹配所述内存段的访问权限,允许对所述目标内存段执行所述访问请求。
可选的,所述方法还包括:
接收对内存段配置访问权限的配置请求;
为所述内存段配置访问权限。
可选的,所述为所述内存段配置访问权限包括:
获取所述配置请求中的内存段地址及对应的权限描述信息;
根据所述权限描述信息,为所述内存段地址对应的内存段配置权限描述信息。
可选的,所述判断所述访问请求是否匹配所述目标内存段的访问权限包括:
调用目标内存段的权限描述信息;
判断所述访问请求的请求信息是否与所述目标内存段的权限描述信息匹配。
可选的,内存段的权限描述信息包括:
内存段的起始物理地址、内存段的空间大小和读写权限信息。
可选的,所述判断所述访问请求的请求信息是否与所述目标内存段的权限描述信息匹配包括:
判断访问请求中指示的访问地址和访问类型,是否与目标内存段的起始物理地址、内存段的空间大小和读写权限相匹配。
可选的,内存段的权限描述信息还包括:
合法访问来源信息。
可选的,所述方法还包括:
根据预设条件判断所述配置请求是否有效;
当所述配置请求有效时,触发执行所述为所述内存段配置访问权限的步骤。
可选的,配置有访问权限的内存段为虚拟机内存的内存段。
本发明实施例还提供一种内存访问控制装置,其特征在于,包括:
访问控制逻辑,用于接收对内存的访问请求;如果所述访问请求所对应的目标内存段配置有访问权限,判断所述访问请求是否匹配所述目标内存段的访问权限,其中,内存中的至少一个内存段配置有访问权限;若所述访问请求匹配所述内存段的访问权限,允许对所述目标内存段执行所述访问请求。
可选的,所述装置还包括:
配置逻辑,用于接收对内存段配置访问权限的配置请求;为所述内存段配置访问权限。
可选的,所述配置逻辑,用于为所述内存段配置访问权限,具体包括:
获取所述配置请求中的内存段地址及对应的权限描述信息;
根据所述权限描述信息,为所述内存段地址对应的内存段配置权限描述信息。
可选的,所述装置还包括:
权限存储单元,所述权限存储单元用于存储内存段的权限描述信息。
可选的,所述访问控制逻辑用于,判断所述访问请求是否匹配所述目标内存段的访问权限,具体包括:
调用所述权限存储单元中目标内存段的权限描述信息;
判断所述访问请求的请求信息是否与所述目标内存段的权限描述信息匹配。
本发明实施例还提供一种内存控制器,包括:上述所述的内存访问控制装置。
可选的,所述内存控制器还包括:
加密引擎,用于存储为虚拟机的内存进行加密的密钥;
本发明实施例还提供一种计算机系统,包括:
安全处理器,用于向内存控制器发送对内存段配置访问权限的配置请求;
如上述所述的内存控制器。
本发明实施例提供的内存的访问控制方法中,内存控制器可基于安全硬件的请求配置内存中至少一个内存段的访问权限,从而对于针对内存的访问请求,内存控制器可在访问请求对应的目标内存段配置有访问权限时,判断所述访问请求是否匹配所述目标内存段的访问权限,并在判断结果为是时,允许对所述目标内存段执行所述访问请求。在本发明实施例提供的内存的访问控制方法,内存控制器能够根据内存中的内存段的访问权限,对内存段的访问进行控制,以此提供对内存的保护、隔离能力,避免特权级程序对内存的任意访问,提升了内存的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是一种物理主机的系统架构示意图;
图2是另一种物理主机的系统架构示意图;
图3是一种设置权限存储单元的结构示意图;
图4是另一种设置权限存储单元的结构示意图;
图5是配置内存的访问权限的一种可选方法流程;
图6是内存访问控制方法的一种示例流程;
图7是一种内存控制器的结构示意图;
图8是一种计算机系统的结构示意图;
图9是安全虚拟化技术的系统架构;
图10是内存中划分安全内存和普通内存的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为一种可选示例,图1示出了物理主机的系统架构示意图,如图1所示,物理主机包括:CPU(Central Processing Unit,中央处理器)核心1,内存控制器2,和内存3,CPU核心1可通过第一总线与内存控制器2交互;
其中,CPU核心1是物理主机的运算和控制核心,用于解释计算机指令以及处理计算机软件中的数据。在处理器的运行过程中,通过对内存3进行访问获取相关的数据资源;
内存控制器2是控制内存3,并且使内存3与其它组件(如CPU核心1、外设5)之间交换数据的硬件;在典型的物理主机系统中,内存控制器2负责处理来自总线的内存访问请求,其中,请求信息中通常包含将要访问的内存物理地址、访问宽度(内存空间大小);对于内存访问请求,内存控制器2可检测缓存是否记录内存访问请求对应的地址,若是,则从缓存读取该地址相应的数据,否则,遍历内存的页表查找该地址并读取该地址,并按照请求对存储在内存中与该地址对应的数据执行读取或写入操作。
物理主机的内存管理任务通常交给特权级程序(例如操作系统)进行管理。运行在物理主机上的应用程序可访问的内存通常由特权级程序进行隔离,以阻止恶意程序对应用程序的内存进行访问;然而,特权级程序通常包含大量的代码,使得特权级程序可能存在漏洞,并可能被恶意利用而带来内存安全问题;甚至特权级程序的拥有者出于某些目的(例如窥探机密信息),导致特权级程序本身就是恶意的,这无疑对内存安全带来威胁。
基于此,本发明实施例实现对内存进行访问控制,以提升内存的安全性;示例的,本发明实施例提供的物理主机的系统架构可如图2所示,包括:CPU核心1,内存控制器2,内存3,安全硬件4和外设5;可选的,CPU核心1,内存控制器2和安全硬件可集成于SOC(片上系统);
其中,CPU核心1与内存控制器2通过第一总线交互,安全硬件4与内存控制器2通过第二总线交互,SOC与外设5可通过第三总线交互;
基于图2所示系统,在一种可选示例中,本发明实施例可配置内存的访问权限,其中,所述访问权限可以由安全硬件配置,安全硬件为专门设置的处理安全相关操作的硬件,例如,在安全虚拟化技术下,安全硬件可选为对内存进行安全操作的安全处理器。
一般的,物理内存可以划分为多个内存段,每个内存段具有等同的大小,当然,不同的内存段也可以具有不同的大小,本申请在此不做具体的限制。在本示例中,可为内存中的至少一个内存段配置访问权限。在进行内存的访问时,通过将访问请求与被访问的内存段的访问权限进行匹配,以确认针对该内存段的访问请求是否合法,仅在合法时,才允许执行访问请求,从而实现对内存的访问控制。
其中,访问权限可以包括具体的读写权限,如可读写、只读或禁止访问,还可以包括其他的权限,如对访问申请的限定权限,包括,访问申请的来源限定、访问申请的时间限定以及访问申请的主体限定等。
在一个可选的示例中,将配置的访问权限以数据的形式进行描述,形成权限描述信息,其中,各内存段对应有权限描述信息,内存段的权限描述信息可以存储在权限存储单元中。需要说明的是,内存3中可以仅部分内存段设置有对应的权限描述信息,也可以全部内存段均设置对应的权限描述信息,本发明在此不做具体的限定。
在一种示例中,如图3所示,为一种设置权限存储单元的结构示意图,权限存储单元22为一种特定的存储器件,权限存储单元可设置于内存控制器2中,由内存控制器从权限存储单元中调取权限描述信息;在另一种可选示例中,如图4所示,为另一种设置权限存储单元的结构示意图,可将权限存储单元22设置在内存3中,内存控制器通过访问内存3中的权限存储单元,调取权限描述信息。其中,可以看出,在图3和图4的示例中,均是部分的内存段31设置有权限描述信息,其他内存段并没有进行访问权限的配置。
对内存31的访问权限的配置可由安全硬件确定,并由内存控制器执行。在一个可选的示例中,内存控制器包括配置逻辑,用于接收对内存段配置访问权限的配置请求,为内存段配置访问权限。
可选的,图5示出了配置内存段访问权限的一种可选方法流程,参照图5,内存控制器为内存配置访问权限的流程可以包括:
步骤S110:接收对内存段配置访问权限的配置请求;
步骤S120:根据预设条件判断该配置请求是否有效;
当所述配置请求有效时,执行步骤S130,而当所述配置请求无效时,执行步骤S140。
步骤S130:为所述内存段配置访问权限。
步骤S140:拒绝所述配置请求。
其中,在步骤S120中,对预设条件的判断过程可以包括:识别所述配置请求的来源,判断所述来源是否为合法来源;如果是,则该配置请求有效;如果不是,则该配置请求无效。在其他可选的示例中,所述判断过程还可以根据配置请求所携带的权限信息、地址信息、访问宽度信息等任一项或多项进行判断,进而确定配置请求是否有效。
在对配置请求的来源的判断过程中,内存控制器可以对传送配置请求的总线进行识别,设定仅来自预设总线的配置请求为合法;或者,内存控制器对发送配置请求的主体进行识别,设定仅来自预设主体的配置请求为合法。其中,预设主体可以为一特定组件、器件或模块。
在本示例中,所述预设主体为安全硬件,可选的,该安全硬件可以为安全处理器。这是由于,相对于处理器来说,安全硬件处理过程更加独立,且从总线的连接关系来说,安全处理器连接的总线也不同于处理器,因此,安全处理器具有更高的独立性和安全性。采用安全硬件对访问权限进行配置,管理内存的访问权限,能够避免特权级程序对内存的任意访问,避免由此带来的安全威胁,提高内存访问的安全性。
上述配置内存段的访问权限的过程中,根据预设条件判断配置请求是否有效的步骤可以是可选的,本发明实施例也可在接收对内存段配置访问权限的配置请求后,直接为所述内存段配置访问权限。
需要说明的是,在对内存段的配置请求来自设定好的接口(如安全硬件的接口)时,可以保证来自该接口的配置请求本身即为有效的,内存控制器可以直接为内存段配置访问权限。
可选的,内存段的访问权限可由内存段的权限描述信息表示;
在一种可选实现中,配置请求中可以包括需要配置访问权限的内存段的内存段地址,以及需要配置的权限描述信息;内存控制器在接收对内存段配置访问权限的配置请求后,可获取所述配置请求中的内存段地址及对应的权限描述信息,根据配置请求中的内存段地址及对应的权限描述信息,为所述内存段地址对应的内存段配置权限描述信息,从而实现为内存段配置访问权限。
在可选的配置过程中,内存段的权限描述信息可以包括内存段的起始物理地址、地址掩码以及读写权限信息,其中,地址掩码即为内存段的空间大小。
在一种可选的示例中,还可以在内存控制器中设置寄存器,通过该寄存器作为内存控制器的接口,实现访问权限配置。具体的,在内存控制器中设置多个寄存器,不同的寄存器可以对应不同的内存段。在进行权限描述信息的配置过程中,寄存器作为接口,将与寄存器对应的内存段配置权限描述信息。其中,每组寄存器中可以包括对应内存段的起始地址、地址掩码以及权限描述信息。
举例来说,内存控制器3提供8组寄存器,将物理地址0~0x100000共1MB的物理内存进行配置,该部分内存仅允许CPU核心读取,则需从8组寄存器中选中一组寄存器,并对该寄存器进行如下配置:
1.将0写入起始地址;
2.将0xFFFFF写入地址掩码;
3.将1写入允许读;
4.将0写入允许写。
经过上述配置,当CPU核心尝试访问的内存物理地址位于该内存范围内时,只有该次访问的操作与允许读、写的配置匹配时,才允许执行该次访问,否则产生总线错误。
其中,在系统初始化时,内存控制器根据对应的配置请求对内存进行配置;在系统运行阶段,如果接受到配置请求,内存控制器也可以对内存进行配置,使得系统中的内存可以动态调整。
在一个可选的示例中,内存控制器根据权限存储单元中的权限信息对内存进行访问控制。在内存控制器中,设置有访问控制逻辑,通过访问控制逻辑进行内存的访问控制。
可选的,图6示出了内存访问控制方法的一种示例流程,如图6所示,该访问控制方法的流程可以包括:
步骤S210:接收对内存的访问请求;
步骤S220:判断所述访问请求是否合法;
如果是,执行步骤S230,如果否,执行步骤S240。
步骤S230:允许访问所述内存。
步骤S240:拒绝所述访问请求。
在进行访问合法性的判断时,步骤S220可以具体为,如果所述访问请求所对应的目标内存段配置有访问权限,判断所述访问请求是否匹配所述目标内存段的访问权限,其中,内存中的至少一个内存段配置有访问权限。若所述访问请求匹配所述内存段的访问权限,才执行步骤S230,即允许对所述目标内存段执行所述访问请求。
在一个可选的示例中,对步骤S220的判断可以包括:
如果访问请求所对应的目标内存段配置有对应的访问权限,判断所述访问请求是否匹配所述目标内存段的访问权限;
如果是,允许对所述目标内存段执行所述访问请求;否则,拒绝所述访问请求。
可以理解的是,在判断所述访问请求所对应的目标内存段是否配置有对应的访问权限时,由于访问请求可能访问多个目标内存段,在判断该访问请求所对应的目标内存段是否配置有访问权限时,应对各目标内存段分别进行的判断,具体的,分别判断各目标内存段是否配置有对应的访问权限,接着,确定配置有访问权限的目标内存段的个数和地址。
配置有访问权限的目标内存段的个数和地址确定后,即可进行针对目标内存段对应的权限描述信息进行权限匹配的判断。具体的,基于配置有对应的访问权限的内存段的地址,得到对应该内存段的访问权限(具体可以为与权限存储单元内的权限描述信息进行比对,权限描述信息中至少包括内存段的地址,以及对应该地址的内存段的访问权限),并确定是否允许该次访问执行。其中,针对多个内存段时,需要分别进行上述权限判断,只有在该次访问的权限匹配其对应的所有内存段的访问权限时,才能允许该次访问,否则,禁止该次访问。
在一个可选的示例中,判断所述访问请求是否匹配所述目标内存段的访问权限,具体可以包括如下实现方式:
调用目标内存段的权限描述信息;
判断所述访问请求的请求信息是否与所述目标内存段的权限描述信息匹配。
内存段的权限描述信息可以包括,所述内存段的起始物理地址、地址掩码和读写权限信息。因此,在判断所述访问请求的请求信息是否与所述目标内存段的权限描述信息匹配时,需要对访问请求中内存段的地址和对应的访问类型(如读或写的访问类型),与目标内存段的起始物理地址、地址掩码和读写权限进行匹配,进而实现对内存段权限的匹配判断。
需要说明的是,判断所述访问请求是否合法,可以包括对访问请求具体的访问权限的判断,也可以包括对访问请求其他信息的判断。
在一个可选的示例中,在步骤S220中,还可以进行访问请求的来源限定,只有访问权限的来源为预设来源时,才能匹配所述访问权限。在一个可选的示例中,首先,确定访问请求的来源,进一步对访问请求的来源进行访问权限判断,如果是,则确定访问请求为合法,如果否,则确定访问请求为不合法。进一步的,在另一个可选的示例中,可以通过接收访问请求的总线进行识别,实现访问请求来源的判断,进而确定该访问请求的访问权限是否合法。或者,在接收访问请求时,还可以确定发送访问请求的主体,对发送访问请求的主体进行权限判断,如果该主体具有访问权限,则确定访问请求为合法,如果该主体不具有访问权限,则确定访问请求为不合法。
上述控制方法中,内存控制器根据与内存段对应的访问权限执行访问控制,使得对内存的访问都需要经过检查,根据检查的结果决定是否允许该次访问,以此提供对内存数据的保护和隔离,避免了未被授权的主体,如虚拟机管理器、外设组件等对内存的随意访问,提高了内存访问的安全性。
需要说明的是,内存的权限描述信息可以被软件配置,也可以被硬件配置。在一个可选的示例中,设置安全处理器对内存的权限进行配置。
在一个可选的示例中,对安全处理器设置有配置设置模块,通过该配置设置模块向内存控制器发送内存段的访问权限配置请求,以使所述内存控制器配置内存段的访问权限。具体的,安全处理器可以在系统初始化时,根据预设的指令,对内存控制器发送配置请求,以使得内存控制器实现对内存段的访问权限配置。或者,在其他示例中,还可以在系统运行时,根据实际的需求发送配置请求,进而使得内存控制器实现对内存段的访问权限配置。
基于安全考虑,可以设置仅允许安全处理器发送对内存段的权限描述信息的配置请求,使得内存的访问权限仅由安全处理器确定,进而在内存的访问过程中,未得到安全处理器授权的访问是无法实现的。
由于安全处理器在系统中具有较高的独立性,且连接的总线与处理器也不同,因此,采用安全处理器请求对内存段的访问权限进行配置,管理内存的访问权限,能够消除处理器带来的安全威胁,提高内存访问的安全性。
本发明实施例通过对内存进行权限配置,从而对内存提供保护,使得即便是特权级程序也不能对内存执行任意访问,提高了系统的安全性。
下面对本发明实施例提供的内存访问控制装置进行介绍,下文描述的内存访问控制装置可与前文描述的内存访问控制方法相互对应参照。
在一个可选的示例中,本发明实施例提供一种内存访问控制装置,如图7所示的内存访问控制装置的结构示意图中,可以看出,内存访问控制装置可以包括访问控制逻辑100,用于接收对内存的访问请求;如果所述访问请求所对应的目标内存段配置有访问权限,判断所述访问请求是否匹配所述目标内存段的访问权限,其中,内存中的至少一个内存段配置有访问权限;若所述访问请求匹配所述内存段的访问权限,允许对所述目标内存段执行所述访问请求。
具体的,所述访问控制逻辑用于执行前述的内存访问控制方法。进一步的,对应前述的内存权限的配置方法,内存访问控制装置还可进一步设置对应的配置逻辑200,用于接收对内存段配置访问权限的配置请求;为所述内存段配置访问权限。
在内存访问控制装置中,配置逻辑200接收对内存段配置访问权限的配置请求;为所述内存段配置访问权限。其中,具体的配置过程可以为,获取所述配置请求中的内存段地址及对应的权限描述信息;根据所述权限描述信息,为所述内存段地址对应的内存段配置访问权限。
而访问控制逻辑100则是基于上述配置逻辑对内存段配置的访问权限,进行权限的判断。具体的,对应的判断可以包括:调用所述权限存储单元中目标内存段的权限描述信息;判断所述访问请求的请求信息是否与所述目标内存段的权限描述信息匹配。其中,权限描述信息可以存储在内存中,也可以存储在内存控制器的寄存器中。以存储在寄存器中为例,所述调用目标内存段的权限描述信息包括:使用寄存器接口,调用目标内存段的的权限描述信息。
在一个可选的示例中,内存段的权限描述信息可以包括:内存段的起始物理地址、地址掩码和读写权限信息。此时,对访问请求的请求信息是否与所述目标内存段的权限描述信息匹配的判断可以为:判断访问请求中内存段的地址和对应的访问类型,与目标内存段的起始物理地址、地址掩码和读写权限是否匹配。
本发明实施例还提供一种内存控制器,所述内存控制器可以包括所述的内存访问控制装置;
可选的,本发明实施例提供的内存控制器还可包括加密引擎,所述加密引擎存储有为虚拟机内存进行加密的密钥。
在一个可选的示例中,本发明还提供一种包含上述内存控制器的计算机系统10,如图8所示,包括:安全处理器4,和内存控制器2。其中,安全处理器,用于向内存控制器发送对内存段配置访问权限的配置请求;内存控制器,用于实现上述内存访问控制方法。
可以看出,内存控制器根据与内存对应访问权限执行访问控制,使得所有对内存的访问都需要经过检查,根据检查的结果决定是否允许该次访问,以此提供对内存数据的保护、隔离能力,避免了未被授权的主体,如虚拟机管理器、外设组件等对内存的随意访问,提高了内存访问的安全性。
本发明实施例提供的内存访问控制方法的一个应用是在虚拟机场景下,对虚拟机的内存,使用本发明实施例提供的内存访问控制方法进行保护,以防止特权级程序对虚拟机内存的随意访问,提升虚拟机内存的安全性。
相应的,上述所述的内存段可以是虚拟机内存的内存段。
作为一种可选示例,图9示出了虚拟化环境的系统架构示意图,如图9所示,虚拟化环境的系统架构可以包括:CPU核心1,内存控制器2,内存3,安全处理器4;
其中,CPU核心1可通过软件形式配置虚拟机管理器11,并且通过虚拟化技术虚拟化出多台虚拟机12,该多台虚拟机12可由虚拟机管理器11进行内存分配管理;
内存控制器2是控制内存3,并且使内存3与CPU核心1之间交换数据的硬件;在物理主机系统中,内存控制器2负责处理内存访问请求,对于内存访问请求,内存控制器2可检测缓存是否记录内存访问请求对应的地址,若是,则从缓存读取该地址相应的数据,否则,遍历内存的页表查找该地址,在该地址对应的目标内存段配置有访问权限时,对访问请求是否匹配所述目标内存段的访问权限进行判断,在访问请求匹配所述内存段的访问权限时,读取该地址相应的数据。
其中,图9所示的系统架构是区别于传统虚拟化技术的安全虚拟化技术实现的;安全虚拟化技术是可对虚拟机的内存进行安全保护的虚拟化技术,例如安全加密虚拟化(Secure Encrypted Virtualization,SEV)技术等可对虚拟机的内存进行加密等安全保护的虚拟化技术,当然,安全虚拟化技术还可例如对虚拟机的内存进行隔离等保护的虚拟化技术。
示例的,通过SEV技术,可对部分或所有虚拟机的内存进行加密,而且不同虚拟机使用的内存通过不同的密钥加密,虚拟机管理器也无法访问密钥,从而防止物理主机、虚拟机管理器对虚拟机的数据访问和篡改,提升虚拟机的数据安全性。
安全处理器4为专门设置的负责处理与虚拟机的安全相关操作的处理器,例如,安全处理器4可进行内存加解密、控制内存访问权限配置等操作(例如,由安全处理器对虚拟机初始数据进行加密、发送配置请求对内存的访问权限进行配置);在本发明实施例中,虚拟机管理器11可配置与安全处理器4相通信的API(Application Programming Interface,应用程序编程接口)接口,实现虚拟机管理器11与安全处理器4的数据交互;
在本发明实施例中,内存控制器2配置有:
加密引擎21,加密引擎21可存储密钥;
访问控制逻辑100,用于对访问请求执行访问控制,避免与内存访问权限不匹配的访问请求访问内存;
配置逻辑200,用于接收对内存段配置访问权限的配置请求,为所述内存段配置访问权限。
安全处理器4可通过加密引擎21存储的密钥为部分或所有虚拟机的内存进行加密,并且不同虚拟机使用的内存通过不同的密钥进行加密;可选的,为了更好地预防重放攻击,虚拟机的内存中不同物理地址可使用不同的加密参数(即密钥);需要说明的是,重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要在身份认证场景下破坏认证的正确性。
内存控制器2可通过访问控制逻辑100,接收对内存的访问请求;如果所述访问请求所对应的目标内存段配置有访问权限,判断所述访问请求是否匹配所述目标内存段的访问权限,其中,内存中的至少一个内存段配置有访问权限;若所述访问请求匹配所述内存段的访问权限,允许对所述目标内存段执行所述访问请求。通过对内存的访问权限进行匹配,从而实现对内存数据的保护和隔离,避免了未被授权的主体,如虚拟机管理器、外设组件等对内存的随意访问,提高了内存访问的安全性。
安全处理器4可对内存控制器发送用于配置内存的访问权限的配置请求,从而配置逻辑200可为内存的内存段配置访问权限。具体的,安全处理器4可以在系统启动或系统初始化时,对配置逻辑200发送配置请求,配置内存的访问权限。或者,在系统运行过程中,对内存访问权限的动态配置,即,根据实际需求对配置逻辑200发送实时的配置请求,配置内存的访问权限。
可选的,图9所示系统架构中,CPU核心1,内存控制器2,安全处理器4可集成在SOC(System on Chip,片上系统)上;显然,SOC仅是物理主机体系结构的一种可选形式,本发明实施例也可支持其他形式的物理主机体系结构(例如,处理器和南桥相耦合的物理主机体系结构,分设南桥和北桥的物理主机体系结构等),此时,CPU核心1,内存控制器2,内存3,和安全处理器4可相应部署,此处不再展开说明。
在一种可选示例中,图9所示系统架构可通过虚拟机管理器实现虚拟机的内存分配管理;如果虚拟机的内存是由虚拟机管理器来分配管理,这将使得虚拟机管理器有可能操纵虚拟机使用的数据,对虚拟机数据的安全带来潜在的威胁;基于此,本发明的发明人也考虑改进安全虚拟化技术,在安全虚拟化技术下,由安全处理器完成虚拟机的内存管理等操作(如控制对内存的访问权限配置,控制内存控制器根据访问权限进行内存的访问),同时由虚拟机管理器通过安全处理器对虚拟机进行辅助管理。
一般的,当虚拟机的内存由虚拟机管理器来分配管理时,虚拟机管理器可对虚拟机的内存提供隔离,以阻止恶意或有缺陷的程序对虚拟机的内存进行访问或破坏。然而,虚拟机管理器不可避免的存在漏洞,因而安全性有待提高。并且,在虚拟机管理器有权限访问分配给虚拟机的内存时,如果虚拟器管理器的拥有者出于某些目的(例如窥探机密信息),虚拟机管理器可能会对分配给虚拟机的内存执行恶意访问,从而对运行在物理主机上的虚拟机造成安全威胁,这些威胁包括但不限于密钥丢失、未授权访问或数据泄露等。显然,如何对虚拟机的内存访问进行控制,以提升虚拟机数据的安全性,成为亟需解决的问题。
基于此,本发明实施例可对虚拟机的内存,使用本发明实施例提供的内存访问控制方法,以实现对虚拟机内存的访问控制,提升虚拟机内存的安全性;被本发明实施例提供的内存访问控制方法所保护的虚拟机内存可称为安全内存。
可以理解的是,本发明实施例可在内存3中划分安全内存(空间)和普通内存(空间),安全内存的安全性高于普通内存,例如,安全内存可以采用安全保护机制(例如,使用本发明实施例提供的内存访问控制方法进行内存的访问控制,使用SEV技术对虚拟机的内存进行加密等);
示例的,图10示出了在内存中划分安全内存和普通内存的示意图,作为一种可选实现,本发明实施例可在内存中划分出若干内存区域(该若干内存区域可以是内存的部分空间,也可以是内存的全部空间),通过记录所划分的若干内存区域的相关信息,将所划分的该若干内存区域标记为安全内存(如通过硬件标记安全内存),并采用安全保护机制进行保护,在本发明实施例中,安全内存可使用本发明实施例提供的内存访问控制方法进行内存的访问控制,又如,安全内存可使用加密,隔离等机制进行保护;内存中未标记的内存区域可称为普通内存,普通内存一般未采用安全保护机制进行保护;安全内存的安全性可高于普通内存;
作为一种可选示例,安全内存的大小可大于普通内存,当然,本发明实施例也可支持安全内存的大小可小于普通内存;需要说明的是,图10所示示例是将内存的部分内存区域标记为安全内存,本发明实施例也可支持将内存的全部内存区域标记为安全内存。
可选的,使用安全保护机制的虚拟机可称为安全虚拟机,如使用安全内存的虚拟机可称为安全虚拟机,未使用安全保护机制的虚拟机可称为普通虚拟机,如使用普通内存的虚拟机可称为普通虚拟机,一般的,安全虚拟机的安全性可高于普通虚拟机;
本发明实施例提供的内存访问控制方案可以适用于安全内存(即可对虚拟机的安全内存的内存段配置访问权限,并进行访问控制),也可以适用于普通内存(即可对虚拟机的普通内存的内存段配置访问权限,并进行访问控制),所适用的虚拟机可以是安全虚拟机,也可以是普通虚拟机。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (17)
1.一种内存访问控制方法,其特征在于,包括:
接收对内存的访问请求;
如果所述访问请求所对应的目标内存段配置有访问权限,判断所述访问请求是否匹配所述目标内存段的访问权限,其中,内存中的至少一个内存段配置有访问权限;
若所述访问请求匹配所述内存段的访问权限,允许对所述目标内存段执行所述访问请求。
2.根据权利要求1所述的内存访问控制方法,其特征在于,所述方法还包括:
接收对内存段配置访问权限的配置请求;
为所述内存段配置访问权限。
3.根据权利要求2所述的内存访问控制方法,其特征在于,所述为所述内存段配置访问权限包括:
获取所述配置请求中的内存段地址及对应的权限描述信息;
根据所述权限描述信息,为所述内存段地址对应的内存段配置权限描述信息。
4.根据权利要求3所述的内存访问控制方法,其特征在于,所述判断所述访问请求是否匹配所述目标内存段的访问权限包括:
调用目标内存段的权限描述信息;
判断所述访问请求的请求信息是否与所述目标内存段的权限描述信息匹配。
5.根据权利要求4所述的内存访问控制方法,其特征在于,内存段的权限描述信息包括:
内存段的起始物理地址、内存段的空间大小和读写权限信息。
6.根据权利要求5所述的内存访问控制方法,其特征在于,所述判断所述访问请求的请求信息是否与所述目标内存段的权限描述信息匹配包括:
判断访问请求中指示的访问地址和访问类型,是否与目标内存段的起始物理地址、内存段的空间大小和读写权限相匹配。
7.根据权利要求5或6所述的内存访问控制方法,其特征在于,内存段的权限描述信息还包括:
合法访问来源信息。
8.根据权利要求2所述的内存访问控制方法,其特征在于,所述方法还包括:
根据预设条件判断所述配置请求是否有效;
当所述配置请求有效时,触发执行所述为所述内存段配置访问权限的步骤。
9.根据权利要求1所述的内存访问控制方法,其特征在于,配置有访问权限的内存段为虚拟机内存的内存段。
10.一种内存访问控制装置,其特征在于,包括:
访问控制逻辑,用于接收对内存的访问请求;如果所述访问请求所对应的目标内存段配置有访问权限,判断所述访问请求是否匹配所述目标内存段的访问权限,其中,内存中的至少一个内存段配置有访问权限;若所述访问请求匹配所述内存段的访问权限,允许对所述目标内存段执行所述访问请求。
11.根据权利要求10所述的内存访问控制装置,其特征在于,还包括:
配置逻辑,用于接收对内存段配置访问权限的配置请求;为所述内存段配置访问权限。
12.根据权利要求11所述的内存访问控制装置,其特征在于,所述配置逻辑,用于为所述内存段配置访问权限,具体包括:
获取所述配置请求中的内存段地址及对应的权限描述信息;
根据所述权限描述信息,为所述内存段地址对应的内存段配置权限描述信息。
13.根据权利要求12所述的内存访问控制装置,其特征在于,还包括:
权限存储单元,所述权限存储单元用于存储内存段的权限描述信息。
14.根据权利要求13所述的内存访问控制装置,其特征在于,所述访问控制逻辑用于,判断所述访问请求是否匹配所述目标内存段的访问权限,具体包括:
调用所述权限存储单元中目标内存段的权限描述信息;
判断所述访问请求的请求信息是否与所述目标内存段的权限描述信息匹配。
15.一种内存控制器,其特征在于,包括:权利要求10-14任一项所述的内存访问控制装置。
16.根据权利要求14所述的内存控制器,其特征在于,还包括:
加密引擎,用于存储为虚拟机的内存进行加密的密钥。
17.一种计算机系统,其特征在于,包括:
安全处理器,用于向内存控制器发送对内存段配置访问权限的配置请求;
如权利要求15所述的内存控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811401836.7A CN109766165B (zh) | 2018-11-22 | 2018-11-22 | 一种内存访问控制方法、装置、内存控制器及计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811401836.7A CN109766165B (zh) | 2018-11-22 | 2018-11-22 | 一种内存访问控制方法、装置、内存控制器及计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766165A true CN109766165A (zh) | 2019-05-17 |
CN109766165B CN109766165B (zh) | 2022-07-08 |
Family
ID=66450153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811401836.7A Active CN109766165B (zh) | 2018-11-22 | 2018-11-22 | 一种内存访问控制方法、装置、内存控制器及计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766165B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110290144A (zh) * | 2019-07-01 | 2019-09-27 | 深圳市元征科技股份有限公司 | 一种用户权限信息更新方法、系统、存储介质及电子设备 |
CN110442425A (zh) * | 2019-07-19 | 2019-11-12 | 南京芯驰半导体科技有限公司 | 一种虚拟化地址空间隔离系统及方法 |
CN110929304A (zh) * | 2019-12-04 | 2020-03-27 | 四川虹微技术有限公司 | 一种基于risc-v的内存保护方法 |
CN110990331A (zh) * | 2019-12-03 | 2020-04-10 | 天津飞腾信息技术有限公司 | 片上系统密钥管理方法、装置、设备及可读存储介质 |
CN111262696A (zh) * | 2020-01-15 | 2020-06-09 | 天津飞腾信息技术有限公司 | 片上系统的密钥管理方法、装置、设备及存储介质 |
CN111625814A (zh) * | 2020-05-12 | 2020-09-04 | 卓尔智联(武汉)研究院有限公司 | 风控计算的处理设备、处理方法、处理装置和存储介质 |
CN112052069A (zh) * | 2020-08-25 | 2020-12-08 | 海光信息技术有限公司 | 一种写、读虚拟机标识的方法、装置及相关设备 |
WO2020248088A1 (zh) * | 2019-06-10 | 2020-12-17 | 华为技术有限公司 | 安全访问方法及电子设备 |
CN112099979A (zh) * | 2020-11-18 | 2020-12-18 | 数字广东网络建设有限公司 | 一种访问控制方法、装置、计算机设备和存储介质 |
CN112417470A (zh) * | 2020-11-06 | 2021-02-26 | 上海壁仞智能科技有限公司 | 实现gpu数据安全访问的方法、装置、电子设备及存储介质 |
CN112631720A (zh) * | 2020-12-23 | 2021-04-09 | 海光信息技术股份有限公司 | 内存控制方法、介质及设备 |
CN112738219A (zh) * | 2020-12-28 | 2021-04-30 | 中国第一汽车股份有限公司 | 程序运行方法、装置、车辆及存储介质 |
WO2021102729A1 (zh) * | 2019-11-27 | 2021-06-03 | 深圳市大疆创新科技有限公司 | 内存访问方法、微处理器、客户端及计算机存储介质 |
CN114580005A (zh) * | 2022-05-09 | 2022-06-03 | 深圳市航顺芯片技术研发有限公司 | 数据访问方法、计算机设备及可读存储介质 |
CN115238297A (zh) * | 2022-09-23 | 2022-10-25 | 北京安帝科技有限公司 | 多层级权限控制内存保护方法和装置 |
CN116132422A (zh) * | 2023-04-19 | 2023-05-16 | 天津卓朗昆仑云软件技术有限公司 | 输入设备的权限控制方法、装置、服务器及可读存储介质 |
CN116303142A (zh) * | 2023-03-21 | 2023-06-23 | 摩尔线程智能科技(北京)有限责任公司 | 内存访问控制方法、安全控制器、内存访问控制装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545023A (zh) * | 2003-11-21 | 2004-11-10 | 苏州国芯科技有限公司 | 一种用于信息安全的嵌入式cpu |
CN101034378A (zh) * | 2007-04-27 | 2007-09-12 | 吴晓栋 | 一种实现处理器及其计算机系统信息处理环境高度安全与可信的方法 |
CN101226577A (zh) * | 2008-01-28 | 2008-07-23 | 南京大学 | 基于可信硬件与虚拟机的微内核操作系统完整性保护方法 |
CN105446911A (zh) * | 2014-05-29 | 2016-03-30 | 展讯通信(上海)有限公司 | 终端设备的内存访问控制方法与装置 |
CN105488388A (zh) * | 2015-12-22 | 2016-04-13 | 中软信息系统工程有限公司 | 一种基于cpu时空隔离机制实现应用软件行为监控系统的方法 |
CN107085535A (zh) * | 2017-03-30 | 2017-08-22 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
CN107562514A (zh) * | 2017-08-03 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种物理内存访问控制与隔离方法 |
CN107783913A (zh) * | 2016-08-31 | 2018-03-09 | 华为技术有限公司 | 一种应用于计算机的资源访问方法和计算机 |
CN108460287A (zh) * | 2018-03-21 | 2018-08-28 | 南通大学 | 内存保护单元中用户控制区域的划分方法及内存保护系统 |
-
2018
- 2018-11-22 CN CN201811401836.7A patent/CN109766165B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545023A (zh) * | 2003-11-21 | 2004-11-10 | 苏州国芯科技有限公司 | 一种用于信息安全的嵌入式cpu |
CN101034378A (zh) * | 2007-04-27 | 2007-09-12 | 吴晓栋 | 一种实现处理器及其计算机系统信息处理环境高度安全与可信的方法 |
CN101226577A (zh) * | 2008-01-28 | 2008-07-23 | 南京大学 | 基于可信硬件与虚拟机的微内核操作系统完整性保护方法 |
CN105446911A (zh) * | 2014-05-29 | 2016-03-30 | 展讯通信(上海)有限公司 | 终端设备的内存访问控制方法与装置 |
CN105488388A (zh) * | 2015-12-22 | 2016-04-13 | 中软信息系统工程有限公司 | 一种基于cpu时空隔离机制实现应用软件行为监控系统的方法 |
CN107783913A (zh) * | 2016-08-31 | 2018-03-09 | 华为技术有限公司 | 一种应用于计算机的资源访问方法和计算机 |
CN107085535A (zh) * | 2017-03-30 | 2017-08-22 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107562514A (zh) * | 2017-08-03 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种物理内存访问控制与隔离方法 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
CN108460287A (zh) * | 2018-03-21 | 2018-08-28 | 南通大学 | 内存保护单元中用户控制区域的划分方法及内存保护系统 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020248088A1 (zh) * | 2019-06-10 | 2020-12-17 | 华为技术有限公司 | 安全访问方法及电子设备 |
CN110290144A (zh) * | 2019-07-01 | 2019-09-27 | 深圳市元征科技股份有限公司 | 一种用户权限信息更新方法、系统、存储介质及电子设备 |
CN110442425A (zh) * | 2019-07-19 | 2019-11-12 | 南京芯驰半导体科技有限公司 | 一种虚拟化地址空间隔离系统及方法 |
CN110442425B (zh) * | 2019-07-19 | 2022-04-08 | 南京芯驰半导体科技有限公司 | 一种虚拟化地址空间隔离系统及方法 |
WO2021102729A1 (zh) * | 2019-11-27 | 2021-06-03 | 深圳市大疆创新科技有限公司 | 内存访问方法、微处理器、客户端及计算机存储介质 |
CN110990331A (zh) * | 2019-12-03 | 2020-04-10 | 天津飞腾信息技术有限公司 | 片上系统密钥管理方法、装置、设备及可读存储介质 |
CN110990331B (zh) * | 2019-12-03 | 2023-09-05 | 飞腾信息技术有限公司 | 片上系统密钥管理方法、装置、设备及可读存储介质 |
CN110929304A (zh) * | 2019-12-04 | 2020-03-27 | 四川虹微技术有限公司 | 一种基于risc-v的内存保护方法 |
CN111262696A (zh) * | 2020-01-15 | 2020-06-09 | 天津飞腾信息技术有限公司 | 片上系统的密钥管理方法、装置、设备及存储介质 |
CN111625814A (zh) * | 2020-05-12 | 2020-09-04 | 卓尔智联(武汉)研究院有限公司 | 风控计算的处理设备、处理方法、处理装置和存储介质 |
CN112052069A (zh) * | 2020-08-25 | 2020-12-08 | 海光信息技术有限公司 | 一种写、读虚拟机标识的方法、装置及相关设备 |
CN112052069B (zh) * | 2020-08-25 | 2024-03-12 | 海光信息技术股份有限公司 | 一种写、读虚拟机标识的方法、装置及相关设备 |
CN112417470A (zh) * | 2020-11-06 | 2021-02-26 | 上海壁仞智能科技有限公司 | 实现gpu数据安全访问的方法、装置、电子设备及存储介质 |
CN112099979B (zh) * | 2020-11-18 | 2021-03-05 | 数字广东网络建设有限公司 | 一种访问控制方法、装置、计算机设备和存储介质 |
CN112099979A (zh) * | 2020-11-18 | 2020-12-18 | 数字广东网络建设有限公司 | 一种访问控制方法、装置、计算机设备和存储介质 |
CN112631720A (zh) * | 2020-12-23 | 2021-04-09 | 海光信息技术股份有限公司 | 内存控制方法、介质及设备 |
CN112631720B (zh) * | 2020-12-23 | 2023-05-23 | 海光信息技术股份有限公司 | 内存控制方法、介质及设备 |
CN112738219A (zh) * | 2020-12-28 | 2021-04-30 | 中国第一汽车股份有限公司 | 程序运行方法、装置、车辆及存储介质 |
CN114580005A (zh) * | 2022-05-09 | 2022-06-03 | 深圳市航顺芯片技术研发有限公司 | 数据访问方法、计算机设备及可读存储介质 |
CN115238297B (zh) * | 2022-09-23 | 2023-01-31 | 北京安帝科技有限公司 | 多层级权限控制内存保护方法和装置 |
CN115238297A (zh) * | 2022-09-23 | 2022-10-25 | 北京安帝科技有限公司 | 多层级权限控制内存保护方法和装置 |
CN116303142A (zh) * | 2023-03-21 | 2023-06-23 | 摩尔线程智能科技(北京)有限责任公司 | 内存访问控制方法、安全控制器、内存访问控制装置 |
CN116303142B (zh) * | 2023-03-21 | 2024-03-19 | 摩尔线程智能科技(北京)有限责任公司 | 内存访问控制方法、安全控制器、内存访问控制装置 |
CN116132422A (zh) * | 2023-04-19 | 2023-05-16 | 天津卓朗昆仑云软件技术有限公司 | 输入设备的权限控制方法、装置、服务器及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109766165B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766165A (zh) | 一种内存访问控制方法、装置、内存控制器及计算机系统 | |
US10572689B2 (en) | Method and apparatus for secure execution using a secure memory partition | |
US8397082B2 (en) | System and method for thwarting buffer overflow attacks using encrypted process pointers | |
US10917243B2 (en) | Secure server and compute nodes | |
CN105512055B (zh) | 用于减少存储器信息泄漏的系统和方法 | |
CN109901911A (zh) | 一种信息设置方法、控制方法、装置及相关设备 | |
EP2672672A1 (en) | Secure data processing | |
CN110383277A (zh) | 虚拟机监视器测量代理 | |
EP2151763A1 (en) | Method and apparatus for obfuscating virtual to physical memory mapping | |
Gross et al. | Breaking TrustZone memory isolation and secure boot through malicious hardware on a modern FPGA-SoC | |
CN107563226B (zh) | 一种存储器控制器、处理器模块及密钥更新方法 | |
Heo et al. | Hardware-assisted trusted memory disaggregation for secure far memory | |
CN117254930A (zh) | 一种针对虚拟机管理器跨域攻击的防御方法、装置和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 |