The invention relates to a memory page transfer method, method comprising: a processor receives the first call to enclave second security container security container function request; the first security container corresponding transfer security memory EPC page, and the first linear address, the linear address in the first safe container is to be transferred to the Security page of memory access; second linear address, linear address in the second security in the container to be transferred to the first page of memory safety; safety container for the current security container, second safe container for the target of safety in the first container security container calls the EAJMP command to jump across the security container transfer instruction table EPCM memory control parameters; find safe memory pages corresponding, the security field ENCLAVESECS content pages belonging by the current security container ID tag is modified as an object The full container identity tag and modifies the legal linear address field ENCLAVEADDRESS content from the current linear address to the target linear address.
【技术实现步骤摘要】
一种内存页转移方法
本专利技术涉及内存页转移方法,尤其是涉及一种在多个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协作的高级应用变得复杂和低效。
技术实现思路
本专利技术主要针对安全容器因为为相互隔离而产生的问题,本专利技术提出一种动态修改物理页面拥有者权限的方法,从而可以实现:1)两个enclave之间可以快速相互调用函数2)两个enclave可以快速进行数据交换和通讯enclave之间由于相互隔离导致的上述 ...
【技术保护点】
一种内存页转移方法,其特征在于,方法包括:处理器接收到第一安全容器(enclave)调用第二安全容器函数的请求;确定所述第一安全容器对应的待转移的安全内存(EPC)页,以及第一线性地址,即待转移的安全内存页在第一安全容器中的线性地址;获取第二线性地址,即待转移的安全内存页在第二安全容器中的线性地址;以所述第一安全容器为当前安全容器,所述第二安全容器为目标安全容器,在所述第一安全容器中调用跨安全容器跳转(EAJMP)指令来传递指令参数;找到所述安全内存页对应的安全内存控制表(EPCM),将其中的安全内存页归属字段(ENCLAVESECS)内容由当前安全容器身份标签修改为目标安全容器身份标签,并将合法线性地址字段(ENCLAVEADDRESS)内容由当前线性地址修改为目标线性地址。
【技术特征摘要】
1.一种内存页转移方法,其特征在于,方法包括:处理器接收到第一安全容器(enclave)调用第二安全容器函数的请求;确定所述第一安全容器对应的待转移的安全内存(EPC)页,以及第一线性地址,即待转移的安全内存页在第一安全容器中的线性地址;获取第二线性地址,即待转移的安全内存页在第二安全容器中的线性地址;以所述第一安全容器为当前安全容器,所述第二安全容器为目标安全容器,在所述第一安全容器中调用跨安全容器跳转(EAJMP)指令来传递指令参数;找到所述安全内存页对应的安全内存控制表(EPCM),将其中的安全内存页归属字段(ENCLAVESECS)内容由当前安全容器身份标签修改为目标安全容器身份标签,并将合法线性地址字段(ENCLAVEADDRESS)内容由当前线性地址修改为目标线性地址。2.根据权利要求1所述的方法,其特征在于,方法还包括:所述第一安全容器与所述第二安全容器进行相互认证,如果认证成功,则相互交换各自安全容器身份标签(enclaveID)、所述第一线性地址和所述第二线性地址,以及共享随机数。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...
【专利技术属性】
技术研发人员:吴宇,杜朝晖,应志伟,
申请(专利权)人:致象尔微电子科技上海有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。