学习笔记(二)"/>
Intel SGX Developer Reference 学习笔记(二)
在这之前,一直想学习关于SGX实操性的、应用相关的内容,我浏览了相关资料,总觉得跟不上那些作者的脚步,学到的都是些零零碎碎的知识,收获都不是很大,一边阅读还在一边质疑资料的可读性,所以我决定返朴归真,静下心来好好看一看官网的手册,并作一些笔记方便自己的日后学习。
手册下载地址: Intel® Software Guard Extensions (Intel® SGX) SDK for Linux* OS
Setting up an Intel® Software Guard Extensions Project
这部分使用SGX SDK的特性来创建和管理Intel®SGX应用程序项目。
Creating Intel® Software Guard Extensions Projects
你应该准备以下文件:
- Enclave Definition Language(EDL)file.——描述enclave受信任和不受信任的函数和类型。
- Enclave Configuration File (ECF) ——包含enclave元数据的信息。
- Signing key files ——签名密钥文件,用于对enclave进行签名,以生成包含enclave属性的签名结构。
- Application and enclave source code——应用程序和enclave函数实现的源代码。
- makefile——它执行以下几个步骤:
- Generates edger routines (see Edger8r Tool for details).?
- 构建应用程序和enclave
- 完成enclave的签名(详细信息请参见enclave签名工具)
- Linker script file——链接器脚本文件。您应该使用链接器脚本隐藏所有不必要的符号,并且只导出enclave_entry、g_global_data和g_global_ data_sim。
Enclave Image Generation
key | interpretation1 | interpretation2 |
---|---|---|
tRTS | Trusted Run Time System | 可信运行系统 |
一个 enclave映像? 是在Linux系统下静态链接的共享对象,没有任何外部依赖关系,你必须遵循下面的指导方针生成一个合适的enclave映像:
- 将tRTS与 --whole-archive 选项连接起来,这样可以使整个可信运行库的内容包含在enclave中;
- 对于其他库, 你只需要提取所需的符号。? 举个例子,如果enclave需要可信标准C和seal库的例程,你需要提取所需的符号。
HW mode 【Hardware硬件模式】:
--start-group –lsgx_tstdc –lsgx_tservice -lsgx_tcrypto --end-group
Simulation mode【模拟模式】:
--start-group –lsgx_tstdc –lsgx_tservice_sim -lsgx_tcrypto --end-group
下面介绍了以下情况下使用的命令行:(命令行详见文档)
- 使用链接器脚本隐藏所有不必要的符号;
- 将一些目标文件要链接到目标enclave;
- 通过传递以下选项的链接器,把只读不可执行的部分放在自己的段;
Using Intel® Software Guard Extensions Eclipse* Plug-in (使用SGX Eclipse*插件)
The Intel® Software Guard Extensions Eclipse插件帮助enclave开发者维护Eclipse C/C++项目中的enclave和不受信任的代码。
更多推荐
Intel SGX Developer Reference 学习笔记(二)
发布评论