千家信息网

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

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,1、SGX SDKSGX SDK给开发者提供了一个精简版的C标准函数库。因为enclave里面是一个和Windows操作系统隔离的运行环境,这个环境并不能直接访问电脑的显卡和硬盘文件系统,所以SDK提
千家信息网最后更新 2025年01月22日可信安全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安全错误 数据库的锁怎样保障安全 广东互联网软件开发如何收费 计算机和网络安全有关吗 d2p2数据库 注意网络安全 保护个人信息 数据库 连接表 互联网科技贷款牌照 南京有的网络技术 杭州奥道网络技术 网络硬件服务器与工作站 搜企网络技术有限公司 数据库中最早出现的数据模型 中原网络安全实验室 我的世界minez服务器城市在哪里 吴江网络技术咨询价格 青少年如何做到网络安全 清华同方数据库技术流视频 微信数据库开发商 app服务器端的安全隐患 怎样修改表的数据库 电脑不停在扫描一台服务器 面向对象数据库技术视频 网络安全对国际体系的影响 怎么用命令方块生成一个服务器 服务器管理工具教程 如何提高网络安全培训 网络安全等级保护顶级指南 安装数据库为什么要关闭防火墙 网络安全小技巧都有哪些 关系逻辑的安全运算数据库 中国专利数据库检索系统
0