CN112631720A - 内存控制方法、介质及设备 - Google Patents
内存控制方法、介质及设备 Download PDFInfo
- Publication number
- CN112631720A CN112631720A CN202011542662.3A CN202011542662A CN112631720A CN 112631720 A CN112631720 A CN 112631720A CN 202011542662 A CN202011542662 A CN 202011542662A CN 112631720 A CN112631720 A CN 112631720A
- Authority
- CN
- China
- Prior art keywords
- memory
- container
- access
- processor
- read
- 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
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/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
-
- 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/45587—Isolation or security of virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本申请实施例涉及集成电路领域,具体涉及内存控制方法、介质及设备。
背景技术
容器技术是一种实现轻量级资源隔离的技术。在容器技术出现之前,广泛使用的隔离技术方案是虚拟化技术。虚拟化技术将不同的用户或者不同的功能封装在不同的虚拟机中,虚拟机中的进程互相看不到对方,无法使用对方的资源,实现了隔离的目的。
但是虚拟化技术有着无法忽略的缺点,虚拟机本身占用大量系统资源,每个虚拟机不仅运行操作系统的完整副本,还运行操作系统需要运行的所有硬件的虚拟副本,这增加大量的内存和CPU开销。虽然与运行在物理计算机相比,这仍然是经济的,但对于某些应用程序来说,这可能是过度的。比如用户为隔离两个程序必须启动完整的虚拟机操作系统,带来了比应用程序大得多的开销。
利用容器隔离进程,无需像虚拟化一样启动完整的虚拟机,实现了轻量级的隔离。但是,利用容器进行隔离的安全性有待提高。
申请内容
有鉴于此,本申请实施例中提供一种内存控制方法,所述方法应用于处理器,所述方法包括:
通过安全控制环境配置容器对内存的读写权限,所述处理器的操作系统无权更改所述安全控制环境配置的内容;
基于所述读写权限验证容器对内存的访问;
所述验证通过后,允许所述容器对内存的访问。
可选的,所述容器对内存的读写权限在安全页面属性表内设置,所述处理器的操作系统无权配置所述安全页面属性表。
可选的,所述配置所述容器对内存的读写权限包括:
设置所述容器的识别标识;
存储所述容器的识别标识以及该容器具备访问权限的内存地址空间的对应关系。
可选的,所述容器对内存的访问中包含所述容器的识别标识;所述基于所述读写权限验证容器对内存的访问包括:根据所述对应关系,验证所述访问的地址是否在该容器具备访问权限的内存地址空间范围内。
可选的,在容器识别标识寄存器器中配置所述容器的识别标识;通过内存管理单元拼接进行所述访问的容器的识别标识和所述访问指向的物理地址得到扩展物理地址;
所述根据所述对应关系,验证所述访问的地址是否在该容器具备访问权限的内存地址空间范围内包括:
安全页面属性表模块解析所述扩展物理地址得到进行所述访问的容器的识别标识以及所述访问指向的物理地址;
安全页面属性表模块判断所述识别标识和所述物理地址是否满足所述对应关系。
可选的,本申请实施例还提供一种计算设备,包括主处理器、安全处理器和内存访问子系统,其中:
所述主处理器,适于运行操作系统,所述主处理器与所述安全处理器通信连接;
所述安全处理器,适于配置所述容器对内存的读写权限,所述主处理器运行的操作系统无权更改所述安全控制环境配置的内容;
所述内存访问子系统,适于基于所述读写权限验证容器对内存的访问,在所述验证通过后,允许所述容器对内存的访问。
可选的,所述主处理器包括容器识别标识寄存器和内存管理单元;其中:
所述容器识别标识寄存器适于存储所述容器的识别标识;
所述内存管理单元,适于从所述容器识别标识寄存器获取所述识别标识,拼接所述识别标识和所述容器对内存的访问的物理地址,生成扩展物理地址;
所述内存访问子系统,适于根据所述扩展物理地址验证所述识别标识对应的容器是否有权限访问所述物理地址。
可选的,所述内存访问子系统包括安全页面属性表模块以及内存控制器;其中:
所述安全页面属性表模块包括存储有所述容器的识别标识以及该容器具备访问权限的内存地址空间的对应关系的安全页面属性表,所述安全页面属性表模块适于解析所述扩展物理地址得到进行所述访问的容器的识别标识以及所述访问指向的物理地址,根据安全页面属性表验证所述识别标识和所述物理地址是否满足所述对应关系;
所述内存控制器适于在所述安全页面属性表模块验证通过后访问内存。
可选的,所述主处理器适于向所述安全处理器发送所述容器有权限访问的内存的地址空间范围,所述安全处理器适于根据所述容器有权限访问的内存的地址空间范围,在安全页面属性表内设置所述容器对内存的读写权限。
本申请实施例还提供一种内存控制方法,应用于安全处理器,包括:
接收容器的识别标识以及该容器具备访问权限的内存地址空间;
根据所述容器的识别标识以及该容器具备访问权限的内存地址空间,在内存访问子系统配置所述容器的读写权限,所述读写权限仅接受所述安全处理器的配置。
本申请实施例还提供一种内存控制方法,应用于内存控制设备,包括:
仅接受安全控制环境配置容器对内存的读写权限;
基于所述读写权限验证容器对内存的访问;
所述验证通过后,允许所述容器对内存的访问。
本申请实施例还提供一种内存控制设备,适于运行前述的内存控制方法。
本申请实施例还提供一种安全处理器,适于运行前述的内存控制方法。
本申请实施例还提供一种片上系统,包括:
前述的内存控制设备;
以及前述的安全处理器,与所述内存控制设备通信连接。
本申请实施例还提供一种处理器,用于运行存储器中的可执行程序代码,以执行前述的内存控制方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行前述的内存控制方法。
本申请实施例还提供一种计算机设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行前述的内存控制方法,或者执行前述的内存控制方法。
本申请实施例中的技术方案,通过安全控制环境配置容器的识别标识,以及容器对内存的读写权限。操作系统无权修改由安全控制环境配置的容器的识别标识,以及容器对内存的读写权限。在验证容器对内存的访问权限通过后,才允许该容器对内存的访问,从而可以避免容器超越自身权限的访问,进而可以提升利用容器进行隔离的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为一种利用容器隔离进程的示意图;
图2为一种在容器隔离场景下进行非法访问的示意图;
图3为一种在虚拟机离场景下进行非法访问的示意图;
图4为本申请实施例中一种内存控制方法的流程图;
图5为本申请实施例中一种处理器的结构示意图;
图6为本申请实施例中一种CR3寄存器的结构示意图;
图7为本申请实施例中一种安全页面属性表进行容器的权限管理的示意图;
图8为本申请实施例中一种配置所述容器对内存的读写权限的流程图;
图9是本申请实施例中一种处理器的部分结构示意图;
图10是本申请实施例中一种计算设备的部分结构示意图;
图11是本申请实施例中另一种内存控制方法的流程图;
图12是本申请实施例中另一种内存控制方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是一种利用容器隔离进程的示意图。结合参考图1,其中硬件11可以是具有计算功能的设备,例如可以是处理器。操作系统12可以是运行在硬件11上的操作系统。通过命名空间和控制组13,可以为容器14至16提供应用程序和共享库。
在具体实现中,可以利用Linux操作系统的命名空间(Namespace)和控制组(Cgroups)两个技术实现了资源的隔离。命名空间负责容器的资源隔离,控制组负责容器资源使用限制,二者均运行于操作系统。可以理解的是,也可以利用其它系统中类似的技术实现容器的资源隔离。
如背景技术所述,容器技术的安全性不如虚拟化技术。结合参考图1和图2,容器本身是运行在用户态的程序,并利用操作系统来隔离不同容器的资源。因此内核级的程序可以访问任意容器的内存数据。如图2中箭头所示意的运行在容器里面的程序利用操作系统的缺陷获取到操作系统的权限后,就有权限访问所有其他容器的内存。
而在虚拟机运行的程序即使获得虚拟机操作系统的权限,依然只能访问虚拟机内部的资源,例如仅能访问虚拟机的自身内存,而无法访问物理机上其他程序的内存。例如,图3示出了第一虚拟机33和第二虚拟机34,运行在操作系统32上,操作系统运行于硬件31。如图中箭头所示,若第一虚拟机33中运行的应用程序1,即便获得了虚拟机操作系统的权限,也只能访问分配给第一虚拟机33中的资源,例如访问应用程序2对应的内存,而无法访问操作系统32分配给第二虚拟机34的内存。
从图2和图3的对比可以看出,容器内的程序一旦突破容器的限制,进入到操作系统,即能够读取所有容器的内存。而虚拟机的程序即使突破了虚拟机操作系统,仍然无法读取其他虚拟机的内存。但是,如背景技术所述,虚拟机技术占用了过多的资源;容器技术安全性有待提升。
本申请实施例提供了一种内存控制方法,结合参考图4,可以包括如下步骤:
步骤S41,通过安全控制环境配置所述容器对内存的读写权限,所述处理器的操作系统无权更改所述安全控制环境配置的内容;
步骤S42,基于所述读写权限验证容器对内存的访问;
步骤S43,所述验证通过后,允许所述容器对内存的访问。
在本申请实施例中,通过安全控制环境配置容器的识别标识,以及容器对内存的读写权限。操作系统无权修改由安全控制环境配置的容器的识别标识,以及容器对内存的读写权限。在验证容器对内存的访问权限通过后,才允许该容器对内存的访问,从而可以避免容器超越自身权限的访问,进而可以提升利用容器进行隔离的安全性。
可以理解的是,安全控制环境的权限高于操作系统,故存在安全控制环境有权限进行的操作,而操作系统无权限进行。
在具体实施中,所述安全控制环境的对外接口可以少于所述操作系统。安全控制环境处理范围可以小于操作系统,例如可以仅执行特定的安全级别较高的任务,从而相使得比于操作系统,安全控制环境的安全性更高。
在具体实施中,从硬件架构的角度,安全控制环境可以与操作系统由同一处理器实现,或者,操作系统可以由主处理器实现,安全控制环境可以位于与主处理器通信连接的安全处理器。
例如,在如带可信任执行环境(Trusted Execution Environment,TEE)的处理器中,安全控制环境可以是处理器中的可信任执行环境。
在具体实现中,主处理器可以是运行操作系统的处理器,安全处理器是未运行操作系统的处理器。在本申请中,与主处理器通信连接,并且可以配置无法被主处理器修改的所述容器对内存的读写权限的处理器,均可以作为安全处理器。可以理解的是,此处的主处理器和安全处理器并非对硬件实现的限制。
可选的,主处理器和安全处理器可采用相同架构的处理器,例如均可采用例如32位或64位X86架构的处理器;或者,也可采用不同架构,例如主处理器采用32位或64位X86架构的处理器,而安全处理器可采用ARM架构的处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、或现场可编程门阵列(Field Programmable GateArray,FPGA)等。
或者,结合参考图5,在本申请一实施例中,处理器可以包括主处理器51和安全处理器52,主处理器51和安全处理器52之间可以进行通信,安全处理器52的安全性高于主处理器51。安全控制环境可以是安全处理器52的执行环境。
在具体实施中,可以通过安全控制环境配置每个容器对内存的读写权限。在配置读写权限时,可以记录容器的识别标识以及该容器对应的内存地址空间。
示例性的,可以在页表基地址寄存器中配置所述容器的识别标识。例如,在x86架构中,可以在CR3寄存器中设置容器的识别标识(CID,Container ID)。在其它架构中,也可以采用相同或者类似功能的寄存器配置容器的识别标识。
示例性的,也可以复用其它寄存器用来存储CID,或者设置新的寄存器来存储CID。也即,在具体实施中,本申请中的容器识别标识寄存器可以通占用基地址寄存器中部分位实现,或者,可以通过复用其它寄存器实现(例如,占用其中几位的方式),或者,也可以通过硬件上设置特定的CID寄存器实现。
在具体实施中,当复用其它寄存器来存储CID时,或者设置新的寄存器来存储CID时,可以修改内存管理单元(MMU,Memory Management Unit)的逻辑,使其可以读取到基地址寄存器中存储的CID,也可以读取到基地址寄存器存储的物理地址,拼接二者得到携带有CID的扩展物理地址。
在其它具体实现方式中,当复用其它寄存器来存储CID时,或者设置新的寄存器来存储CID时,可以在MMU读取基地址寄存器前,复制CID至基地址寄存器中,使得MMU可以通过读取基地址寄存器获得CID和访问指向的物理地址,从而可以进行拼接。
通过存储CID至基地址寄存器,可以更多的复用现有技术中的硬件设计,兼容性较强。通过复用其它寄存器或者设置新的寄存器作为CID寄存器,可以避免对基地址寄存器中部分位的占用。
在具体实施中,可以通过硬件结构设置容器识别标识寄存器仅为安全控制环境所配置。具体的,可以修改设置容器识别标识寄存器(例如页表基地址寄存器)的指令实现,仅允许安全控制环境设置容器识别标识寄存器。
例如,可以通过修改设置CR3的指令实现,要求必须是安全控制环境设置CR3处理器才允许,否则产生异常。如此,可以避免容器的识别标识被篡改,提升安全性。
结合参考图6,在具体实现中,可以在CR3寄存器中预留若干位,用来存储CID。可以再容器初始化时,配置CR3寄存器中的页表的基地址,并且配置CID。
在具体实施中,所述容器对内存的读写权限可以在安全页面属性表(SPOT,SecurePage Ownership Table)内设置,所述处理器的操作系统无权配置所述安全页面属性表。若对内存的访问请求与安全页面属性表配置的权限不一致,SPOT模块拒绝内存访问。安全页面属性表可以实现内存控制器对内存物理地址的直接控制。例如,即使在页表中配置了页面可写,安全页面属性表不可写,页面最终不可写。
示例性的,安全页面属性表可以设置在安全页面属性表模块中,SPOT模块用于在内存控制器访问内存之前检查表中配置的物理地址的权限。
在具体实施中,安全页面属性表可以仅接受安全控制环境的设置。具体的实现方式可以通过硬件层面的设置,例如可以在硬件层面,限制对安全属性页表进行设置的指令实现方式,当非来源于安全控制环境的指令对安全属性表进行设置时报错。其它的可以实现安全属性页表仅接受安全控制环境的设置的具体实现方式,在此不做限制。
图7为一种安全页面属性表的示意图。安全页面属性表71中,示出了用于管理容器1内存页权限的条目711和用于管理容器2内存页权限的条目722。其中,owner区域中可以用于存储前述的容器的识别标识,也即CID,例如用于管理容器1内存页权限的条目711和用于管理容器2内存页权限的条目722中,可以分别存储相应的识别标识CID1和识别标识CID2。读/写区域中存储具体的权限为可读可写、仅可读或者仅可写。起始地址区域中可以存储对应的容器内存页起始的物理地址,长度区域中可以存储容器内存页的长度。
在具体实施中,可以由操作系统向安全控制环境发送命令,请求保护容器内存。操作系统可以将容器ID,容器内存起始的物理地址,以及容器对应的内存地址空间的长度发送给安全处理器,请求控制环境在安全页面属性表中为容器内存设置权限。安全控制环境收到容器ID,容器内存的物理地址和长度后,可以将CID填入SPOT表的owner字段,将起始的物理地址和长度分别填入起始地址和长度字段。
示例性的,前述操作系统可以运行于主处理器,由主处理器执行发送动作。安全控制环境可以运行于安全处理器,由安全处理器执行前述的设置动作。
在具体实施中,可以将某一个容器的内存分配在连续的内存空间内。连续的内存空间只占用一条SPOT条目,从而可以节省SPOT条目。
结合参考图8,配置所述容器对内存的读写权限可以包括如下步骤:
步骤S81,设置所述容器的识别标识;
步骤S82,存储所述容器的识别标识以及该容器具备访问权限的内存地址空间的对应关系。
相应的,可以在容器对内存的访问中携带容器的识别标识;根据所述对应关系,验证所述访问的地址是否在该容器具备访问权限的内存地址空间范围内,以实现验证容器对内存的访问。若所述访问的地址是否在该容器具备访问权限的内存地址空间范围内,则验证通过,否则,验证不通过。
上述对应关系可以存储于安全页面属性表。也即,安全页面属性表中可以存储容器对应的地址空间。继续结合图7,可以在owner域中存储容器的识别标识,也即访问的来源,或者称为进行访问的指令的来源。在同一条目中可以存储对应该识别标识的起始地址和长度,以及对应的权限。如此,对应一个容器的识别标识,可以确定其具有访问权限的地址空间。根据安全页面属性表中条目体现的对应关系,以及容器识别标识,即可确定对应的地址空间,进而进行验证,确定访问的地址是否在该容器具备访问权限的内存地址空间范围内。
图9示出了处理器核91、内存管理子系统92,以及物理内存93。结合参考图9,可以在容器识别标识寄存器中配置容器的识别标识,例如,可以在前述的CR3寄存器中设置CID。
内存管理单元可以基于访问指令读取页表,通过基地址寄存器得到物理地址,并且获取容器识别标识寄存器中存储的CID,将CID和物理地址拼接为扩展物理地址。并且将扩展物理地址发送给内存访问子系统92。
在具体实施中,如前文所述,CID可以存储于基地址寄存器中的部分位,也即,容器识别寄存器可以通过基地址寄存器中的部分位实现;或者容器识别标识寄存器可以通过其它现有寄存器中部分位实现,或者也可以设置新的容器识别标识寄存器。
虽然图中未示出,当CID未存储于基地址寄存器中时,MMU可以从容器识别标识寄存器中获取CID,并且,从基地址寄存器中读取物理地址。或者,也可以在MMU读取基地址寄存器之前,将容器识别标识寄存器中的CID复制至基地址寄存器中的部分位,如此,MMU可以从基地址寄存器中读取CID和物理地址。
内存访问子系统92中的SPOT模块可以解析扩展地址,从中解析出CID和真实的物理地址,并且查找安全页面属性表,根据安全页面属性表中的条目验证该CID是否有权限访问该物理地址,若无权限则拒绝访问。
本申请实施例中的技术方案,通过安全控制环境配置容器的识别标识,以及容器对内存的读写权限。操作系统无权修改由安全控制环境配置的容器的识别标识,以及容器对内存的读写权限。在验证容器对内存的访问权限通过后,才允许该容器对内存的访问,从而可以避免容器超越自身权限的访问,进而可以提升利用容器进行隔离的安全性。
本领域技术人员可以理解的是,本申请中的“在具体实施中”“一实施例中”“例如”“示例性的”等描述意指结合该实施例或示例描述的具体特征、结构或者特点包括于本申请的至少一种实施例或示例中。而且,描述的具体特征、结构或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本申请中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
另外,前述实施例中的流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在具体实施中,本申请实施例还提供一种计算设备,结合参考图10,可以包括主处理101、安全处理器102和内存访问子系统103,虽然图中未示出,计算机设备还可以包括内存以及其它为实现计算机设备功能的部件。
所述主处理器101,适于运行操作系统,所述主处理器与所述安全处理器通信连接;
所述安全处理器102,适于配置所述容器对内存的读写权限,所述主处理器运行的操作系统无权更改所述安全控制环境配置的内容;
所述内存访问子系统103,适于基于所述读写权限验证容器对内存的访问,在所述验证通过后,允许所述容器对内存的访问。
在具体实施中,所述主处理器101可以包括容器识别标识寄存器和内存管理单元;其中:
所述容器识别标识寄存器,所述容器识别标识寄存器适于存储所述容器的识别标识;
所述内存管理单元,适于从所述容器识别标识寄存器获取所述识别标识,拼接所述识别标识和所述容器对内存的访问的物理地址,生成扩展物理地址;
所述内存访问子系统,适于根据所述扩展物理地址验证所述识别标识对应的容器是否有权限访问所述物理地址。
其中,容器识别标识寄存器的具体实现可以参见前文所述,在此不再赘述。虽然图中未示出,但主处理器中包括基地址寄存器,MMU可以从基地址寄存器中读取物理地址。
在具体实施中,所述内存访问子系统可以包括安全页面属性表模块以及内存控制器;其中:
所述安全页面属性表模块可以包括存储有所述容器的识别标识以及该容器具备访问权限的内存地址空间的对应关系的安全页面属性表,所述安全页面属性表模块适于解析所述扩展物理地址得到进行所述访问的容器的识别标识以及所述访问指向的物理地址,根据安全页面属性表验证所述识别标识和所述物理地址是否满足所述对应关系;
所述内存控制器适于在所述安全页面属性表模块验证通过后访问内存。
可以理解的是,实现上述功能的软件或硬件或二者结合的部件,均可以作为本申请实施例中的内存访问子系统。
在具体实施中,所述主处理器适于向所述安全处理器发送所述容器有权限访问的内存的地址空间范围,所述安全处理器适于根据所述容器有权限访问的内存的地址空间范围,在安全页面属性表内设置所述容器对内存的读写权限。
本申请实施例中的计算设备的原理、涉及的名词解释,以及具体实现方式和有益效果,可以参见前文所述,在此不再赘述。
这里的计算设备并不限于计算机系统,也可以是诸如手持式装置和具有嵌入式应用的其他装置;手持式装置的一些示例包括蜂窝电话、因特网协议装置、数码相机、个人数字助理(PDA)或手持式PC(personal computer,个人计算机)。具有嵌入式应用的其他装置可包括网络计算机(Net PC)、机顶盒、服务器、宽域网(WAN)交换机、或可执行至少一个本申请公开实施例的一个或更多个指令的任何其他系统。
本申请实施例还提供一种内存控制方法,应用于安全处理器,结合参考图11,具体可以包括如下步骤:
步骤S111,接收容器的识别标识以及该容器具备访问权限的内存地址空间;
步骤S112,根据所述容器的识别标识以及该容器具备访问权限的内存地址空间,在内存访问子系统配置所述容器的读写权限,所述读写权限仅接受所述安全处理器的配置。
本申请实施例中的内存控制方法的原理、名词解释、具体实现以及有益效果可以参见前文所述,在此不再赘述。
本申请实施例还提供一种内存控制方法,应用于内存控制设备,结合参考图12,具体可以包括如下步骤:
步骤S121,仅接受安全控制环境配置容器对内存的读写权限;
步骤S122,基于所述读写权限验证容器对内存的访问;
步骤S123,所述验证通过后,允许所述容器对内存的访问。
本申请实施例中的内存控制设备,具体实现方式可以参见前述的内存访问子系统。步骤S121至步骤S123相关的原理、名词解释、具体实现以及有益效果可以参见前文所述,在此不再赘述。
本申请实施例还提供一种内存控制设备,适于运行前述的内存控制方法,例如前述的图11、图12或图4对应的内存控制方法。具体可以参见前文所述。
该内存控制设备可以是计算设备中的独立部件,或者也可以是集成于处理器的部件,或者也可以根据需求集成到例如存储器、接口控制模块等。
本申请实施例还提供一种安全处理器,适于运行前述的内存控制方法,例如前述的图11对应的内存控制方法。
本申请实施例还提供一种片上系统,可以包括:
前述的内存控制设备;
以及前述的安全处理器,与所述内存控制设备通信连接。
在具体实施中,片上系统还可以包括前述的主处理器,其具体实现和有益效果可以参见前文所述,在此不再赘述。
本申请实施例还提供一种处理器,用于运行存储器中的可执行程序代码,以执行前述的内存控制方法。其具体实现和有益效果可以参见前文所述,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行前述的内存控制方法。
即,上述本申请实施例中的内存控制方法可被实现为可存储在记录介质(诸如CDROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的内存控制方法。
本申请实施例还提供一种计算机设备,可以包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行前述的内存控制方法,或者执行前述的内存控制方法。
所述计算机设备包括但不限于:服务器、台式机、智能手机、笔记本电脑、平板电脑、智能手环、智能手表、其它智能设备或其中任意一种或多种的多个设备通信连接构成的分布式处理系统。
本申请实施例中的功能模块可以集成在一个处理部件中,也可以是各个模块单独物理存在,也可以两个或两个以上功能模块集成在一个部件中。上述集成的部件既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的部件如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请实施例的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (17)
1.一种内存控制方法,其特征在于,所述方法应用于处理器,所述方法包括:
通过安全控制环境配置容器对内存的读写权限,所述处理器的操作系统无权更改所述安全控制环境配置的内容;
基于所述读写权限验证容器对内存的访问;
所述验证通过后,允许所述容器对内存的访问。
2.根据权利要求1所述的内存控制方法,其特征在于,所述容器对内存的读写权限在安全页面属性表内设置,所述处理器的操作系统无权配置所述安全页面属性表。
3.根据权利要求1所述的内存控制方法,其特征在于,所述配置所述容器对内存的读写权限包括:
设置所述容器的识别标识;
存储所述容器的识别标识以及该容器具备访问权限的内存地址空间的对应关系。
4.根据权利要求3所述的内存控制方法,其特征在于,所述容器对内存的访问中包含所述容器的识别标识;所述基于所述读写权限验证容器对内存的访问包括:根据所述对应关系,验证所述访问的地址是否在该容器具备访问权限的内存地址空间范围内。
5.根据权利要求4所述的内存控制方法,其特征在于,在容器识别标识寄存器中配置所述容器的识别标识;通过内存管理单元拼接进行所述访问的容器的识别标识和所述访问指向的物理地址得到扩展物理地址;
所述根据所述对应关系,验证所述访问的地址是否在该容器具备访问权限的内存地址空间范围内包括:
安全页面属性表模块解析所述扩展物理地址得到进行所述访问的容器的识别标识以及所述访问指向的物理地址;
安全页面属性表模块判断所述识别标识和所述物理地址是否满足所述对应关系。
6.一种计算设备,其特征在于,包括主处理器、安全处理器和内存访问子系统,其中:
所述主处理器,适于运行操作系统,所述主处理器与所述安全处理器通信连接;
所述安全处理器,适于配置所述容器对内存的读写权限,所述主处理器运行的操作系统无权更改所述安全控制环境配置的内容;
所述内存访问子系统,适于基于所述读写权限验证容器对内存的访问,在所述验证通过后,允许所述容器对内存的访问。
7.根据权利要求6所述的计算设备,其特征在于,所述主处理器包括容器识别标识寄存器和内存管理单元;其中:
所述容器识别标识寄存器,适于存储所述容器的识别标识;
所述内存管理单元,适于从所述容器识别标识寄存器获取所述识别标识,拼接所述识别标识和所述容器对内存的访问的物理地址,生成扩展物理地址;
所述内存访问子系统,适于根据所述扩展物理地址验证所述识别标识对应的容器是否有权限访问所述物理地址。
8.根据权利要求7所述的计算设备,其特征在于,所述内存访问子系统包括安全页面属性表模块以及内存控制器;其中:
所述安全页面属性表模块包括存储有所述容器的识别标识以及该容器具备访问权限的内存地址空间的对应关系的安全页面属性表,所述安全页面属性表模块适于解析所述扩展物理地址得到进行所述访问的容器的识别标识以及所述访问指向的物理地址,根据安全页面属性表验证所述识别标识和所述物理地址是否满足所述对应关系;
所述内存控制器适于在所述安全页面属性表模块验证通过后访问内存。
9.根据权利要求6所述的计算设备,其特征在于,所述主处理器适于向所述安全处理器发送所述容器有权限访问的内存的地址空间范围,所述安全处理器适于根据所述容器有权限访问的内存的地址空间范围,在安全页面属性表内设置所述容器对内存的读写权限。
10.一种内存控制方法,应用于安全处理器,其特征在于,包括:
接收容器的识别标识以及该容器具备访问权限的内存地址空间;
根据所述容器的识别标识以及该容器具备访问权限的内存地址空间,在内存访问子系统配置所述容器的读写权限,所述读写权限仅接受所述安全处理器的配置。
11.一种内存控制方法,应用于内存控制设备,其特征在于,包括:
仅接受安全控制环境配置容器对内存的读写权限;
基于所述读写权限验证容器对内存的访问;
所述验证通过后,允许所述容器对内存的访问。
12.一种内存控制设备,其特征在于,适于运行如权利要求11的内存控制方法。
13.一种安全处理器,其特征在于,适于运行如权利要求10的内存控制方法。
14.一种片上系统,其特征在于,包括:
如权利要求12所述的内存控制设备;
以及如权利要求13所述的安全处理器,与所述内存控制设备通信连接。
15.一种处理器,其特征在于,用于运行存储器中的可执行程序代码,以执行权利要求1至5任一项所述的内存控制方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序运行时执行权利要求1至5中任一项所述的内存控制方法,或者执行权利要求10或权利要求11中所述的内存控制方法。
17.一种计算机设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至5中任一项所述的内存控制方法,或者执行权利要求10或权利要求11中所述的内存控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011542662.3A CN112631720B (zh) | 2020-12-23 | 2020-12-23 | 内存控制方法、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011542662.3A CN112631720B (zh) | 2020-12-23 | 2020-12-23 | 内存控制方法、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112631720A true CN112631720A (zh) | 2021-04-09 |
CN112631720B CN112631720B (zh) | 2023-05-23 |
Family
ID=75321818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011542662.3A Active CN112631720B (zh) | 2020-12-23 | 2020-12-23 | 内存控制方法、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631720B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2735000A1 (en) * | 2011-07-18 | 2014-05-28 | Hewlett-Packard Development Company, L.P. | Access to memory region including confidential information access to memory region including confidential information |
CN109766165A (zh) * | 2018-11-22 | 2019-05-17 | 海光信息技术有限公司 | 一种内存访问控制方法、装置、内存控制器及计算机系统 |
CN110008692A (zh) * | 2019-03-22 | 2019-07-12 | 联想(北京)有限公司 | 一种信息处理方法、装置与存储介质 |
CN111857947A (zh) * | 2020-06-11 | 2020-10-30 | 海光信息技术有限公司 | 内存隔离方法、隔离检查电路和cpu芯片 |
-
2020
- 2020-12-23 CN CN202011542662.3A patent/CN112631720B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2735000A1 (en) * | 2011-07-18 | 2014-05-28 | Hewlett-Packard Development Company, L.P. | Access to memory region including confidential information access to memory region including confidential information |
CN109766165A (zh) * | 2018-11-22 | 2019-05-17 | 海光信息技术有限公司 | 一种内存访问控制方法、装置、内存控制器及计算机系统 |
CN110008692A (zh) * | 2019-03-22 | 2019-07-12 | 联想(北京)有限公司 | 一种信息处理方法、装置与存储介质 |
CN111857947A (zh) * | 2020-06-11 | 2020-10-30 | 海光信息技术有限公司 | 内存隔离方法、隔离检查电路和cpu芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN112631720B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11443034B2 (en) | Trust zone-based operating system and method | |
RU2640300C2 (ru) | Движок интроспекции памяти для защиты целостности виртуальных машин | |
US10255088B2 (en) | Modification of write-protected memory using code patching | |
US7502872B2 (en) | Method for out of user space block mode I/O directly between an application instance and an I/O adapter | |
US7975117B2 (en) | Enforcing isolation among plural operating systems | |
JPH0769844B2 (ja) | データ空間への共通アクセス装置及び方法 | |
CN112541166B (zh) | 一种方法、系统和计算机可读存储介质 | |
CN112099903B (zh) | 一种虚拟机的内存管理方法、装置、cpu芯片及服务器 | |
CN114327777B (zh) | 确定全局页目录的方法、装置、电子设备及存储介质 | |
US9542112B2 (en) | Secure cross-process memory sharing | |
TW202036309A (zh) | 安全介面控制安全儲存硬體標記 | |
US7577761B2 (en) | Out of user space I/O directly between a host system and a physical adapter using file based linear block address translation | |
US20070005815A1 (en) | System and method for processing block mode I/O operations using a linear block address translation protection table | |
US20060265525A1 (en) | System and method for processor queue to linear block address translation using protection table control based on a protection domain | |
CN112596950A (zh) | 虚拟机数据备份方法、装置、设备及存储介质 | |
JPH0296246A (ja) | 論理プロセッサ設備を供なったデータプロセッシングシステム内で論理システムの起動を制御する装置 | |
WO2023045744A1 (zh) | 加固方法、注册方法、运行方法、电子设备和存储介质 | |
CN112631720B (zh) | 内存控制方法、介质及设备 | |
CN114490449B (zh) | 一种内存访问方法、装置及处理器 | |
CN116521306A (zh) | 一种容器使能selinux的方法和计算机设备 | |
CN111666579B (zh) | 计算机设备及其访问控制方法和计算机可读介质 | |
EP3899729B1 (en) | Storing microcode for a virtual function in a trusted memory region | |
CN112231761A (zh) | 一种设备挂载方法、计算设备及可读存储介质 | |
US20200081847A1 (en) | Page Protection Layer | |
CN112580023B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40049842 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |