[发明专利]一种SGX运行的保护方法在审
| 申请号: | 201810781232.3 | 申请日: | 2018-07-17 |
| 公开(公告)号: | CN109063471A | 公开(公告)日: | 2018-12-21 |
| 发明(设计)人: | 王国军;舒扬;周雷;彭滔 | 申请(专利权)人: | 广州大学 |
| 主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F9/448 |
| 代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 颜希文;宋静娜 |
| 地址: | 510000 广东省广*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 完整性度量模块 敏感数据 计算机科学 关键代码 内核模块 应用程序 嵌入 进程 检测 | ||
本发明属于计算机科学与技术领域,特别是涉及一种SGX运行的保护方法。通过在SGX的Enclave中嵌入完整性度量模块,从而实现应用程序的敏感数据和关键代码受到Enclave保护的同时还能检测Non‑Enclave中代码的完整性,不需要另外的硬件参与,同时也能减少TCB的大小;不需要增加HOOK内核模块;不仅能保护进程敏感数据,同时也保护了进程完整性度量模块,成本也更低。
技术领域
本发明属于计算机科学与技术领域,特别是涉及一种SGX运行的保护方法。
背景技术
Intel Software Guard Extensions(SGX)是Intel于2013年推出一套基于CPU架构的软件防护扩展。此技术新增了一组新的指令集以及定义了一种新的内存访问机制,目的是使得用户可以在用户层构建由底层硬件提供安全防护的可信执行环境(TEE,TrustedExecution Environment)。SGX能够将应用程序中定义的安全操作封装在一个自行创建的Enclave容器中,此Enclave即这个应用程序的TEE。Enclave是在应用程序地址空间中划分出的一块受保护的内存区域,此内存区域只有Enclave内部的代码才能访问,而Enclave之外的特权软件(如操作系统,VMM,BIOS)以及非特权软件都不能够访问。如此便为Enclave中的代码和数据提供了机密性和完整性保护,免受恶意攻击。
然而,SGX只为Enclave中的代码和数据提供了保护,而对创建Enclave的进程却没有提供任何的保护。虽然,SGX被提出的最大的意义就在于在用户层可以为用户进程创建一个或多个安全的执行环境,以对用户进程中敏感的代码和数据提供安全性保护。但是其实,这里存在一个安全隐患。即在进程创建之后,恶意程序篡改了进程相关的代码、数据或者相关联的动态链接库,使得Enclave中的安全区域不能得到正确的运行结果。如果Enclave中得不到正确可信的运算结果,那么其受到的安全保护也是没有意义。
发明内容
本发明提供了一种SGX运行的保护方法,使SGX运行更加安全。
具体技术方案是,所述SGX运行保护方法在SGX的Enclave中嵌入完整性度量模块。
所述的SGX运行保护方法,包括以下步骤,
a在Enclave的定义中增加一个保存进程代码段SHA1值的数据成员Process_SHA1,数据成员Process_SHA1将在Enclave的初始化阶段被初始化;
b在Non-Enclave中调用进入Enclave的Ecalls调用;
c在Enclave中的Trusted Functions被调用之前执行完整性度量模块;
d执行Trusted Functions的调用;
e将执行流放回至Non-Enclave,并继续应用程序的执行。
所述完整性度量模块包括以下步骤,
(1)对Enclave进程中的代码段数据进行SHA1值的计算,得到计算结果Process_Runtime_SHA1;
(2)将Process_Runtime_SHA1与Process_SHA1进行对比;
(3)两个值一致,则判断应用程序的完整性没有被破坏,继续执行;两个值不一致,则表示Non-Enclave区域中的数据或代码被篡改,中断执行。
所述初始化的方式为调用置于Enclave的完整性度量模块进行SHA1值的第一次计算并保存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州大学,未经广州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810781232.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种BMC固件的安全验证方法及系统
- 下一篇:网络数据库安全防毒系统





