SGX应用开发入门:SGX 及 SDK 应用开发环境简介及搭建 — 第1部分

 

SGX及SDK应用开发环境简介

 

英特尔® 软件防护扩展SGX (Software Guard Extensions)是一项面向应用程序开发人员的英特尔技术。英特尔从第 6代英特尔® 酷睿™ 处理器平台开始引入了英特尔软件防护扩展新指令集,使用特殊指令和软件可将应用程序代码放入一个围圈(enclave)中执行。Enclave可以提供一个隔离的可信执行环境,可以在BIOS、虚拟机监控器、主操作系统和驱动程序均被恶意代码攻陷的情况下,仍对enclave内的代码和内存数据提供保护,防止恶意软件影响enclave内的代码和数据,从而保障用户的关键代码和数据的机密性和完整性(图 1)。

图 1 英特尔 SGX可以保护应用开发者的敏感数据安全

有关英特尔 SGX技术的具体介绍,可以访问英特尔官网入口(https://software.intel.com/sgx)获取。

 

搭建SGX应用开发环境

英特尔软件防护扩展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.6,支持

  • Microsoft Visual Studio* 2012 专业版
  • Microsoft Visual Studio* 2013 专业版

第三步: 下载安装SGX SDK

SGX SDK安装包可以从https://software.intel.com/sgx-sdk免费下载。SGX SDK下载页面一共包含2个部分(图 2), Intel SGX SDK for Windows是SGX SDK的主体;Intel SGX Platform Software for Windows(PSW)包含的是SGX相关的硬件驱动部分。

图 2 英特尔 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)(图 3)。

图 3 完整版的ME安装程序名为SetupME.exe

SGX SDK安装包为一个自解压包,自解压缩到指定目录后,可以看到所有SDK相关文档在目录里(图 4)。进入SDK目录,双击Intel(R)_SGX_Windows_x64_SDK_1.6.101.33581.exe进行安装,安装过程里安装包会自动安装并配置Microsoft Visual Studio插件。

图 4相关开发参考文档在SDK解压缩目录的根目录下

到这里,在windows上的SGX应用的开发环境搭建就完成了,现在用Visual Studio的FileNew Project...新建一个项目的时候,就会看到建立Intel SGX Enclave Project项目的选项(图 5)了。

图 5 Visual Studio新建项目里出现Intel SGX Enclave Project的选项

至此, 我们已经完成了Windows下SGX应用开发环境的搭建。在下一个部分,我们将从Hello World程序开始学习 SGX enclave程序的开发。如果想深入的学习SGX应用开发,请参考SGX SDK附带的开发者参考指南以及从英特尔(R) SGX SDK官网(https://software.intel.com/sgx)获取最新的资料。

有关编译器优化的更完整信息,请参阅优化通知