SGX技术是Intel于2013年在ISCA会议中提出的,直到2015年10月支持SGX技术的CPU才问世。目前SGX技术两种应用,分别有微软Haven和Visual Studio。微软Haven系统是一个实现保护云端信息的系统。因此我们觉得Intel推出的SGX技术对云计算安全保护有重要意义。
SGX的保护是针对应用程序的地址空间的。SGX利用处理器提供的指令,在内存中划分处一部分区域(EPC)并将应用程序地址空间中的Enclave映射到这部分内存区域。这部分内存区域是加密的,通过CPU中的内存控制单元进行加密和地址转化。
当处理器访问Enclave中数据时,CPU自动切换到一个新的CPU模式,叫做enclave模式。enclave模式会强制对每一个内存访问进行额外的硬件检查。由于数据是放在EPC中,为了防止已知的内存攻击,EPC中的内存内容会被内存加密引擎(MEE)加密的。EPC中的内存内容只有当进入CPU package时,才会解密;返回EPC内存中会被加密。
Enclave Page Cache (EPC)是指一个保留加密的内存区域。Enclave中的数据代码必需在其中执行。为了在EPC中执行一个二进制程序,SGX指令允许将普通的页复制到EPC页中。
其中Linux SGX实现系统包括SGX平台软件、SGX驱动程序和SGX软件开发工具包(SDK)。我们已经能够在GitHub上找到英特尔的SGX页面。下面我们来看看window下面的SGX。
SDK应用开发环境
英特尔软件防护扩展SGX SDK 是API、函数库、文档、样本源代码和工具的集合,允许软件开发人员用 C/C++ 创建和调试启用英特尔软件防护扩展的应用程序。SGX SDK同时提供Microsoft Visual Studio插件,可用标准开发工具开发enclave。
第一步: 确认安装运行SGX SDK的所需的软硬件需求
硬件最小需求:
第6代英特尔® 酷睿™ 处理器平台,同时需要支持SGX相关配置的BIOS版本
操作系统:
Microsoft Windows* 7, 64-bit
Microsoft Windows* 8.1, 64-bit
Microsoft Windows® 10, 64-bit
Microsoft Windows® 10 Threshold 2, 64-bit
第二步: 安装SGX SDK 集成开发环境所需的Microsoft Visual Studio开发工具
目前最新SGX SDK版本为1.7,支持Microsoft Visual Studio* 2012 专业版----2015 专业版
第三步: 下载安装SGX SDK
SGX SDK下载页面一共包含2个部分(图 1), Intel SGX SDK for Windows是SGX SDK的主体;Intel SGX Platform Software for Windows(PSW)包含的是SGX相关的硬件驱动部分。
图 1 英特尔 SGX SDK下载页面
注意1:如果电脑硬件不支持SGX功能, 则不需要安装PSW软件。开发工作只能通过SGX SDK里面内置的模拟器来运行调试enclave程序。
注意2:SGX有些相关的安全功能需要Intel Management Engine(ME)提供(单向计数器monotonic counter和实时时钟RTC)以及互联网连接,所以建议安装SGX SDK及PSW时保持互联网连接,并且安装完全版的Intel ME软件包(版本大于11.5.0.1000)(图 2)。
图 2完整版的ME安装程序名为SetupME.exe
SGX SDK安装包为一个自解压包,自解压缩到指定目录后,可以看到所有SDK相关文档在目录里(图 3)。进入SDK目录,双击Intel(R)_SGX_Windows_x64_SDK_1.6.101.33581.exe进行安装,安装过程里安装包会自动安装并配置Microsoft Visual Studio插件。
图 3相关开发参考文档在SDK解压缩目录的根目录下
到这里,在windows上的SGX应用的开发环境搭建就完成了,现在用Visual Studio的FileàNewà Project...新建一个项目的时候,就会看到建立Intel SGX Enclave Project项目的选项(图 4)了。
图 4Visual Studio新建出现Intel SGX Enclave Project的选项
至此, 我们已经完成了Windows下SGX应用开发环境的搭建。
责任编辑:韩希宇
免责声明:
中国电子银行网发布的专栏、投稿以及征文相关文章,其文字、图片、视频均来源于作者投稿或转载自相关作品方;如涉及未经许可使用作品的问题,请您优先联系我们(联系邮箱:cebnet@cfca.com.cn,电话:400-880-9888),我们会第一时间核实,谢谢配合。