CN116108454B - 内存页面管理方法及装置 - Google Patents
内存页面管理方法及装置 Download PDFInfo
- Publication number
- CN116108454B CN116108454B CN202310377569.9A CN202310377569A CN116108454B CN 116108454 B CN116108454 B CN 116108454B CN 202310377569 A CN202310377569 A CN 202310377569A CN 116108454 B CN116108454 B CN 116108454B
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- memory page
- secure
- target data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/5022—Mechanisms to release resources
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本说明书实施例中提供了一种内存页面管理方法及装置。执行该方法的计算设备包括处理器和内存,该处理器包括内存加解密引擎MEE,该内存中包括安全内存区域。在从安全内存区域中确定出待换出的第一内存页面后,可以从安全内存区域外的普通内存中确定出第二内存页面;然后通过MEE实现根据第一内存页面的物理地址对存储在第一内存页面上的目标数据进行加密,获得目标密文并将其写入第二内存页面;进而释放该第一内存页面并锁定第二内存页面,使得该目标数据仅允许从第二内存页面换入安全内存区域。
Description
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及一种内存页面管理方法及装置。
背景技术
基于硬件的可信执行环境(trusted execution environment,TEE)解决方案中,通常需要在计算设备的内存中预留属于TEE的安全内存区域。计算设备运行过程中,可能因安全内存区域中剩余安全内存不足而启用内存换页机制,将属于安全内存区域的某些安全内存页面换出到安全内存区域外,即将存储在某些安全内存页面上的目标数据换出到普通内存。
希望有一种新的技术方案,以期能够更为快速的完成换出安全内存页面。
发明内容
本说明书一个或多个实施例中提供了一种内存页面管理方法及装置。
第一方面,提供了一种内存页面管理方法,所述方法由计算设备执行,所述计算设备包括处理器和内存,所述处理器包括内存加解密引擎(memory encryption engine,MEE),所述内存中包括安全内存区域。其中,所述方法包括:从所述安全内存区域中确定出待换出的第一内存页面;从所述内存中确定出第二内存页面,所述第二内存页面位于所述安全内存区域外;通过所述MEE,根据所述第二内存页面的物理地址对存储在所述第一内存页面上的目标数据进行加密,获得目标密文并将其写入所述第二内存页面;释放所述第一内存页面,并锁定所述第二内存页面,使得所述目标数据仅允许从所述第二内存页面换入所述安全内存区域。
在一种可能的实施方式中,其中,所述方法还包括:当允许访问所述目标数据的安全应用请求访问所述目标数据而发生缺页错误时,从所述内存中确定出用于存储所述目标数据的所述第二内存页面;从所述安全内存区域中确定出第三内存页面;通过所述MEE,根据所述第二内存页面的物理地址对写入所述第二内存页面的所述目标密文进行解密,获得所述目标数据并将其存储至所述第三内存页面;根据所述第三内存页面更新所述安全应用对应的页表。
在一种可能的实施方式中,所述方法还包括:在所述从所述内存中确定出第二内存页面之后,清空所述处理器的高速缓存中与所述第二内存页面对应的缓存行。
在一种可能的实施方式中,所述安全内存区域属于基于硬件的TEE。
第二方面,提供了一种内存页面管理装置,部署在计算设备中,所述计算设备包括处理器和内存,所述处理器包括MEE,所述内存中包括安全内存区域。所述装置包括:换页驱动模块,配置为从所述安全内存区域中确定出待换出的第一内存页面;所述换页驱动模块,还配置为从所述内存中确定出第二内存页面,所述第二内存页面位于所述安全内存区域外;安全换页模块,配置为通过所述MEE,根据所述第二内存页面的物理地址对存储在所述第一内存页面上的目标数据进行加密,获得目标密文并将其写入所述第二内存页面;所述换页驱动模块,配置为释放所述第一内存页面,并锁定所述第二内存页面,使得所述目标数据仅允许从所述第二内存页面换入所述安全内存区域。
在一种可能的实施方式中,所述换页驱动模块,还配置为当允许访问所述目标数据的安全应用请求访问所述目标数据而发生缺页错误时,从所述内存中确定出用于存储所述目标数据的所述第二内存页面;所述换页驱动模块,还配置为从所述安全内存区域中确定出第三内存页面;所述安全换页模块,还配置为通过所述MEE,根据所述第二内存页面的物理地址对写入所述第二内存页面的所述目标密文进行解密,获得所述目标数据并将其存储至所述第三内存页面;所述换页驱动模块,还配置为根据所述第三内存页面更新所述安全应用对应的页表。
在一种可能的实施方式中,所述安全换页模块,还配置为在从所述内存中确定出第二内存页面之后,清空所述处理器的高速缓存中与所述第二内存页面对应的缓存行。
在一种可能的实施方式中,所述安全内存区域属于基于硬件的TEE。
第三方面,提供了一种计算设备,包括内存和处理器,所述处理器包括处理核心和内存加解密引擎,所述内存包括安全内存区域,所述内存中存储有位于所述安全内存区域外的可执行代码/指令,所述处理器的处理核心执行所述可执行代码/指令时,实现第一方面中任一项所述的方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,所述计算机程序/指令在计算设备中执行时,计算设备实现第一方面中任一项所述的方法。
通过本说明书一个或多个实施例中提供的方法及装置,计算设备在从安全内存区域中确定出待换出的第一内存页面之后,可以从安全内存区域外的普通内存确定出第二内存页面;然后通过MEE实现根据第二内存页面的物理地址对存储在第一内存页面上的目标数据进行加密,获得目标密文并将其写入第二内存页面,进而释放第一内存页面并锁定第二内存页面,使得目标数据仅允许从第二内存页面换入安全内存区域。如此,计算设备在换出属于安全内存区域的安全内存页面的过程中,通过复用处理器中的MEE来完成对存储在安全内存页面上的目标数据进行加密,可以更为快速的完成换出安全内存页面。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为示例性提供的一种支持基于硬件的TEE的计算设备的结构示意图;
图2为本说明书实施例中提供的一种内存页面管理方法的流程图之一;
图3为本说明书实施例中提供的一种内存页面管理方法的流程图之二;
图4为本说明书实施例中提供的一种内存页面管理装置的结构示意图。
具体实施方式
下面结合附图,对本说明书所提供的各个非限制性实施例进行详细描述。
目前工业界十分关注TEE技术的解决方案,几乎所有主流的芯片和软件联盟都有自己独立的TEE解决方案,比如Intel SGX(Software Guard Extensions,软件保护扩展)以及ARM Trust zone(信任区)等基于硬件的TEE。其中,TEE可以起到黑箱作用,在TEE中的代码和数据即便是操作系统层都无法偷窥,只有通过代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中复杂的密码学运算,计算过程效率几乎没有损失。
图1为示例性提供的一种支持基于硬件的TEE的计算设备的结构示意图。参见图1所示,该计算设备可以包括处理器和内存。处理器包括一个或多个处理核心,处理核心包括但不限于用于提取指令的预取逻辑、用于解码指令的解码逻辑和用于执行指令的执行逻辑等等。该处理器还可以包括用于缓存指令和/或数据的高速缓存,例如可以包括但不限于级别为L1、L2和LLC等多个级别的高速缓存。除此之外,处理器中还可以包括配置有MEE的系统代理,其中该MEE的功能在下文中详细描述。
该计算设备还可以包括其它功能模块,例如还可以包括用于支持处理器访问内存的内存控制器。内存控制器可以耦合到包含MEE的系统代理,也可以独立于处理器和内存。
基于硬件的TEE解决方案中,需要在计算设备的内存中预留安全内存区域,例如预留预定数量的物理内存页面作为安全内存区域。下面以Intel SGX技术的安全内存区域为例进行说明:计算设备可以基于SGX技术创建enclave(围圈或飞地),以作为用于执行特定应用程序(安全应用)的TEE。计算设备可以利用处理器中新增的处理器指令,在内存中分配部分区域 EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),以用于驻留上述的Enclave,前述的EPC所对应的内存区域即为属于TEE的安全内存/安全内存区域。
处理器中的MEE用于对处理器和安全内存区域间交换的数据进行加解密。与安全应用相关的数据(enclave中的代码和数据)从处理器到安全内存区域时,可以被处理器内部的MEE加密以获得对应的密文,密文可以通过内存控制器写入到安全内存区域;安全内存区域中的密文只有MEE能够解密。由此,enclave的安全边界只包含其自身和处理器,无论是特权软件或非特权软件都无法访问Enclave,即便是操作系统管理员和虚拟机监控器(virtual machine monitor,VMM;或称为hypervisor)也无法影响enclave中的代码和数据。
计算设备运行期间,可能因安全内存区域的可用物理内存不足而启用内存换页机制。区别于普通内存页面的换页过程,为了保证安全内存区域存储的数据的安全性,换出属于安全内存区域的安全内存页面前,需要加密其存储的目标数据以获得目标密文,此外还可能生成用于保证新鲜性的Nonce和/或用于验证完整性的信息验证码(messageauthentication code,MAC)等等,然后再将目标密文存储到安全内存区域外的普通内存页面;可以理解,从普通内存页面将目标密文换入安全内存页面前,需要对应的执行解密操作。对安全内存页面执行换页机制的过程中,通常采用软件的方式完成对数据的加解密操作,耗时较长。
本说明书实施例中至少提供了一种内存页面管理方法和装置。执行该方法的计算设备包括处理器和内存,处理器中包括MEE,内存中包括安全内存区域。计算设备在从安全内存区域中确定出待换出的第一内存页面之后,可以从安全内存区域外的普通内存确定出第二内存页面;然后通过MEE实现根据第二内存页面的物理地址对存储在第一内存页面上的目标数据进行加密,获得目标密文并将其写入第二内存页面,进而释放第一内存页面并锁定第二内存页面,使得目标数据仅允许从第二内存页面换入安全内存区域。如此,计算设备在换出属于安全内存区域的安全内存页面的过程中,通过复用处理器中的MEE来完成对存储在安全内存页面上的目标数据进行加密,可以更为快速的完成换出安全内存页面,以利支持依赖安全内存页面运行的安全应用更加高效的运行。
下面结合图1示例的计算设备详细描述本说明书实施例中提供的技术方案。
图2为本说明书实施例中提供的一种内存页面管理方法的流程图之一。该方法可以由计算设备执行,该计算设备包括处理器和内存,该处理器包括MEE,该内存中包括安全内存区域,该安全内存区域属于基于硬件的TEE,此外该处理器还可以包括一个或多个处理核心。该方法示例性的描述了换出属于安全内存区域的安全内存页面的过程。
参见图2所示,该方法可以包括但不限于如下步骤S21~步骤S29中的部分或全部。
步骤S21,从安全内存区域中确定出待换出的第一内存页面。
计算设备部署的操作系统(operating system,OS)可以配置换页驱动模块,通过换页驱动模块监控内存的使用情况,例如监控安全内存区域的使用情况。当换页驱动模块监控到安全内存区域的可用物理内存不足时,该换页驱动模块可以触发对安全内存页面的换页过程,按照基于访问频次和/或访问时间等预先配置的决策规则,从属于安全内存区域的多个安全内存页面中确定出待换出的第一内存页面。就硬件层面而言,计算设备的处理器可以通过其处理核心执行换页驱动模块所对应的部分指令,使得计算设备实现前述步骤S21。
步骤S23,从内存中确定出第二内存页面,第二内存页面位于安全内存区域外。
换页驱动模块例如还可以监控内存中除安全内存区域外的普通内存区域的使用情况。换页驱动模块决策出待换出的第一内存页面后,可以接着从普通内存区域中确定出第二内存页面。就硬件层面而言,计算设备的处理器可以通过其处理核心执行换页驱动模块所对应的部分指令,使得计算设备实现前述步骤S23。
当第二内存页面是处于空闲态的内存页面的情况下,即第二内存页面的物理内存地址上并未存储相关数据的情况下,可以直接接着执行如下步骤S27。当第二内存页面并非处于空闲态的内存页面的情况下,例如第二内存页面上存储有可供TEE外的应用程序访问的业务数据的情况下,可以依次执行如下步骤S25和步骤S27。
步骤S25,清空处理器的高速缓存中与第二内存页面对应的缓存行。
计算设备中部署的OS或者虚拟机监控器可以配置安全换页模块。换页驱动模块可以向安全换页模块提供第一内存页面和第二内存页面的物理内存地址,由安全换页模块实现根据第二内存页面的物理地址,清空处理器的高速缓存中与第二内存页面对应的缓存行(cache line),保证第二内存页面的物理地址和其对应在处理器的高速缓存中的数据具有一致性,避免后续过程中发生处理器的高速缓存中对相同物理内存地址同时存在明文数据和目标密文等两个不同的副本。就硬件层面而言,计算设备的处理器可以通过其处理核心执行安全换页模块所对应的部分指令,使得计算设备实现前述步骤S25。
步骤S27,通过处理器的MEE执行根据第二内存页面的物理地址对存储在第一内存页面上的目标数据进行加密,获得目标密文并将其写入第二内存页面。
安全换页模块可以向MEE提供第一页面管理请求,其中至少包括第一内存页面和第二内存页面的物理内存地址,还可以包括用于指示MEE需要执行的页面管理操作是换出安全内存页面的指示信息,从而触发MEE实现步骤S27中所述的功能。就硬件层面而言,计算设备的处理器可以通过其处理核心执行安全换页模块所对应的部分指令,完成由处理核心向MEE提供前述的第一页面管理请求,进而触发MEE执行对应的页面管理操作。
参照前文,MEE主要用于对处理器和安全内存区域间交换的数据进行加解密,与安全应用相关的数据从处理器到安全内存区域时,被MEE加密以获得对应的密文并通过内存控制器写入到安全内存区域。而且,MEE对数据进行加解密的过程中,通常会选择被处理的数据所对应的安全内存页面的物理内存地址作为输入。由此不难理解,前述步骤S27中,响应于第一页面管理请求,MEE可以实现:通过内存控制器实现根据第一内存页面的物理地址,从安全内存区域中读取存储于第一内存页面的目标数据的第一密文,根据第一内存页面的物理地址对该第一密文进行解密以获得目标数据;进而根据第二内存页面的物理地址对该目标数据进行加密以获得目标密文,并通过内存控制器实现根据第二内存页面的物理地址将目标数据所对应的目标密文写入第二内存页面。
在一些可能的实施方式中,计算设备还可以通过安全换页模块生成用于保证目标数据的新鲜性的Nonce,和/或,生成用于验证目标数据和/目标密文的完整性的MAC。
步骤S29,释放第一内存页面,并锁定第二内存页面,使得目标数据仅允许从第二内存页面换入安全内存区域。
换页驱动模块可以更新允许访问第一内存页面的安全应用所对应的页表,并清空第一内存页面上存储的目标数据的第一密文,从而完成释放第一内存页面。例如,前述页表中包括一个或多个页表项,其中一个页表项包括目标数据所对应的虚拟内存页面与该第一内存页面间的映射关系,安全应用通过该虚拟内存页面发起对通过第一内存页面存储的目标数据的访问;换页驱动模块例如可以从该页表中删除第一内存页面所对应的页表项,或者将第一内存页面所对应的页表项置为无效,从而完成对相关页表的更新。
换页驱动模块可以通过锁定第二内存页面,实现将目标数据所对应的目标密文固定在第二内存页面的物理地址上,直到该第二内存页面中的目标密文被换入安全内存区域。换页驱动模块锁定第二内存页面后,可以使计算设备中部署的OS禁止将第二内存页面换出到磁盘的交换空间并且禁止对第二内存页面进行页面迁移;或者,计算设备中部署的OS允许将第二内存页面换出到磁盘的交换空间,被换出到交换空间的目标密文被重新换入普通内存区域时,仅允许将该目标密文换入到第二内存页面的物理地址而禁止换入到普通内存区域的其它内存页面。
就硬件层面而言,计算设备的处理器可以通过其处理核心执行换页驱动模块所对应的部分指令,使得计算设备实现前述步骤S29。
允许访问目标数据的安全应用请求访问已经被换出安全内存区域的目标数据时,因安全内存区域中原本用于存储目标数据的第一内存页面已经被释放掉,计算设备将会发生缺页错误,此种情况下需要将目标数据重新换入到安全内存区域。由此,计算设备还可以维护目标数据与第二内存页面间的对应关系,例如通过换页驱动模块维护目标数据所对应的虚拟内存页面与第二内存页面间的对应关系,以便后续过程中发生安全应用请求访问目标数据时,换页驱动模块可以根据该对应关系重新将目标数据换入到安全内存区域。
参见图3,从安全内存区域外将目标数据换入安全内存区域的过程,可以包括但不限于如下步骤S31~步骤S37中的部分或全部。
步骤S31,当允许访问目标数据的安全应用请求访问目标数据而发生缺页错误时,从内存中确定出用于存储目标数据的第二内存页面。
安全应用例如可以通过目标数据所对应的虚拟内存页面发起对目标数据的访问,由于安全应用的页表中与该虚拟内存页面对应的页表项已经被删除或无效,因此会发生缺页错误。换页驱动模块可以处理该缺页错误,实现基于其维护的该虚拟内存页面与第二内存页面间的对应关系,确定出用于存储目标数据的内存页面是普通内存空间中的第二内存页面。
步骤S33,从安全内存区域中确定出第三内存页面。
换页驱动模块可以从安全内存区域中确定出处于空闲态的第三内存页面。
就硬件层面而言,计算设备的处理器可以通过其处理核心执行换页驱动模块所对应的部分指令,使得计算设备实现前述步骤S31和步骤S33。
步骤S35,通过MEE执行根据第二内存页面的物理地址对写入第二内存页面中的目标密文进行解密,获得目标数据并将其存储至第三内存页面。
换页驱动模块可以向安全换页模块提供第二内存页面和第三内存页面的物理内存地址。安全换页模块可以向MEE提供第二页面管理请求,其中至少包括第二内存页面和第三内存页面的物理内存地址,还可以包括用于指示MEE需要执行的页面管理操作是换入安全内存页面的指示信息,从而触发MEE完成步骤S35中所述的功能。就硬件层面而言,计算设备的处理器可以通过其处理核心执行安全换页模块所对应的部分指令,完成由处理核心向MEE提供前述的第二页面管理请求,触发MEE执行对应的页面管理操作。
与前述步骤S27相对应的,响应于第二页面管理请求,MEE可以:通过内存控制器实现根据第二内存页面的物理地址,从安全内存区域外的普通内存中读取已写入第二内存页面的目标数据的目标密文,根据第二内存页面的物理地址对该目标密文进行解密以获得目标数据;进而根据第三内存页面的物理地址对该目标数据进行加密以获得第二密文,并通过内存控制器实现根据第三内存页面的物理地址将第二密文写入第三内存页面。
在一些可能的实施方式中,计算设备还可以通过安全换页模块实现根据相应的Nonce验证目标数据的新鲜性,以避免发生重放攻击;和/或,计算设备还可以通过安全换页模块实现根据相应的MAC验证目标数据和/或目标密文的完整性。可以理解的是,Nonce验证未通过或者MAC验证未通过的情况下,说明可能存在入侵者发起重放攻击或者恶意更改第二内存页面中存储的目标密文,可以采用相应技术手段应对。
步骤S37,根据第三内存页面更新安全应用对应的页表。
换页驱动模块可以在安全应用对应的页面中新增或更新一个有效的页表项,该页表项中包括用于支持安全应用访问目标数据的虚拟内存页面与第三内存页面间的对应关系。如此,对于安全应用通过目标数据所对应的虚拟内存页面发起的对目标数据的访问请求,可以根据更新后的页表中的相关页表项查询到用于存储目标数据的第三内存页面,从而具体实现对通过第三内存页面存储的目标数据进行访问。
完成将目标数据换入安全内存后,计算设备还可以对应的释放原本用于存储目标数据的第二内存页面。例如,安全驱动模块在通过MEE完成执行步骤S35后,可以向换页驱动模块返回成功完成换页操作的响应消息,触发换页驱动模块执行前述步骤S37,并根据第二内存页面的物理内存地址从普通内存区域删除目标密文,完成释放第二内存页面。
前述各个方法实施例中,虽然结合换页驱动模块和安全换页模块来描述计算设备实现的各个方法步骤,然而可以理解的是计算设备在实现前述各个方法步骤的过程中,可能并不依赖换页驱动模块和安全换页模块来实现,例如可能依赖其它软件模块来实现。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种内存页面管理装置400,部署在计算设备中,所述计算设备包括处理器和内存,所述处理器包括MEE,所述内存中包括安全内存区域。所述装置400包括:换页驱动模块41,配置为从所述安全内存区域中确定出待换出的第一内存页面;所述换页驱动模块41,还配置为从所述内存中确定出第二内存页面,所述第二内存页面位于所述安全内存区域外;安全换页模块43,配置为通过所述MEE执行根据所述第二内存页面的物理地址对存储在所述第一内存页面上的目标数据进行加密,获得目标密文并将其写入所述第二内存页面;所述换页驱动模块41,配置为释放所述第一内存页面,并锁定所述第二内存页面,使得所述目标数据仅允许从所述第二内存页面换入所述安全内存区域。
在一种可能的实施方式中,所述换页驱动模块41,还配置为当允许访问所述目标数据的安全应用请求访问所述目标数据而发生缺页错误时,从所述内存中确定出用于存储所述目标数据的所述第二内存页面;所述换页驱动模块41,还配置为从所述安全内存区域中确定出第三内存页面;所述安全换页模块43,还配置为通过所述MEE执行根据所述第二内存页面的物理地址对写入所述第二内存页面的所述目标密文进行解密,获得所述目标数据并将其存储至所述第三内存页面;所述换页驱动模块41,还配置为根据所述第三内存页面更新所述安全应用对应的页表。
在一种可能的实施方式中,所述安全换页模块43,还配置为在从所述内存中确定出第二内存页面之后,清空所述处理器的高速缓存中与所述第二内存页面对应的缓存行。
在一种可能的实施方式中,所述安全内存区域属于基于硬件的TEE。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能所对应的计算机程序存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令/代码进行传输,以便这些功能所对应的计算机程序被计算机执行时,通过计算机实现本说明书任意一个实施例中所述的方法。
本说明书实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,实现本说明书任意一个实施例中提供的内存页面管理方法。
本说明书实施例中还提供了一种计算设备,包括内存和处理器,所述处理器包括处理核心和MEE,所述内存包括安全内存区域,所述内存中存储有位于所述安全内存区域外的可执行代码/指令,所述处理器的处理核心执行所述可执行代码/指令时,实现本说明书任意一个实施例中提供的内存页面管理方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例中相同、相似的部分互相参见即可,每个实施例中重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (10)
1.一种内存页面管理方法,由计算设备执行,所述计算设备包括处理器和内存,所述处理器包括内存加解密引擎MEE,所述内存中包括安全内存区域,所述方法包括:
从所述安全内存区域中确定出待换出的第一内存页面;
从所述内存中确定出第二内存页面,所述第二内存页面位于所述安全内存区域外;
通过所述MEE,根据所述第二内存页面的物理地址对存储在所述第一内存页面上的目标数据进行加密,获得目标密文并将其写入所述第二内存页面;
释放所述第一内存页面,并锁定所述第二内存页面,使得所述计算设备禁止对所述第二内存页面进行换出或迁移,所述目标数据仅允许从所述第二内存页面换入所述安全内存区域。
2.根据权利要求1所述的方法,所述方法还包括:
当允许访问所述目标数据的安全应用请求访问所述目标数据而发生缺页错误时,从所述内存中确定出用于存储所述目标数据的所述第二内存页面;
从所述安全内存区域中确定出第三内存页面;
通过所述MEE,根据所述第二内存页面的物理地址对写入所述第二内存页面的所述目标密文进行解密,获得所述目标数据并将其存储至所述第三内存页面;
根据所述第三内存页面更新所述安全应用对应的页表。
3.根据权利要求1所述的方法,所述方法还包括:在所述从所述内存中确定出第二内存页面之后,清空所述处理器的高速缓存中与所述第二内存页面对应的缓存行。
4.根据权利要求1-3中任一项所述的方法,所述安全内存区域属于基于硬件的TEE。
5.一种内存页面管理装置,部署在计算设备中,所述计算设备包括处理器和内存,所述处理器包括内存加解密引擎MEE,所述内存中包括安全内存区域,所述装置包括:
换页驱动模块,配置为从所述安全内存区域中确定出待换出的第一内存页面;
所述换页驱动模块,还配置为从所述内存中确定出第二内存页面,所述第二内存页面位于所述安全内存区域外;
安全换页模块,配置为通过所述MEE,根据所述第二内存页面的物理地址对存储在所述第一内存页面上的目标数据进行加密,获得目标密文并将其写入所述第二内存页面;
所述换页驱动模块,配置为释放所述第一内存页面,并锁定所述第二内存页面,使得所述计算设备禁止对所述第二内存页面进行换出或迁移,所述目标数据仅允许从所述第二内存页面换入所述安全内存区域。
6.根据权利要求5所述的装置,其中,
所述换页驱动模块,还配置为当允许访问所述目标数据的安全应用请求访问所述目标数据而发生缺页错误时,从所述内存中确定出用于存储所述目标数据的所述第二内存页面;
所述换页驱动模块,还配置为从所述安全内存区域中确定出第三内存页面;
所述安全换页模块,还配置为通过所述MEE执行根据所述第二内存页面的物理地址对写入所述第二内存页面的所述目标密文进行解密,获得所述目标数据并将其存储至所述第三内存页面;
所述换页驱动模块,还配置为根据所述第三内存页面更新所述安全应用对应的页表。
7.根据权利要求5所述的装置,所述安全换页模块,还配置为在从所述内存中确定出第二内存页面之后,清空所述处理器的高速缓存中与所述第二内存页面对应的缓存行。
8.根据权利要求5-7中任一项所述的装置,所述安全内存区域属于基于硬件的TEE。
9.一种计算设备,包括内存和处理器,所述处理器包括处理核心和内存加解密引擎MEE,所述内存包括安全内存区域,所述内存中存储有位于所述安全内存区域外的可执行代码,所述处理器的处理核心执行所述可执行代码时,实现权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在计算设备中执行时,计算设备实现权利要求1-4中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310377569.9A CN116108454B (zh) | 2023-04-06 | 2023-04-06 | 内存页面管理方法及装置 |
PCT/CN2024/085826 WO2024208271A1 (zh) | 2023-04-06 | 2024-04-03 | 内存页面管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310377569.9A CN116108454B (zh) | 2023-04-06 | 2023-04-06 | 内存页面管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116108454A CN116108454A (zh) | 2023-05-12 |
CN116108454B true CN116108454B (zh) | 2023-06-30 |
Family
ID=86256468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310377569.9A Active CN116108454B (zh) | 2023-04-06 | 2023-04-06 | 内存页面管理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116108454B (zh) |
WO (1) | WO2024208271A1 (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342711A (zh) * | 2021-06-28 | 2021-09-03 | 海光信息技术股份有限公司 | 页表更新方法、装置及相关设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107563207B (zh) * | 2017-08-04 | 2019-11-22 | 海光信息技术有限公司 | 加密方法、装置及解密方法、装置 |
CN111259380B (zh) * | 2017-08-22 | 2021-02-12 | 海光信息技术股份有限公司 | 内存页转移方法和函数调用方法 |
CN109670345A (zh) * | 2018-12-21 | 2019-04-23 | 成都海光集成电路设计有限公司 | 内存页面换入换出的保护方法、加速器模块和soc芯片 |
US20220398017A1 (en) * | 2021-06-15 | 2022-12-15 | Intel Corporation | Independently controlled dma and cpu access to a shared memory region |
CN113342473B (zh) * | 2021-06-28 | 2024-01-19 | 海光信息技术股份有限公司 | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 |
CN114253738B (zh) * | 2021-11-02 | 2024-05-24 | 上海交通大学 | 可信执行环境的内存锁定方法 |
-
2023
- 2023-04-06 CN CN202310377569.9A patent/CN116108454B/zh active Active
-
2024
- 2024-04-03 WO PCT/CN2024/085826 patent/WO2024208271A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342711A (zh) * | 2021-06-28 | 2021-09-03 | 海光信息技术股份有限公司 | 页表更新方法、装置及相关设备 |
Non-Patent Citations (2)
Title |
---|
Efficient and Secure Deep Learning Inference in Trusted Processor Enabled Edge Clouds;Yuepeng Li 等;《IEEE Transactions on Parallel and Distributed Systems》;第4311-4325页 * |
基于SGX和VMX的安全交互研究与实现;李明煜;《中国优秀硕士学位论文全文数据库 信息科技辑》(第8期);第I138-106页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116108454A (zh) | 2023-05-12 |
WO2024208271A1 (zh) | 2024-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9195824B2 (en) | Providing integrity verification and attestation in a hidden execution environment | |
US10303901B2 (en) | Secure processor and a program for a secure processor | |
US10261919B2 (en) | Selective memory encryption | |
US11841806B1 (en) | System, apparatus and method for integrity protecting tenant workloads in a multi-tenant computing environment | |
CN107690621B (zh) | 受保护的异常处置 | |
CN107690628B (zh) | 具有所有权表的数据处理装置和方法 | |
CN107735768B (zh) | 处理数据的方法和设备 | |
Jin et al. | Architectural support for secure virtualization under a vulnerable hypervisor | |
KR101477080B1 (ko) | 메모리 액세스 보안 관리 | |
CN107690629B (zh) | 地址转换 | |
JP5081056B2 (ja) | キャッシュ共用処理間の情報漏洩削減 | |
JP2014529262A (ja) | ソフトウェアクリプトプロセッサ | |
CN109739613B (zh) | 嵌套页表的维护方法、访问控制方法及相关装置 | |
JP2020042341A (ja) | プロセッシングデバイス及びソフトウェア実行制御方法 | |
CN116108454B (zh) | 内存页面管理方法及装置 | |
CN116680096A (zh) | 共享内存的管理方法、虚拟机监控器和计算设备 | |
CN116701251A (zh) | 在计算设备中管理tlb的方法和对应计算设备 | |
JP2019109910A (ja) | プロセッサ | |
CN117492932B (zh) | 虚拟机访问方法和设备 | |
Alam et al. | CAUSEC: Cache-Based Secure Key Computation with (Mostly) Deprivileged Execution |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |