CN109002706A - 一种基于用户级页表的进程内数据隔离保护方法和系统 - Google Patents
一种基于用户级页表的进程内数据隔离保护方法和系统 Download PDFInfo
- Publication number
- CN109002706A CN109002706A CN201810589291.0A CN201810589291A CN109002706A CN 109002706 A CN109002706 A CN 109002706A CN 201810589291 A CN201810589291 A CN 201810589291A CN 109002706 A CN109002706 A CN 109002706A
- Authority
- CN
- China
- Prior art keywords
- user
- page table
- page
- physical
- level
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及基于用户级页表的进程内数据隔离保护方法和系统,包括将用户进程的虚拟空间划分出一部分作为用户自管理区域。将该用户自管理区域划分为用户级页表区域和用户自管理数据区域,存放在用户自管理数据区域的受保护的敏感数据仅由该用户级页表区域的页表进行管理。通过限定指定的程序对象才能访问该用户级页表,实现进程内数据的隔离。同时通过限定该用户级页表可以映射的物理页面范围,保证进程间数据的隔离不受影响。该用户级页表在虚拟空间完成虚实地址映射,页表初始化和缺页处理;当发生中断时,该用户级页表进行用户自定义中断处理,避免陷入内核,保证运行效率。本发明可以提升虚拟内存系统的效率,且提供细粒度的进程内安全防护。
Description
技术领域
本发明涉及计算机领域,并特别涉及一种基于用户级页表的进程内数据隔离保护方法和系统。
背景技术
传统的计算机系统,对于进程内部的数据访问,没有提供有效的保护手段。一般情况下,处理器硬件允许进程内的代码任意访问进程内的数据空间,这就为缓冲区溢出等攻击方法提供了潜在的攻击途径。攻击程序可以通过进程内局部的代码漏洞,获得整个进程地址空间的访问权限,进一步控制整个进程的数据和代码执行。很多消费电子设备都使用扩展的安全模块来确保数据安全,目前常见的方式有:
1.外部挂接硬件安全模块。
数据的处理交由外部的安全模块实现,这些模块能够保护自己的资源和密钥等数据的安全,如SIM卡、各种智能卡或连接到外部的硬件加解密模块等,但其同主芯片的通信线路暴露在外部,容易被监听破解。另外,通信的速率比较低。
2.内部集成硬件安全模块。
将外部安全模块的功能集成到芯片内,因此一个芯片上至少有两个核,一个普通核和一个安全核。优点是核与核之间的通信在芯片内部实现,不再暴露在外面。缺点是核之间的通信速度仍然较低,而且单独的安全核性能有限,还会占用SoC面积,成本较高。
3.ARM Trustzone、Intel SGX等安全子系统。
Trustzone安全技术自ARMv6版本开始引入ARM架构规范。在概念上将SoC的硬件和软件资源划分为安全(Secure World)和非安全(Normal World)两个世界,所有需要保密的操作在安全世界执行(如指纹识别、密码处理、数据加解密、安全认证等),其余操作在非安全世界执行(如用户操作系统、各种应用程序等),安全世界和非安全世界通过监管模式(MonitorMode)进行转换。同样存在模式切换时的性能开销。
Intel SGX是Intel Software Guard Extension的缩写。SGX是Intel指令集架构(ISA)的扩展,主要提供了一些指令用于创建一个可信执行环境(Trusted ExecutionEnvironment,TEE,又称Enclave)。用户态应用程序可以在Enclave中安全执行,而不被恶意的操作系统(Operating System,OS)或管理程序(Hypervisor)所攻击。Intel SGX技术提供了应用级的隔离,需要保证机密性和完整性的安全敏感代码仅仅信任CPU,硬件、OS、应用程序等都不能影响这部分代码执行的安全性。SGX技术的主要目的,是保护应用程序的安全敏感代码不被恶意的高优先级软件中断或破坏执行。
以上分区安全子系统的技术,只保护一个封闭的子系统内部的数据安全,对于复杂大型应用程序,无法实现数据的有效保护。上述复杂大型应用程序,是指一个进程内包含多个线程,各个线程之间共享程序的内存空间;或指一个进程内的程序和数据占用的内存空间是GB量级的。
4.Intel MPK、MPX等进程内数据保护技术。
Intel MPK(Memory ProtectionKey,内存保护关键字),是将内存的页面划分到多个域中。每个页面属于N个域之一,由页表中的M个bit来指定,这M个bit称为保护关键字(protection key)。其中N=2M。MPK技术的保护方法是,当进程访问内存时,硬件会检查当前进程的保护关键字和要访问的内存块的保护关键字是否一样,不一样则会触发异常。同时,也必须满足页表本身权限位所表示的页面的权限,这两者都满足才是合法的访存操作。
Intel MPX(Memory Protection eXtensions,内存保护扩展),是对指针访问的内存地址范围进行检查,由硬件辅助实现,从第六代Core处理器(Skylake)开始支持。在编译器、库和操作系统的支持下,MPX通过检查指针引用,判断其正常编译时的意图,是否因缓冲区溢出而造成了运行时恶意利用,从而提高软件的安全性。
PULP(ProtectionbyUser Level Partition,用户级分区保护),是一种基于处理器程序计数器和访存地址关联实现进程内数据隔离与保护的方法。在同一个进程内部,限制不可信代码对安全敏感数据造成的破坏和越界访问。
以上三种针对进程内数据保护的技术,MPK是基于域的隔离,MPX是基于地址的隔离,PULP是基于用户级分区的数据隔离,MPX的缺点是需要对所有的地址访问进行修改,增加判断指令,开销比较大。MPK和PULP共同的缺点是,只能以域或区为单位进行数据保护,域或区一般包含若干个页,因此是粗粒度的数据保护,无法实现以页为单位的细粒度的进程内数据隔离。
发明内容
本发明为实现进程内数据的细粒度保护,提出了一种将用户进程的页表放置在虚拟空间进行保护的方法,用户进程中有一段虚拟空间由用户进程自身进行管理,限制不可信用户代码对虚拟空间敏感数据的访问。本发明提出的用户级页表保护(PULPT,ProtectionbyUser Level Page Table)的安全机制,包括划分用户级页表和内核页表,管理用户级页表,限制用户级页表映射物理页面的范围,限定只有指定的程序对象才能访问用户级页表,越界访问、权限违法或缺页都会触发中断,执行用户自定义中断处理流程。其中,管理用户级页表又包括用户进程自管理区域虚拟地址和物理地址的相互转换(虚实页面间的映射过程),物理空间的管理方法,页表初始化和权限设置。
具体地说,本发明公开了一种基于用户级页表的进程内数据隔离保护方法,其中包括:
将用户进程的虚拟空间划分出一部分由用户进程自行管理,作为用户自管理区域,将该用户自管理区域划分为用户级页表区域和用户自管理数据区域,该用户级页表区域用以存放用户级页表,该用户自管理数据区域用以存放受保护的敏感数据,该敏感数据仅由该用户级页表进行管理,管理内容包括修改虚实地址映射、设定读写执行权限、标记读写的访问状态。
该基于用户级页表的进程内数据隔离保护方法,其中划分用户级页表和内核页表,具体的方法是,在该用户进程的访存指令触发硬件查找页表项时,判断该访存指令请求的虚拟地址是否属于用户自管理区域的界限内,若是,则选择用户级页表的根目录地址,在用户级页表区域查找页表项;否则选择内核页表的根目录地址,在内核区域查找页表项;
处理器包括虚地址界限寄存器,用于存储该用户自管理区域的上界和下界;处理器还包括地址寄存器,用于存储该用户级页表的根目录地址。
该基于用户级页表的进程内数据隔离保护方法,其中该用户级页表内容由该用户进程自行管理,该用户进程执行过程中自行申请和分配该用户自管理区域的虚拟页面,并为该用户自管理区域的虚拟页面与物理页面建立映射关系,其中该物理页面由该用户进程向内核申请所得。
该基于用户级页表的进程内数据隔离保护方法,其中通过以下步骤限制该用户级页表映射物理页面的范围:在处理器写指令执行时,若该写指令的目的地址属于用户自管理区域的用户级页表区域,则该写指令的写入数据即为用户级页表区域的页表项,从该页表项中获取该目的地址映射的物理页面的物理页号,并判断该物理页号是否合法,合法是指由内核配置的属于用户级页表映射的物理页面范围,若不合法则产生中断,阻止该写指令将页表项写入用户级页表区域,否则允许该写指令将页表项写入用户级页表区域;
通过以下步骤设定该用户级页表映射的物理页面范围:由内核建立一种数据结构,该数据结构中的数据元素为映射的物理页面地址,或映射的物理页面的物理页号,或该物理页号对应的指示位,对写该用户级页表时物理页号是否合法的判断,由查找该数据元素实现。
该基于用户级页表的进程内数据隔离保护方法,其中限定对该用户级页表进行访问的程序对象,以保护该用户级页表。
该基于用户级页表的进程内数据隔离保护方法,其中该用户自管理区域的虚拟页面与物理页面映射变换之前,先初始化一个自映射的多级页表,并分别在各级页表上建立对应的页表项指向各自页表的首地址,以完成该用户级页表的初始化过程。
该基于用户级页表的进程内数据隔离保护方法,其中在该用户进程执行访存指令触发该用户自管理区域的虚拟页面与物理页面映射变换过程中,若发生中断,则执行以下步骤:
步骤201,处理器在写回阶段检测中断,执行中断处理;
步骤202,判断中断是否需要用户进程自行处理,若是,执行步骤203,否则执行步骤206;
步骤203,用户进程自行处理该中断,处理器提供一组用户专用寄存器来保存中断指令的程序计数器、中断的原因和访存的地址;
步骤204,程序转到用户中断处理函数的入口,执行用户自定义中断处理函数;
步骤205,结束;
步骤206,执行常规内核中断处理流程,之后执行步骤205。
该基于用户级页表的进程内数据隔离保护方法,其中该用户进程向内核申请所得的物理页面,其对应的物理空间的管理方法包括:
物理空间的管理步骤,获取预设的数据结构,用以记录内核分配的空闲物理页号;
数据结构的查找步骤,在该用户自管理区域初始化或发生缺页中断时,根据申请的物理空间大小,从该数据结构中取得多个物理页面,将该多个物理页面依次映射到虚拟页面;
数据结构的插入步骤,在页面回收时,把物理页面放回到记录空闲物理页号的该数据结构;
数据结构的删除步骤,在该用户进程退出时,把该数据结构中的物理页面还给内核。
本发明还公开了一种基于用户级页表的进程内数据隔离保护系统,其中包括:
预处理模块,在用户进程访问内存前,通过设置用户自管理区域的界限和设置用户级页表根目录地址,实现用户级页表区域和内核页表区域的划分;该预处理模块还用于用户级页表区域的管理,包括用户级页表初始化、用户自管理区域虚拟地址与物理地址建立映射关系、物理页面对应的物理空间管理和用户级页表项中访问权限设置;
处理模块,在用户进程访问内存时,首先判断请求的虚拟地址是否属于用户自管理区域,若是,则从用户级页表区域查找页表项,用户进程开启进程内的安全保护,否则从内核页表区域查找页表项,用户进程处于常规的安全保护状态;然后判断请求是否访问用户级页表区域,若是,则进一步判断请求对象是否有权访问用户级页表,且用户级页表项中写入的物理页号是否属于该用户级页表映射的物理页面范围,若是则执行访问请求,否则开启中断;若请求访问用户自管理数据区域,则用户进程执行用户级页表项权限位违法和缺页检查,若两者其一发生,则开启中断,否则执行访问请求。
该基于用户级页表的进程内数据隔离保护系统,其中该预处理模块初始化一个自映射的多级页表,并分别在各级页表上建立对应的页表项指向各自页表的首地址,以完成该用户级页表的初始化过程;
该预处理模块管理物理空间的数据结构,包括:
物理空间管理模块,获取预设的数据结构,用以记录内核分配的空闲物理页号;
数据结构查找模块,在该用户自管理区域初始化或发生缺页中断时,根据申请的物理空间大小,从该数据结构中取得多个物理页面,将该多个物理页面依次映射到虚拟页面;
数据结构插入模块,在页面回收时,把物理页面放回到记录空闲物理页号的该数据结构;
数据结构删除模块,在该用户进程退出时,把该数据结构中的物理页面还给内核;
该程序运行时处理模块在发生中断时,执行用户自定义中断处理过程,具体内容包括:
中断探测模块,用于处理器在写回阶段检测中断,执行中断处理;
判断模块,用于判断中断是否需要用户自行处理,若是,调用用户中断模块,否则调用系统中断模块;
用户中断模块,用于供用户进程自行处理该中断,处理器提供一组用户专用寄存器来保存中断指令的程序计数器、中断的原因和访存的地址,程序转到用户中断处理函数的入口,执行用户自定义中断处理函数,之后结束中断处理;
系统中断模块,用于执行常规内核中断处理流程,之后结束中断处理。
本发明的技术进步包括:
1.提升虚拟内存系统的效率。
用户级页表的修改和维护主要在用户态进行,不需要频繁进出内核,减少了进行上下文切换的开销。
2.细粒度的进程内安全防护。
用户级页表可以以页面为单位进行读、写、执行等安全配置,不受MPX的区域数限制和PULP的限界寄存器数限制。用户级页表一定程度上可以使进程内部的可信代码更加灵活的为不可信代码配置可以访问的范围。其中,可信代码和不可信代码由用户进程来设定,例如用户进程可以设定主函数代码为可信代码,调用的第三方库函数代码为不可信代码。用户进程也可以根据其他安全需求设定可信代码和不可信代码。
附图说明
图1为本发明基于用户级页表的进程内数据保护示意图;
图2为本发明用户自定义中断处理流程图;
图3为本发明物理空间的管理方法流程图;
图4为本发明限制用户进程访问物理页面的方法流程图;
图5为现有技术的三级页表PTW过程图;
图6为本发明页表初始化PTW过程图;
图7为本发明当PTE表项缺失时缺页嵌套处理流程图;
图8为本发明当PMD表项缺失时缺页嵌套处理流程图;
图9为本发明当PGD表项缺失时缺页嵌套处理流程图。
具体实施方式
为了解决上述技术问题,本发明目的在于提供一种进程内数据的细粒度保护方法,提出了将用户进程的页表放置在虚拟空间进行保护,用户进程中有一段虚拟空间由用户进程自身进行管理,限制不可信用户代码对虚拟空间敏感数据的访问。为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
本发明的方法实施例:基于用户级页表的进程内数据保护
将用户进程的一段虚拟空间设为用户自管理区域,将该区域划分为用户级页表区域和用户自管理数据区域,该用户自管理数据区域的敏感数据仅由该用户级页表区域的页表进行管理,基于用户级页表的进程内数据保护如图1所示。
在预处理101阶段,处理器设置用户自管理区域的界限1013和用户级页表的根目录地址1014。在程序运行时,根据内存访问请求的虚拟地址和用户自管理区域的界限,判断1021查找页表项是在用户级页表区域进行,还是在内核区域进行。用户级页表的根目录地址不同于内核页表的根目录地址,因此可以实现对用户级页表和内核页表的划分1011。
在预处理阶段,还要进行用户级页表区域的管理1012,包括用户级页表初始化1015,用户自管理区域虚拟地址与物理地址建立映射关系1016,物理页面对应的物理空间管理1017,用户级页表项中访问权限设置1018;
在程序运行时,若在内核区域查找页表项,则用户进程处于常规的安全保护状态1022;若在用户级页表区域查找页表项,则用户进程处于进程内的安全保护状态1023。
在进程内的安全保护状态下,判断请求是否访问用户级页表区域1024,若是,则既要判断程序对象是否可访问用户级页表1025,又要判断用户级页表项中写入的物理页号是否属于可映射的物理页面范围1026,若违反了两者其一的限制条件,则开启中断,进入用户自定义中断处理1029;否则,若请求访问用户自管理数据区域,则用户进程要执行用户级页表项权限位违法1027和缺页检查1028,若两者其一发生,则开启中断,进入用户自定义中断处理。
本发明的方法实施例:新增的寄存器类型及其功能。
新增寄存器分为四种,它们的名称和功能如表1所示。其中物理页面限制寄存器组只能内核才能读写,其余寄存器组只能用户安全代码可以读写。
表1本发明新增的寄存器类型及其功能
本发明实施例:新增的寄存器读写指令及其功能。
新增的指令分为二种,它们的名称和功能表如表2所示。
表2本发明新增的指令及其功能
本发明的方法实施例:用户级页表区域虚拟地址到物理地址的转换。
典型的虚拟地址转换成物理地址的过程是:用逻辑页号去检索页表,从页表中得到该页的物理页号,把它装入物理地址寄存器中。同时,页内地址不需要转换,直接送入物理地址寄存器的页内地址字段中。这样,物理地址寄存器中的内容就是由二者拼接成的实际访问内存的地址,从而完成了从逻辑地址(虚拟地址)到物理地址的转换。传统的操作系统中,页表维护由内核完成。指令执行过程中,页表项的查找和地址翻译是由处理器的硬件自动处理的,但是页表项的填写和修改都是由软件完成的。区分用户自管理空间和内核管理空间,用户自管理空间由用户级页表来做虚实地址翻译,提高用户细粒度修改页表的执行效率,用户程序进程自行保证这段空间数据的安全性
本发明的方法实施例:用户级页表区域物理地址到虚拟地址的转换。
在常规的设计中,页表存放在内核区,内核区的虚地址和实地址之间仅相差一个偏移值(offset),由物理地址和偏移值可计算得到虚拟地址。但是用户自管理区域不存在这种对应关系。
页表存放在用户自管理区域时,选择一种数据结构来存储页表物理页号到虚拟页号的对应关系,这种数据结构包括但不限于表(list)或哈希表(hash table)。为减少实现的复杂性,这种数据结构可以当成普通的用户进程的数据,这些数据结构的页表仍由内核进行管理,同时限制内核对它的修改。
本发明的方法实施例:用户自定义中断处理。
用户级要自我管理一段区域的虚实映射及页表配置,这段区域内发生的缺页中断和权限违反的异常都需交由用户进程自己处理,所以,需要增加用户自定义中断设计。具体的实现方法是,区分中断处理函数入口,增加用户专用中断控制寄存器。图2是用户自定义中断处理的过程,包括下列步骤:
步骤201,当处理器执行的指令发生中断的时候,为了精确例外,即发生中断的指令前面的所有指令都正确执行,后面的指令都没有执行,所以一般到写回阶段才会检测中断,执行中断处理,此处中断是整个计算机系统的中断,有很多种,不止缺页中断,例如计算机的溢出中断、键盘鼠标等设备中断、应用程序给出的软件中断(缺页中断属于这一种)等。典型处理器执行指令的过程分为五个阶段,被称为五级流水线,分别是取指、译码、执行、访存、写回。写回(Writeback,WB)阶段把执行阶段的运行结果数据“写回”到某种存储形式;
步骤202,在写回阶段判断中断是否需要用户自定义中断处理,如果是,执行步骤203,否则执行步骤206。其判断标准为,检查产生中断时的虚拟地址va是否属于用户自管理区域,若是,则需要用户自定义中断处理;
步骤203,用户要自己处理一部分中断,处理器要提供一组用户专用寄存器来保存中断指令的PC、中断的原因和访存的地址。其中,PC是程序计数器(program counter),用来存储和指示下一条要执行的指令的地址;
步骤204,计算机系统中断处理程序转到用户自定义中断处理函数的入口,执行用户自定义中断处理函数;
步骤205,结束;
步骤206,执行常规内核中断处理流程,仅以开源处理器核Rocket_chip为例,包括以下内容,把发生中断指令的PC、中断的原因(异常编码)、访存的地址(访存相关的指令)写到控制状态寄存器(CSR,Control and Status Register)对应的sepc、scause、sbadaddr寄存器中,供内核的中断处理程序使用,然后再把程序转到内核的中断处理函数入口,执行中断处理函数。
由此可保证用户自定义管理区域内发生的缺页中断和权限违反的异常都交由用户进程自己处理,不需要用户态和内核态的上下文切换。其中,上下文就是进程执行的环境,具体来说就是各个变量和数据,包括所有的寄存器变量,进程打开的文件、内存信息等。
本发明的方法实施例:物理空间的管理。
传统的设计中,用户进程不需要申请物理页面,这一过程由内核完成。而用户进程自我管理一段区域的虚实映射,所以会产生对空闲物理页面的需要,所需的空闲物理页面,由用户进程向内核申请所得,可以选取一种数据结构来记录内核分配的空闲物理页号。申请空闲物理页面这一过程没有特定的时间节点,可能在虚实映射之前,也可能在虚实映射之后。
在本发明中,用户进程有权配置用户级页表项,从而存在任意映射物理页面的风险,导致把其他用户进程空间的物理页面映射到用户自管理区域,为此需要限制用户级页表映射物理页面的范围。具体的方法是,在写指令执行时,增加对其目的地址的判断,若属于用户自管理区域的页表区范围,则限制该指令写入的数据内容,确保写入用户自管理区域页表的物理页号属于内核分配给用户进程的物理页面范围。
用户进程自我管理一段区域的虚实映射及用户及页表配置,所需的空闲物理页面为用户进程向内核申请所得。用户自管理区域对物理空间的管理方法如图3所示,包括以下各部分内容:
物理空间的管理步骤301,选择一种数据结构,用来记录内核分配的空闲物理页号。这种数据结构包括但不限于PPN表(ppn list)。仅以PPN表为例;
数据结构的查找步骤302,在用户自管理区域初始化或发生缺页中断时,根据申请的物理空间大小从对应数据结构中取得相应个数的物理页面,然后依次逐一映射到各物理页面对应的虚拟页面。对PPN表即为执行查找操作;
数据结构的插入步骤303,在页面回收时,把物理页面放回记录空闲物理页号的数据结构。对PPN表即为执行若干次插入操作。需要注意的是,如果没有空闲物理页面,发生缺页中断时,就无法进行物理页面到虚拟页面的映射,用户进程不能正常执行,因此需要有页面回收操作。用户进程会定期检查,当系统内空闲的物理页面数目少于特定的阈值时,就会发起页面回收的操作。这个阈值的大小由用户进程根据需要确定;
数据结构的删除步骤304,在用户进程退出时,把数据结构中的物理页面还给内核。对PPN表即为执行删除操作。
由此可有效防止用户进程利用对用户自管理区域页表项的配置权限,任意映射物理页面,从而访问到其他进程的物理页面。
本发明的方法实施例:限制用户进程任意映射物理页面。
用户进程有权配置用户级页表项,从而存在任意映射物理页面的风险。限制用户级页表任意映射物理页面的方法是,在写指令执行时,增加对其目的地址的判断,若属于用户自管理区域的页表区范围,则限制该指令写入的数据内容,确保写入用户自管理区域页表的物理页号属于内核分配给用户进程的物理页面范围。因为写指令执行处于处理器流水线的关键路径,因此需要硬件高效的物理页面范围查询方法。
设置物理页面范围的方法有很多种。最直接的方案是硬件设置多组物理地址界限(physical address bound,pa_bound)寄存器,来限定用户进程可以映射的物理页面范围。这种方法实现较为简单,但是对内核分配的物理空间的连续性有一定的要求,而且pa_bound的数目较多时会影响查询的速度。
其他可行的方案,包括但不限于利用位映射(Bitmap)记录用户进程可访问物理页面的范围,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
利用Bitmap记录物理页面范围的方法是,把整个物理空间以自定义的区域大小(ZONE_SIZE,为物理页面大小的整数倍)分成若干区域,每一区域对应一个bit,为1的时候表示用户进程可以映射到这个区域。
当ZONE_SIZE较大时(MB级),Bitmap占用的空间比较小,可以整个放在片上寄存器中,查询较快,但是这样分配物理空间粒度较大,同样可能造成空间的浪费。当ZONE_SIZE较小时(KB级),内核细粒度的给用户内存分配物理空间,能够较好利用物理空间,但相对的,Bitmap的占用空间比较大,不可避免的出现需要替换片上寄存器中Bitmap的情况。
Bitmap的调度流程设计如图4所示。其中,PPN代表物理页号,x代表任意值,即PPNx表示任意一个物理页号。将物理页号分为两部分,PPNx[Max-1:Index]和PPNx[Index-1:0],前者为查找内存空间Bitmap的索引(Index),后者为该索引对应的内存空间地址存储的Bitmap值,图4包括以下内容:
首先将整个流程分为预处理阶段401和程序运行时402两部分。其中预处理阶段按照执行的先后顺序,包括三个步骤,分别为计算参数4011,填写内存空间全部Bitmap的内容4012,填写两个片上寄存器4013,这两个寄存器分别用于保存PPNx[Max-1:Index]和PPNx[Index-1:0]。
程序运行时具体流程如下:
步骤4021,判断PPNx[Max-1:Index]与片上寄存器存储的位映射的索引是否匹配,若匹配,则说明位映射已经存入片上寄存器,执行步骤4022,否则执行步骤4025;
步骤4022,根据PPNx[Index-1:0]的值,将片上寄存器存储的位映射对应该值的位置存储的bit(位)取出;
步骤4023,判断片上寄存器存储的位映射对应位是否为1,若是,则执行步骤4024,否则执行步骤4026。其中,1表示可以访问对应的物理页面,0表示禁止访问对应的物理页面;
步骤4024,用户进程访问物理页面,结束当前判断;
步骤4025,从内存地址Bitmap_base_addr+PPNx[Max-1:Index]*WIDTH/8,取出位映射数据,写入片上寄存器。其中,Bitmap_base_addr表示存储Bitmap的地址空间的基地址,WIDTH表示一个Bitmap的位宽,WIDTH/8表示存储一个Bitmap所需的字节长度;
步骤4026,禁止用户进程访问该物理页面,结束当前判断。
本发明的方法实施例:用户自管理空间页表初始化。
对于用户自管理区域来说,若是所对应的页面还没有进行虚实映射,就没有对应的页表根地址,因此后续步骤无法进行。为解决这一问题,用户进程在地址转换操作之前,先初始化一个自映射的多级页表,称为页表初始化过程。
为了减少页表占用的内存空间的大小,现代操作系统大都采用分级的页表结构。仅以三级页表为例,其完成虚拟地址到物理地址的转化过程如图5所示。在发生TLB miss的时候,PTW(Page Table Walker)会根据页表根地址(sptbr,systempage table baseaddress)按照页表翻译的过程一步一步取出虚地址对应的页表,若是对应的页表项没有映射物理地址,就会触发缺页中断,由系统内核进行虚实映射操作,上述过程称为PTW(PageTable Walker)。其中,sptbr是物理地址,页表包括三种类型,页全局目录(Page GlobalDirectory,PGD),页中间目录(Page Middle Directory,PMD),页表项(Page Table Entry,PTE)。
地址翻译的第一步是根据sptbr里面保存的ppn,即PGD的物理页面地址,来取得PGD中对应的表项。现代操作系统中,用户进程的多级页表全都放在内核空间,内核空间的页表在系统初始化时都已经建立完善,可以方便地修改页表内容或者权限位。
但是对于用户自管理区域来说,所对应的页面PGD还没有进行虚实映射,就没有它对应的物理页号,整个地址翻译的过程就不能进行。为解决这一问题,用户进程在负责自管理区域虚实地址映射操作之前,先初始化一个自映射的三级页表,再分别在PGD、PMD、PTE的页面上建立对应的页表项指向自身,称为页表初始化过程,如图6所示。
为和典型情况相区别,将用户级页表称为UPGD、UPMD、UPTE,其中U表示user。页表初始化过程,利用PTW的传统设计,分别完成UPGD、UPMD、UPTE的虚拟地址(VA)到物理地址(PA)转换的过程,得到UPGD_PA、UPMD_PA、UPTE_PA,增加步骤601、602、603,分别使UPGD_PA、UPMD_PA、UPTE_PA,指向各自页的首地址,完成初始化过程。为简化图示,设定UPGD、UPMD、UPTE存放在用户空间连续的三个页面(VPN3,VPN3+1,VPN3+2),实际实现中并无此限制。uptbr(userpage table base address)对应于sptbr,指代用户空间寄存器存放的用户级页表基址。
本发明的方法实施例:用户自管理空间缺页嵌套处理流程。
本发明用户级页表位于用户空间,在用户进程发生缺页中断时,用户的自定义中断处理函数对页表进行读写操作,而用户空间的用户级页表可能还没有建立,导致再次发生中断,形成缺页嵌套。以三级页表为例,缺页嵌套主要分为3种情况:PGD表项缺失,PMD表项缺失,PTE表项缺失。
当用户自管理区域的空间大小较小时,每级页表只需要占用一个页面即可管理全部自管理区域,则只可能发生PTE表项缺失的情况。此时用户自管理区域的空间大小不能超过PAGE_SIZE*(PAGE_SIZE/PTE_SIZE)。其计算方法为:因为每级页表仅占用一个页面,每页最多可存放PAGE_SIZE/PTE_SIZE个页表项,即用户级页表最多管理(PAGE_SIZE/PTE_SIZE)个用户自管理区域的页面,乘以页面大小,即为用户自管理区域的空间大小。缺页嵌套处理流程如图7所示。
步骤701,PTE表项缺失;
步骤702,判断是否有空闲物理页框,若是,执行步骤703,否则执行步骤706;
步骤703,分配物理页框;
步骤704,根据发生缺页中断的地址建立映射关系;
步骤705,结束;
步骤706,输出错误提示信息。
当用户自管理区域的空间大小居中时,用户自管理区域所需的页表PTE要占用超过一个页面大小,PGD、PMD表项仅需要占用一个页面大小,此时PTE表项和PMD表项都可能发生缺失。则缺页中断产生时,首先进行PTW判断发生中断的是哪一级页表,PTE表项缺失的处理流程和第一种情况下的处理方法一样,PMD表项缺失的处理流程如图8所示。其中上述用户自管理区域的空间大小居中,是指其大于PAGE_SIZE*(PAGE_SIZE/PTE_SIZE)且不能超过PAGE_SIZE*(PAGE_SIZE/PTE_SIZE)*(PAGE_SIZE/PTE_SIZE)。后者的计算方法为:PMD仅占用一个页面大小,则用户级页表最多管理(PAGE_SIZE/PTE_SIZE)个PTE页表,又每个PTE页表对应用户自管理区域的大小为PAGE_SIZE*(PAGE_SIZE/PTE_SIZE),两者相乘,即为用户自管理区域的空间大小。
步骤801,PMD表项缺失;
步骤802,判断是否有空闲物理页框,若是,执行步骤803,否则执行步骤809;
步骤803,从空闲页框链表分配一个物理页框用来保存PTE;
步骤804,判断是否有空闲虚拟页面,若是,执行步骤805,否则执行步骤809;
步骤805,从空闲虚拟页链表分配一个虚拟页(vpn);
步骤806,将虚拟页和物理页框映射起来;
步骤807,按图7执行PTE表项缺失处理流程;
步骤808,结束;
步骤809,输出错误提示信息。
当用户自管理区域的空间很大时,用户自管理区域所需的页表PMD要占用超过一个页面大小,此时PTE表项,PMD表项,PGD表项都可能发生缺失。缺页中断产生时,同样进行PTW判断发生中断的是哪一级页表,PTE表项缺失和PMD表项缺失的处理流程如上述两种情况,PGD表项缺失的处理流程如图9所示。其中上述用户自管理区域的空间很大,是指其大于PAGE_SIZE*(PAGE_SIZE/PTE_SIZE)*(PAGE_SIZE/PTE_SIZE)。
步骤901,PGD表项缺失;
步骤902,判断是否有空闲物理页框,若是,执行步骤803,否则执行步骤809;
步骤903,从空闲页框链表分配一个物理页框用来保存PMD;
步骤904,判断是否有空闲虚拟页面,若是,执行步骤805,否则执行步骤809;
步骤905,从空闲虚拟页链表分配一个虚拟页(vpn);
步骤906,将虚拟页和物理页框映射起来;
步骤907,按图8执行PMD表项缺失处理流程;
步骤908,结束;
步骤909,输出错误提示信息。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还公开了一种基于用户级页表的进程内数据隔离保护系统,其中包括:
预处理模块,在用户进程访问内存前,通过设置用户自管理区域的界限和设置用户级页表根目录地址,实现用户级页表区域和内核页表区域的划分;该预处理模块还用于用户级页表区域的管理,包括用户级页表初始化、用户自管理区域虚拟地址与物理地址建立映射关系、物理页面对应的物理空间管理和用户级页表项中访问权限设置;
处理模块,在用户进程访问内存时,首先判断请求的虚拟地址是否属于用户自管理区域,若是,则从用户级页表区域查找页表项,用户进程开启进程内的安全保护,否则从内核页表区域查找页表项,用户进程处于常规的安全保护状态;然后判断请求是否访问用户级页表区域,若是,则进一步判断请求对象是否有权访问用户级页表,且用户级页表项中写入的物理页号是否属于该用户级页表映射的物理页面范围,若是则执行访问请求,否则开启中断;若请求访问用户自管理数据区域,则用户进程执行用户级页表项权限位违法和缺页检查,若两者其一发生,则开启中断,否则执行访问请求。
该基于用户级页表的进程内数据隔离保护系统,其中该预处理模块初始化一个自映射的多级页表,并分别在各级页表上建立对应的页表项指向各自页表的首地址,以完成该用户级页表的初始化过程;
该预处理模块管理物理空间的数据结构,包括:
物理空间管理模块,获取预设的数据结构,用以记录内核分配的空闲物理页号;
数据结构查找模块,在该用户自管理区域初始化或发生缺页中断时,根据申请的物理空间大小,从该数据结构中取得多个物理页面,将该多个物理页面依次映射到虚拟页面;
数据结构插入模块,在页面回收时,把物理页面放回到记录空闲物理页号的该数据结构;
数据结构删除模块,在该用户进程退出时,把该数据结构中的物理页面还给内核;
该程序运行时处理模块在发生中断时,执行用户自定义中断处理过程,具体内容包括:
中断探测模块,用于处理器在写回阶段检测中断,执行中断处理;
判断模块,用于判断中断是否需要用户自行处理,若是,调用用户中断模块,否则调用系统中断模块;
用户中断模块,用于供用户进程自行处理该中断,处理器提供一组用户专用寄存器来保存中断指令的程序计数器、中断的原因和访存的地址,程序转到用户中断处理函数的入口,执行用户自定义中断处理函数,之后结束中断处理;
系统中断模块,用于执行常规内核中断处理流程,之后结束中断处理。
Claims (10)
1.一种基于用户级页表的进程内数据隔离保护方法,其特征在于,包括:
将用户进程的虚拟空间划分出一部分由用户进程自行管理,作为用户自管理区域,将该用户自管理区域划分为用户级页表区域和用户自管理数据区域,该用户级页表区域用以存放用户级页表,该用户自管理数据区域用以存放受保护的敏感数据,该敏感数据仅由该用户级页表进行管理,管理内容包括修改虚实地址映射、设定读写执行权限、标记读写的访问状态。
2.如权利要求1所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,划分用户级页表和内核页表,具体的方法是,在该用户进程的访存指令触发硬件查找页表项时,判断该访存指令请求的虚拟地址是否属于用户自管理区域的界限内,若是,则选择用户级页表的根目录地址,在用户级页表区域查找页表项;否则选择内核页表的根目录地址,在内核区域查找页表项;
处理器包括虚地址界限寄存器,用于存储该用户自管理区域的上界和下界;处理器还包括地址寄存器,用于存储该用户级页表的根目录地址。
3.如权利要求1所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,该用户级页表内容由该用户进程自行管理,该用户进程执行过程中自行申请和分配该用户自管理区域的虚拟页面,并为该用户自管理区域的虚拟页面与物理页面建立映射关系,其中该物理页面由该用户进程向内核申请所得。
4.如权利要求1和3所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,通过以下步骤限制该用户级页表映射物理页面的范围:在处理器写指令执行时,若该写指令的目的地址属于用户自管理区域的用户级页表区域,则该写指令的写入数据即为用户级页表区域的页表项,从该页表项中获取该目的地址映射的物理页面的物理页号,并判断该物理页号是否合法,合法是指由内核配置的属于用户级页表映射的物理页面范围,若不合法则产生中断,阻止该写指令将页表项写入用户级页表区域,否则允许该写指令将页表项写入用户级页表区域;
通过以下步骤设定该用户级页表映射的物理页面范围:由内核建立一种数据结构,该数据结构中的数据元素为映射的物理页面地址,或映射的物理页面的物理页号,或该物理页号对应的指示位,对写该用户级页表时物理页号是否合法的判断,由查找该数据元素实现。
5.如权利要求1所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,限定对该用户级页表进行访问的程序对象,以保护该用户级页表。
6.如权利要求1或3所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,该用户自管理区域的虚拟页面与物理页面映射变换之前,先初始化一个自映射的多级页表,并分别在各级页表上建立对应的页表项指向各自页表的首地址,以完成该用户级页表的初始化过程。
7.如权利要求1或3所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,在该用户进程执行访存指令触发该用户自管理区域的虚拟页面与物理页面映射变换过程中,若发生中断,则执行以下步骤:
步骤201,处理器在写回阶段检测中断,执行中断处理;
步骤202,判断中断是否需要用户进程自行处理,若是,执行步骤203,否则执行步骤206;
步骤203,用户进程自行处理该中断,处理器提供一组用户专用寄存器来保存中断指令的程序计数器、中断的原因和访存的地址;
步骤204,程序转到用户中断处理函数的入口,执行用户自定义中断处理函数;
步骤205,结束;
步骤206,执行常规内核中断处理流程,之后执行步骤205。
8.如权利要求1或3所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,该用户进程向内核申请所得的物理页面,其对应的物理空间的管理方法包括:
物理空间的管理步骤,获取预设的数据结构,用以记录内核分配的空闲物理页号;
数据结构的查找步骤,在该用户自管理区域初始化或发生缺页中断时,根据申请的物理空间大小,从该数据结构中取得多个物理页面,将该多个物理页面依次映射到虚拟页面;
数据结构的插入步骤,在页面回收时,把物理页面放回到记录空闲物理页号的该数据结构;
数据结构的删除步骤,在该用户进程退出时,把该数据结构中的物理页面还给内核。
9.一种基于用户级页表的进程内数据隔离保护系统,其特征在于,包括:
预处理模块,在用户进程访问内存前,通过设置用户自管理区域的界限和设置用户级页表根目录地址,实现用户级页表区域和内核页表区域的划分;该预处理模块还用于用户级页表区域的管理,包括用户级页表初始化、用户自管理区域虚拟地址与物理地址建立映射关系、物理页面对应的物理空间管理和用户级页表项中访问权限设置;
处理模块,在用户进程访问内存时,首先判断请求的虚拟地址是否属于用户自管理区域,若是,则从用户级页表区域查找页表项,用户进程开启进程内的安全保护,否则从内核页表区域查找页表项,用户进程处于常规的安全保护状态;然后判断请求是否访问用户级页表区域,若是,则进一步判断请求对象是否有权访问用户级页表,且用户级页表项中写入的物理页号是否属于该用户级页表映射的物理页面范围,若是则执行访问请求,否则开启中断;若请求访问用户自管理数据区域,则用户进程执行用户级页表项权限位违法和缺页检查,若两者其一发生,则开启中断,否则执行访问请求。
10.如权利要求9所述的基于用户级页表的进程内数据隔离保护系统,其特征在于,该预处理模块初始化一个自映射的多级页表,并分别在各级页表上建立对应的页表项指向各自页表的首地址,以完成该用户级页表的初始化过程;
该预处理模块管理物理空间的数据结构,包括:
物理空间管理模块,获取预设的数据结构,用以记录内核分配的空闲物理页号;
数据结构查找模块,在该用户自管理区域初始化或发生缺页中断时,根据申请的物理空间大小,从该数据结构中取得多个物理页面,将该多个物理页面依次映射到虚拟页面;
数据结构插入模块,在页面回收时,把物理页面放回到记录空闲物理页号的该数据结构;
数据结构删除模块,在该用户进程退出时,把该数据结构中的物理页面还给内核;
该程序运行时处理模块在发生中断时,执行用户自定义中断处理过程,具体内容包括:
中断探测模块,用于处理器在写回阶段检测中断,执行中断处理;
判断模块,用于判断中断是否需要用户自行处理,若是,调用用户中断模块,否则调用系统中断模块;
用户中断模块,用于供用户进程自行处理该中断,处理器提供一组用户专用寄存器来保存中断指令的程序计数器、中断的原因和访存的地址,程序转到用户中断处理函数的入口,执行用户自定义中断处理函数,之后结束中断处理;
系统中断模块,用于执行常规内核中断处理流程,之后结束中断处理。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810589291.0A CN109002706B (zh) | 2018-06-08 | 2018-06-08 | 一种基于用户级页表的进程内数据隔离保护方法和系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810589291.0A CN109002706B (zh) | 2018-06-08 | 2018-06-08 | 一种基于用户级页表的进程内数据隔离保护方法和系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN109002706A true CN109002706A (zh) | 2018-12-14 |
| CN109002706B CN109002706B (zh) | 2021-04-06 |
Family
ID=64600619
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201810589291.0A Active CN109002706B (zh) | 2018-06-08 | 2018-06-08 | 一种基于用户级页表的进程内数据隔离保护方法和系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN109002706B (zh) |
Cited By (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110069935A (zh) * | 2019-03-20 | 2019-07-30 | 上海交通大学 | 基于标记内存的内部敏感数据保护方法及系统 |
| CN110147670A (zh) * | 2019-05-21 | 2019-08-20 | 电子科技大学 | 一种工作于内核态的进程间持久性内存保护方法 |
| CN110532767A (zh) * | 2019-08-19 | 2019-12-03 | 上海交通大学 | 面向sgx安全应用的内部隔离方法 |
| CN111143900A (zh) * | 2019-12-24 | 2020-05-12 | 海光信息技术有限公司 | 数据处理、访问控制方法、系统、器件、设备、存储介质 |
| CN111367831A (zh) * | 2020-03-26 | 2020-07-03 | 超验信息科技(长沙)有限公司 | 翻译页表的深度预取方法、部件、微处理器及计算机设备 |
| CN111597124A (zh) * | 2020-04-21 | 2020-08-28 | 重庆大学 | 持久化内存文件系统数据组织方法、系统及存储介质 |
| EP3757804A1 (en) * | 2019-06-28 | 2020-12-30 | INTEL Corporation | Page tables for granular allocation of memory pages |
| CN112182560A (zh) * | 2020-09-17 | 2021-01-05 | 上海交通大学 | 针对Intel SGX内部高效的隔离方法、系统及介质 |
| CN112379927A (zh) * | 2020-11-17 | 2021-02-19 | 深圳市和讯华谷信息技术有限公司 | 代码指令远程执行的方法、装置、计算机设备及存储介质 |
| CN112817780A (zh) * | 2021-02-01 | 2021-05-18 | 上海交通大学 | 一种实现安全与高性能进程间通信的方法和系统 |
| CN113032086A (zh) * | 2019-12-25 | 2021-06-25 | 中兴通讯股份有限公司 | 虚拟机部署及热迁移方法、vmm升级方法、服务器 |
| CN113626843A (zh) * | 2019-04-09 | 2021-11-09 | 杨力祥 | 一种运行时访问控制装置和方法 |
| CN114218125A (zh) * | 2021-04-09 | 2022-03-22 | 无锡江南计算技术研究所 | 一种基于异构处理器的Fork内存支撑方法 |
| CN114579482A (zh) * | 2022-01-17 | 2022-06-03 | 上海交通大学 | 混合物理内存保护方法及系统 |
| CN115061954A (zh) * | 2022-08-18 | 2022-09-16 | 统信软件技术有限公司 | 一种缺页中断处理方法、计算设备及存储介质 |
| CN115421789A (zh) * | 2022-08-30 | 2022-12-02 | 贵州电网有限责任公司贵阳供电局 | 一种基于伏羲处理器的地址转换方法、装置、设备及介质 |
| CN115904502A (zh) * | 2021-08-18 | 2023-04-04 | 华为技术有限公司 | 虚拟机管理方法及相关系统、存储介质 |
| CN115934002A (zh) * | 2023-03-08 | 2023-04-07 | 阿里巴巴(中国)有限公司 | 固态硬盘的访问方法、固态硬盘、存储系统及云服务器 |
| CN116185902A (zh) * | 2023-04-13 | 2023-05-30 | 阿里云计算有限公司 | 一种表切分方法、系统、电子设备及可读介质 |
| WO2023098653A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 内核保护方法、装置及系统 |
| WO2023098536A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 一种运行进程的方法及装置 |
| CN119003186A (zh) * | 2024-10-23 | 2024-11-22 | 浙江大华技术股份有限公司 | 隔离式内核、进程运行方法、装置以及计算机存储介质 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1737761A (zh) * | 2004-08-18 | 2006-02-22 | 中兴通讯股份有限公司 | 对指定进程私有数据区和堆栈区实施保护的方法 |
| CN103699498A (zh) * | 2013-11-25 | 2014-04-02 | 南京大学 | 一种应用程序关键数据保护系统及其保护方法 |
| CN104092743A (zh) * | 2014-06-27 | 2014-10-08 | 清华大学 | 云环境下用户数据的保护方法及系统 |
| CN105335306A (zh) * | 2014-06-30 | 2016-02-17 | 华为技术有限公司 | 一种内存控制方法和装置 |
-
2018
- 2018-06-08 CN CN201810589291.0A patent/CN109002706B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1737761A (zh) * | 2004-08-18 | 2006-02-22 | 中兴通讯股份有限公司 | 对指定进程私有数据区和堆栈区实施保护的方法 |
| CN103699498A (zh) * | 2013-11-25 | 2014-04-02 | 南京大学 | 一种应用程序关键数据保护系统及其保护方法 |
| CN104092743A (zh) * | 2014-06-27 | 2014-10-08 | 清华大学 | 云环境下用户数据的保护方法及系统 |
| CN105335306A (zh) * | 2014-06-30 | 2016-02-17 | 华为技术有限公司 | 一种内存控制方法和装置 |
Cited By (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110069935A (zh) * | 2019-03-20 | 2019-07-30 | 上海交通大学 | 基于标记内存的内部敏感数据保护方法及系统 |
| CN113626843A (zh) * | 2019-04-09 | 2021-11-09 | 杨力祥 | 一种运行时访问控制装置和方法 |
| CN110147670A (zh) * | 2019-05-21 | 2019-08-20 | 电子科技大学 | 一种工作于内核态的进程间持久性内存保护方法 |
| CN110147670B (zh) * | 2019-05-21 | 2020-10-27 | 电子科技大学 | 一种工作于内核态的进程间持久性内存保护方法 |
| EP3757804A1 (en) * | 2019-06-28 | 2020-12-30 | INTEL Corporation | Page tables for granular allocation of memory pages |
| CN110532767A (zh) * | 2019-08-19 | 2019-12-03 | 上海交通大学 | 面向sgx安全应用的内部隔离方法 |
| CN111143900A (zh) * | 2019-12-24 | 2020-05-12 | 海光信息技术有限公司 | 数据处理、访问控制方法、系统、器件、设备、存储介质 |
| CN111143900B (zh) * | 2019-12-24 | 2023-09-26 | 海光信息技术(苏州)有限公司 | 数据处理、访问控制方法、系统、器件、设备、存储介质 |
| CN113032086A (zh) * | 2019-12-25 | 2021-06-25 | 中兴通讯股份有限公司 | 虚拟机部署及热迁移方法、vmm升级方法、服务器 |
| CN111367831A (zh) * | 2020-03-26 | 2020-07-03 | 超验信息科技(长沙)有限公司 | 翻译页表的深度预取方法、部件、微处理器及计算机设备 |
| CN111597124A (zh) * | 2020-04-21 | 2020-08-28 | 重庆大学 | 持久化内存文件系统数据组织方法、系统及存储介质 |
| CN112182560A (zh) * | 2020-09-17 | 2021-01-05 | 上海交通大学 | 针对Intel SGX内部高效的隔离方法、系统及介质 |
| CN112182560B (zh) * | 2020-09-17 | 2022-04-26 | 上海交通大学 | 针对Intel SGX内部高效的隔离方法、系统及介质 |
| CN112379927A (zh) * | 2020-11-17 | 2021-02-19 | 深圳市和讯华谷信息技术有限公司 | 代码指令远程执行的方法、装置、计算机设备及存储介质 |
| CN112379927B (zh) * | 2020-11-17 | 2024-01-23 | 深圳市和讯华谷信息技术有限公司 | 代码指令远程执行的方法、装置、计算机设备及存储介质 |
| CN112817780A (zh) * | 2021-02-01 | 2021-05-18 | 上海交通大学 | 一种实现安全与高性能进程间通信的方法和系统 |
| CN112817780B (zh) * | 2021-02-01 | 2022-03-11 | 上海交通大学 | 一种实现安全与高性能进程间通信的方法和系统 |
| CN114218125A (zh) * | 2021-04-09 | 2022-03-22 | 无锡江南计算技术研究所 | 一种基于异构处理器的Fork内存支撑方法 |
| CN114218125B (zh) * | 2021-04-09 | 2025-05-20 | 无锡江南计算技术研究所 | 一种基于异构处理器的Fork内存支撑方法 |
| CN115904502A (zh) * | 2021-08-18 | 2023-04-04 | 华为技术有限公司 | 虚拟机管理方法及相关系统、存储介质 |
| WO2023098653A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 内核保护方法、装置及系统 |
| WO2023098536A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 一种运行进程的方法及装置 |
| CN114579482A (zh) * | 2022-01-17 | 2022-06-03 | 上海交通大学 | 混合物理内存保护方法及系统 |
| CN114579482B (zh) * | 2022-01-17 | 2024-12-24 | 上海交通大学 | 混合物理内存保护方法及系统 |
| CN115061954A (zh) * | 2022-08-18 | 2022-09-16 | 统信软件技术有限公司 | 一种缺页中断处理方法、计算设备及存储介质 |
| CN115061954B (zh) * | 2022-08-18 | 2022-11-29 | 统信软件技术有限公司 | 一种缺页中断处理方法、计算设备及存储介质 |
| CN115421789A (zh) * | 2022-08-30 | 2022-12-02 | 贵州电网有限责任公司贵阳供电局 | 一种基于伏羲处理器的地址转换方法、装置、设备及介质 |
| CN115934002A (zh) * | 2023-03-08 | 2023-04-07 | 阿里巴巴(中国)有限公司 | 固态硬盘的访问方法、固态硬盘、存储系统及云服务器 |
| CN115934002B (zh) * | 2023-03-08 | 2023-08-04 | 阿里巴巴(中国)有限公司 | 固态硬盘的访问方法、固态硬盘、存储系统及云服务器 |
| CN116185902A (zh) * | 2023-04-13 | 2023-05-30 | 阿里云计算有限公司 | 一种表切分方法、系统、电子设备及可读介质 |
| CN119003186A (zh) * | 2024-10-23 | 2024-11-22 | 浙江大华技术股份有限公司 | 隔离式内核、进程运行方法、装置以及计算机存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN109002706B (zh) | 2021-04-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109002706B (zh) | 一种基于用户级页表的进程内数据隔离保护方法和系统 | |
| JP5581403B2 (ja) | メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納 | |
| US7620766B1 (en) | Transparent sharing of memory pages using content comparison | |
| US8296538B2 (en) | Storing secure mode page table data in secure and non-secure regions of memory | |
| US7069389B2 (en) | Lazy flushing of translation lookaside buffers | |
| TWI796414B (zh) | 用於區域融合的設備、方法、電腦程式及儲存媒體 | |
| US7870336B2 (en) | Operating system protection against side-channel attacks on secrecy | |
| US5845331A (en) | Memory system including guarded pointers | |
| US8677457B2 (en) | Security for codes running in non-trusted domains in a processor core | |
| CN109359487B (zh) | 一种基于硬件隔离的可扩展安全影子存储及标签管理方法 | |
| US20200278801A1 (en) | Code realms | |
| JP2020527777A (ja) | レルム階層における目標レルムの無効化 | |
| WO2020057394A1 (zh) | 监控样本进程的内存访问行为的方法和装置 | |
| JP2009516310A (ja) | メモリページをプログラムに対応付けるページカラーリング | |
| EP3818447B1 (en) | Memory access control | |
| JP7801251B2 (ja) | タグチェック装置及び方法 | |
| TW202439129A (zh) | 標籤保護指令 | |
| CN116635855A (zh) | 基于执行上下文管理可执行代码对数据内存的访问的装置和方法 | |
| US20250284530A1 (en) | Static Trusted Execution Environment for Inter-Architecture Processor Program Compatibility | |
| CN119004489B (zh) | 可信执行环境系统 | |
| US20230342289A1 (en) | Apparatus and method for managing capabilities | |
| Zhou et al. | PointerLock: Protecting Function Pointers with Access Control on Page |
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 |