[发明专利]面向SGX安全应用的内部隔离方法在审
申请号: | 201910765428.8 | 申请日: | 2019-08-19 |
公开(公告)号: | CN110532767A | 公开(公告)日: | 2019-12-03 |
发明(设计)人: | 古金宇;夏虞斌;陈海波;臧斌宇 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F21/54 | 分类号: | G06F21/54;G06F21/57 |
代理公司: | 31236 上海汉声知识产权代理有限公司 | 代理人: | 庄文莉<国际申请>=<国际公布>=<进入 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 安全应用 寄存器 操作系统 地址空间区域 可信计算基 云计算服务 安全需求 隔离系统 内部程序 内存区域 系统库 减小 可信 隔离 应用 访问 | ||
1.一种面向SGX安全应用的内部隔离方法,其特征在于,利用面向SGX安全应用的内部隔离系统;所述面向SGX安全应用的内部隔离系统能够实现设定的系统库,包括一个或多个enclave;
所述enclave包括一个或多个线程;所述enclave中的每个线程均包括PKRU寄存器,且所述enclave中每个线程的PKRU寄存器值互不相同,从而所述enclave中的每个线程都能够都有私有的地址空间区域,只能由本线程访问;
将运行enclave的操作系统记为不可信的操作系统;
所述面向SGX安全应用的内部隔离方法包括安全隔离步骤;
安全隔离步骤:通过MPK技术在enclave中实现线程间安全隔离机制,即在enclave中利用MPK技术将enclave的内存划分为不同的内存页组,并通过设置PKRU寄存器使得enclave中不同线程对相关内存页组的访问权限不同,从而实现线程间安全隔离;
所述面向SGX安全应用的内部隔离方法还包括RTM保护步骤;
RTM保护步骤:enclave中的应用程序利用RTM保证执行中页表映射不会被包括不可信操作系统在内的潜在攻击者修改;
其中,RTM技术通过Xbegin和Xend指令声明一个事务的开始与结束,Xbegin和Xend之间,事务读取或修改的内容,如果被其他进程修改,则指令声明一个事务的行为能够被硬件捕获到,该事务会被终止;否则,则继续执行。
2.根据权利要求1所述的面向SGX安全应用的内部隔离方法,其特征在于,所述面向SGX安全应用的内部隔离方法还包括页表项确认步骤;
页表项确认步骤:等待不可信的操作系统为enclave程序设置页表项,并将相应的页表项内容展示给enclave程序,enclave程序确认相应的页表项设置正确。
3.根据权利要求2所述的面向SGX安全应用的内部隔离方法,其特征在于,所述页表项确认步骤包括access位验证步骤和/或dirty位验证步骤;
access位验证步骤:在页表项中设置access位表示进程执行过程中是否访问过该页表项所表示的内存页,access位初始值为0,若执行过程中访问内存页中的数据,则access位会被硬件自动设置成1,否则,则access位保持初始值;
dirty位验证步骤:在页表项中设置dirty位表示进程执行过程中是否对该页表项所表示的内存页有修改操作,dirty位初始值为0,若执行过程中修改了内存页的数据,则dirty位会被硬件自动设置成1,否则,则dirty位保持初始值。
4.根据权利要求1所述的面向SGX安全应用的内部隔离方法,其特征在于,所述面向SGX安全应用的内部隔离方法还包括SSA结构体判断步骤;
SSA结构体判断步骤:在检查过程中通过读取SSA结构体判断检查过程中是否发生中断从而得知不可信操作系统在此检查中是否介入;
所述SSA结构体判断步骤的执行次数大于一次。
5.根据权利要求1所述的面向SGX安全应用的内部隔离方法,其特征在于,所述面向SGX安全应用的内部隔离方法还包括二进制检查步骤;
二进制检查步骤:利用程序运行前二进制检查的方法保证enclave程序以设定的路径运行。
6.根据权利要求5所述的面向SGX安全应用的内部隔离方法,其特征在于,所述二进制检查步骤包括WRPKRU检查子步骤;
WRPKRU检查子步骤:利用程序运行前二进制检查的方法保证除了初始化设置线程的PKRU寄存器的值处出现WRPKRU的代码以外,其他部分不能出现WRPKRU指令以及其相应的指令编码。
7.根据权利要求5所述的面向SGX安全应用的内部隔离方法,其特征在于,所述二进制检查步骤包括ROP检查子步骤和/或RTM绕过检查子步骤;
ROP检查子步骤:利用程序运行前二进制检查的方法保证Xend与Xbegin之间不存在程序控制流改变指令;
RTM绕过检查子步骤:用程序运行前二进制检查的方法保证Xbegin和Xend之间的二进制代码不能拼凑出Xbegin和Xend两条指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910765428.8/1.html,转载请声明来源钻瓜专利网。