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
构建项目
分享标题:可信安全TEE分析4IntelSGX设计和编程
标题来源:/article48/ipigep.html
成都网站建设公司_创新互联,为您提供网站收录、品牌网站设计、自适应网站、全网营销推广、网站设计、网站策划
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联