Intel芯片架构中TEE的实现技术之SGX开发环境简介及搭建
来源:互联网 发布:灯具品牌 知乎 编辑:程序博客网 时间:2024/06/05 05:09
前述内容请参照:
Intel芯片架构中TEE的实现技术之SGX初探(二)
Intel芯片架构中TEE的实现技术之SGX初探
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页中。
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安装包可以从https://software.intel.com/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应用开发环境的搭建。在下一个部分,我们将从Hello World程序开始学习 SGX enclave程序的开发。
欢迎关注原创公众号!
- Intel芯片架构中TEE的实现技术之SGX开发环境简介及搭建
- Intel芯片架构中TEE的实现技术之SGX初探
- Intel SGX 技术初探
- Intel SGX技术学习了解
- Android简介及开发环境的搭建
- sgx 中intel ipp 加密库的使用
- Intel SGX
- Intel SGX
- Intel SGX
- Intel系列芯片简介
- 《JavaEE框架技术进阶式教程》之JavaEE运行及开发环境的搭建
- struts简介及struts2开发环境的搭建
- 第1章 JAVA 简介及开发环境的搭建
- ARM芯片学习内容规划及ARM开发环境的搭建
- Android简介及开发环境搭建
- 工作流--JBPM简介及开发环境搭建
- 00Python简介及开发环境搭建
- Ubuntu 16.04下Intel SGX应用程序程序开发——获得OCALL调用的返回值
- kuberntes 使用harbor最为镜像仓库配置
- 采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集
- STL 中map用法详解
- CentOS设置系统时间与网络时间同步
- java8 集合流式操作
- Intel芯片架构中TEE的实现技术之SGX开发环境简介及搭建
- Mac下转发80端口数据到8080端口
- python学习手册4 第四章习题抄写
- 3. Longest Substring Without Repeating Characters
- 使用python进行数据的采集
- [VS2013]如何闪开安装VS2013必须要有安装IE10的限制
- 【AtCoder CODE FESTIVAL 2017 qual C】D
- Python函数
- databinding源码分析一