[发明专利]一种内存页转移方法有效
申请号: | 201710726204.7 | 申请日: | 2017-08-22 |
公开(公告)号: | CN107392011B | 公开(公告)日: | 2019-11-22 |
发明(设计)人: | 吴宇;杜朝晖;应志伟 | 申请(专利权)人: | 海光信息技术有限公司 |
主分类号: | G06F21/53 | 分类号: | G06F21/53;G06F21/74 |
代理公司: | 11309 北京亿腾知识产权代理事务所(普通合伙) | 代理人: | 陈霁<国际申请>=<国际公布>=<进入国 |
地址: | 300143 天津市华苑产业区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 转移 方法 | ||
1.一种内存页转移方法,其特征在于,方法包括:
处理器接收到第一安全容器(enclave)调用第二安全容器函数的请求;
确定所述第一安全容器对应的待转移的安全内存(EPC)页,以及第一线性地址,即待转移的安全内存页在第一安全容器中的线性地址;
获取第二线性地址,即待转移的安全内存页在第二安全容器中的线性地址;
以所述第一安全容器为当前安全容器,所述第二安全容器为目标安全容器,在所述第一安全容器中调用跨安全容器跳转(EAJMP)指令来传递指令参数;
所述跨安全容器跳转(EAJMP)指令将其携带的参数存放在待转移的安全内存页上,并找到所述安全内存页对应的安全内存控制表(EPCM),将其中的安全内存页归属字段(ENCLAVESECS)内容由当前安全容器身份标签修改为目标安全容器身份标签,并将合法线性地址字段(ENCLAVEADDRESS)内容由第一线性地址修改为第二线性地址;
所述跨安全容器跳转(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);
所述第二安全容器读取转移过来的安全内存(EPC)页面上的安全容器跳转(EAJMP)指令的指令参数;
通过目标安全容器的函数编号(Target_Enclave_Func)找到对应函数,并根据目标安全容器的线程控制信息(Target_Enclave_TCS)运行该函数;
将函数的处理结果存放在待转移的安全内存(EPC)页面上。
2.根据权利要求1所述的方法,其特征在于,方法还包括:
所述第一安全容器与所述第二安全容器进行相互认证,如果认证成功,则相互交换各自安全容器身份标签(enclave ID)、所述第一线性地址和所述第二线性地址,以及共享随机数。
3.根据权利要求1所述的方法,其特征在于,所述跨安全容器跳转(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)存放在待转移的安全内存页传递。
4.根据权利要求3所述的方法,其特征在于,所述待转移的安全内存页还存放调用函数所需要的参数信息和函数执行结果。
5.根据权利要求4所述的方法,其特征在于,所述目标安全容器的线程控制信息(Target_Enclave_TCS)为空时,则产生全新的线程控制信息(TCS)。
6.根据权利要求1所述的方法,其特征在于,还包括:
当所述第二安全容器执行完函数后,以所述第二安全容器为当前安全容器,以所述第一安全容器为目标安全容器,在所述第二安全容器中再次调用跨安全容器跳转(EAJMP)指令,并更新所述跨安全容器跳转指令内的字段;
将安全内存页归属字段(ENCLAVESECS)的内容由当前安全容器身份标签修改为目标安全容器身份标签,将合法线性地址字段(ENCLAVEADDRESS)的内容由第二线性地址修改为第一线性地址;
所述第一安全容器从所述安全内存页面读取函数执行结果;
处理器根据第一安全容器的线程控制信息,重新返回所述第一安全容器中对应的线程继续执行程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于海光信息技术有限公司,未经海光信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710726204.7/1.html,转载请声明来源钻瓜专利网。