内存页转移方法和函数调用方法技术

技术编号:24456972 阅读:17 留言:0更新日期:2020-06-10 15:50
本公开提供了一种内存页转移方法,包括:确定第一安全容器对应的待转移的安全内存页和所述安全内存页在第一安全容器的第一线性地址;获取所述安全内存页在第二安全容器中的第二线性地址;以及将所述安全内存页的安全内存控制表中的安全内存页归属字段内容从第一安全容器的身份标签修改为第二安全容器的身份标签,以及将合法线性地址字段内容从第一线性地址修改为第二线性地址。本公开了还提供了一种函数调用方法。

Memory page transfer method and function call method

【技术实现步骤摘要】
内存页转移方法和函数调用方法本申请是申请日为2017年8月22日,申请号为201710726204.7、专利技术名称为“一种内存页转移方法”的专利技术专利申请的分案申请。
本专利技术涉及一种内存页转移方法和函数调用方法,尤其是涉及一种在多个enclave之间进行内存页相互转移和函数调用的方法。
技术介绍
Intel的SGX(SoftwareGuardExtensions)技术,是Intel公司为建立一个安全可靠的程序运行环境而提供的一套软硬件解决方案(包括新产生的17条相关指令,和对应的硬件设施)。与普通程序不同,安全容器(enclave)中的程序是运行在隔离的内存中(称为EPC,EnclavePageCache),所有非enclave的程序都将无法访问EPC,这是由硬件控制的。另外每个enclave的EPC物理页面都对应一个控制访问权限的EPCM(EnclavePageCacheMap)结构,只有自身的enclave才能访问自己的EPC物理页面,而别的enclave会因为无法通过EPCM检查而无法访问该页面,从而达到多个enclave之间的隔离。多个enclave之间的访问隔离虽然强化了软件的安全性,但同时也产生一些问题:1)两个enclave之间无法快速实现函数相互调用,这样容易导致同一个函数在EPC内存中存在多个副本,浪费EPC内存空间且不便于维护。2)两个enclave之间不能进行快速的数据交换和通讯,这导致一些需要多个enclave协作的高级应用变得复杂和低效。
技术实现思路
<br>本专利技术主要针对安全容器因为为相互隔离而产生的问题,本专利技术提出一种动态修改物理页面拥有者权限的方法,从而可以实现:1)两个enclave之间可以快速相互调用函数2)两个enclave可以快速进行数据交换和通讯enclave之间由于相互隔离导致的上述不足之处。为实现上述目的,本专利技术提供了一种内存页转移方法,方法包括:处理器接收到第一安全容器enclave调用第二安全容器函数的请求;确定第一安全容器对应的待转移的安全内存EPC页,以及第一线性地址,即待转移的安全内存页在第一安全容器中的线性地址;获取第二线性地址,即待转移的安全内存页在第二安全容器中的线性地址;以第一安全容器为当前安全容器,第二安全容器为目标安全容器,在第一安全容器中调用跨安全容器跳转EAJMP指令来传递指令参数;找到安全内存页对应的安全内存控制表EPCM,将其中的安全内存页归属字段ENCLAVESECS内容由当前安全容器身份标签修改为目标安全容器身份标签,并将合法线性地址字段ENCLAVEADDRESS内容由当前线性地址修改为目标线性地址。优选的,方法还包括:第一安全容器与第二安全容器进行相互认证,如果认证成功,则相互交换各自安全容器身份标签enclaveID、第一线性地址和第二线性地址,以及共享随机数。优选的,跨安全容器跳转EAJMP指令的指令参数包括以下字段:目标安全容器身份标签Target_Enclave_ID、当前安全容器身份标签Current_Enclave_ID、共享随机数Shared_Key、目标安全容器的函数编号Target_Enclave_Func、待转移安全内存页面数量EPC_PAGE_NUM、待转移的安全内存页在当前安全容器中的线性地址Current_Enclave_Page_Vaddr、待转移的安全内存页在目标安全容器中的线性地址Target_Enclage_Page_Vaddr)、当前安全容器的线程控制信息Current_Enclave_TCS和目标安全容器的线程控制信息Target_Enclave_TCS。优选的,跨安全容器跳转EAJMP指令参数分两部分传递;目标安全容器身份标签Target_Enclave_ID存放在约定好的寄存器传递;其余参数存放在待转移的安全内存页传递。优选的,待转移的安全内存页还存放调用函数所需要的参数信息和函数执行结果。优选的,还包括:第二安全容器读取转移过来的安全内存EPC页面上的安全容器跳转EAJMP指令的指令参数;通过目标安全容器的函数编号Target_Enclave_Func)到对应函数,并根据目标安全容器的线程控制信息Target_Enclave_TCS运行该函数;将函数的处理结果存放在待转移的安全内存EPC页面上。优选的,目标安全容器的线程控制信息Target_Enclave_TCS为空时,则产生全新的线程控制信息TCS。优选的,还包括:当第二安全容器执行完函数后,以第二安全容器为当前安全容器,以第一安全容器为目标安全容器,在第二安全容器中再次调用跨安全容器跳转EAJMP指令,并更新跨安全容器跳转指令内的字段;将安全内存页归属字段ENCLAVESECS的内容由当前安全容器身份标签修改为目标安全容器身份标签,将合法线性地址字段ENCLAVEADDRESS的内容由当前线性地址修改为目标线性地址;第一安全容器从安全内存页面读取函数执行结果;处理器根据第一安全容器的线程控制信息,重新返回第一安全容器中对应的线程继续执行程序。本专利技术提供了一种内存页转移方法,包括:确定第一安全容器对应的待转移的安全内存页和所述待转移的安全内存页在第一安全容器的第一线性地址;获取所述待转移的安全内存页在第二安全容器中的第二线性地址;以及将所述待转移的安全内存页的安全内存控制表中的安全内存页归属字段内容从第一安全容器的身份标签修改为第二安全容器的身份标签,以及将合法线性地址字段内容从第一线性地址修改为第二线性地址。优选的,所述方法还可以包括:所述第一安全容器与所述第二安全容器进行相互认证,如果认证成功,则相互交换各自安全容器身份标签、所述第一线性地址和所述第二线性地址,以及共享随机数。优选的,所述方法还可以包括:在所述待转移的安全内存页中存放第一安全容器的身份标签、共享随机数、第二安全容器的函数编号、要转移权限的安全内存页面数量、所述第一线性地址、所述第二线性地址、第一安全容器的线程控制信息以及第二安全容器的线程控制信息中的至少一项。优选的,所述方法还可以包括:在所述待转移的安全内存页中存放函数执行所需要的参数以及函数执行的结果。本专利技术还提供了一种函数调用方法,包括:接收第一安全容器调用第二安全容器的函数的请求;确定第一安全容器对应的安全内存页和所述安全内存页在第一安全容器的第一线性地址;获取所述安全内存页在第二安全容器中的第二线性地址;将所述安全内存页的安全内存控制表中的安全内存页归属字段内容从第一安全容器的身份标签修改为第二安全容器的身份标签,以及将合法线性地址字段内容从第一线性地址修改为第二线性地址;所述第二安全容器根据所述安全内存页中的字段进行函数计算,并将结果存放在所述安全内存页中。优选的,所述方法还可以包括:在所述安全内存页中存放第一安全容器的身份标签、共享随机数、第二安全容器的函数编号、安全内存页面数量、第一线性地址、第二线性地址、第一安全容器的线程控制信息以及第二安全容器的线程控制信息中的至少一项。优选的,所述方法本文档来自技高网...

【技术保护点】
1.一种内存页转移方法,包括:/n确定第一安全容器对应的待转移的安全内存页和所述安全内存页在第一安全容器的第一线性地址;/n获取所述安全内存页在第二安全容器中的第二线性地址;以及/n将所述安全内存页的安全内存控制表中的安全内存页归属字段内容从第一安全容器的身份标签修改为第二安全容器的身份标签,以及将合法线性地址字段内容从第一线性地址修改为第二线性地址。/n

【技术特征摘要】
1.一种内存页转移方法,包括:
确定第一安全容器对应的待转移的安全内存页和所述安全内存页在第一安全容器的第一线性地址;
获取所述安全内存页在第二安全容器中的第二线性地址;以及
将所述安全内存页的安全内存控制表中的安全内存页归属字段内容从第一安全容器的身份标签修改为第二安全容器的身份标签,以及将合法线性地址字段内容从第一线性地址修改为第二线性地址。


2.如权利要求1所述的方法,还包括:所述第一安全容器与所述第二安全容器进行相互认证,如果认证成功,则相互交换各自安全容器身份标签、所述第一线性地址和所述第二线性地址,以及共享随机数。


3.如权利要求1或2所述的方法,还包括:
在所述安全内存页中存放第一安全容器的身份标签、共享随机数、第二安全容器的函数编号、待转移的安全内存页面数量、所述第一线性地址、所述第二线性地址、第一安全容器的线程控制信息以及第二安全容器的线程控制信息中的至少一项。


4.如权利要求3所述的方法,还包括:在所述安全内存页中存放函数执行所需要的参数以及函数执行的结果。


5.一种函数调用方法,包括:
接收第一安全容器调用第二安全容器的函数的请求;
确定第一安全容器对应的安全内存页和所述安全内存页在第一安全容器的第一线性地址;
获取所述安全内存页在第二安全容器中的第二线性地址...

【专利技术属性】
技术研发人员:吴宇杜朝晖应志伟
申请(专利权)人:海光信息技术有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1