千家信息网

可信安全TEE分析4 Intel SGX 设计和编程

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,1、SGX SDKSGX SDK给开发者提供了一个精简版的C标准函数库。因为enclave里面是一个和Windows操作系统隔离的运行环境,这个环境并不能直接访问电脑的显卡和硬盘文件系统,所以SDK提
千家信息网最后更新 2026年11月01日可信安全TEE分析4 Intel SGX 设计和编程

1、SGX SDK
SGX SDK给开发者提供了一个精简版的C标准函数库。因为enclave里面是一个和Windows操作系统隔离的运行环境,这个环境并不能直接访问电脑的显卡和硬盘文件系统,所以SDK提供的C标准函数库并不包含我们常用的printf()或者fread(),fopen()之类的I/O函数。
2、实现OpenSGX应用
实现一个OpenSGX程序类似于正常的C程序。由于对SGX程序的操作系统支持,OpenSGX支持系统调用接口和用户级的API,用户只需用他们建立并执行OpenSGX二进制文件。唯一的区别在于,使用enclave_main()而不是主main(),使用sgx_exit(null)代替return。在OpenSGX程序中,在编译OpenSGX程序时,有可能使用现有的libc库函数或通过将存档文件加密的库函数如polarssl。由于OpenSGX提供它自己的定制链接脚本和加载器,所以通过修改,它们用到其他库中的enclave二进制文件。
编写代码之前,我们需要定义可信和不可信的函数,我们首先建立一个文件夹,在文件夹中为了编译方便(仿照上一节的makefile写我们自己的makefie)也仿照sdk给的例子中的文件夹布局建立新的文件夹文件夹的布局如下:

1.App:
外部程序,在enclave外部运行的代码
外部应用程序源码
2.Enclave:
Enclave.config.xml:enclave 配置文件,配置enclave的堆栈大小,链接数
Enclave_private.pem:用来给动态链接库签名的私钥
Enclave.lds:encalve link script

Enclave.edl:
用来声明enclave内部的trusted函数和app中的untrusted函数
如果app中要调用enclave中的函数,那么该函数必须在edl的trusted 中声明;
如果enclave中要调用app中的函数,那么该函数必须在edl的untrusted中声明;

其他:enclave 内部程序源码

3.Include:
外部应用程序和enclave程序共享的头文件,大多是公用的数据类型的定义
4.Makefile
构建项目

关注:

函数 文件 程序 文件夹 系统 链接 应用 操作系统 二进制 代码 布局 应用程序 标准 源码 环境 用户 支持 编译 运行 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 互联网科技工作委员会副主任毛军 互联网科技公司税收优惠 深圳齐家互联网科技 科技创新互联网企业 互联网科技公司有哪些 多迪互联网科技有限公司 哈尔滨新华互联网科技 成都铂石互联网科技做什么的 浙南科技城互联网大厦建设工程 中科明德北京互联网科技 21世纪互联网科技成就 互联网科技包装股 抖集互联网科技技术咨询 互联网科技企业商标注意事项 互联网科技手抄报图片 安徽零酒互联网科技有限公司 陕西彩京云互联网科技有限公司 数字科技和互联网金融哪个好 上海旺乐尼互联网科技有限公司 科技赋能下的互联网金融 互联网科技社 西安互联网科技 广州宏创互联网科技 哈尔滨新华互联网科技 新华互联网科技2019 中国互联网有什么科技含量 华中科技大学互联网的牛人 承德科技产业互联网平台 安徽九吞吴互联网科技有限公司
0