Ubuntu 16.04下Intel SGX SDK环境搭建(硬件不支持情况)

文章目录

  • 1.下载安装包
  • 2.安装必要的工具
    • 2.1 On Ubuntu* 16.04:
    • 2.2 安装alien:
    • 2.3 下载并安装Intel® Capability Licensing Service(iclsClient):
    • 2.4 安装JHI服务:
  • 3.安装SGX SDK
  • 4.测试SDK是否安装成功
    • 4.1 值修改
    • 4.2 进行测试

本文介绍了在Ubuntu 16.04下安装Intel SGX SDK的步骤。硬件支持的完整安装还需要安装SGX驱动、平台软件(PSW),由于本人电脑CPU不支持,所以仅安装了SDK。

注意:
硬件需求仅当你安装sgx驱动和psw时需要,安装sgx sdk并不需要硬件支持。
其实硬件不支持也无所谓,可以在模拟环境下编写测试SGX程序。
如果硬件不支持,那么可以选择跳过驱动安装和PSW安装,
编写makefile时,SGX_MODE=SIM

Reference:

官方文档:https://download.01.org/intel-sgx/linux-1.8/docs/Intel_SGX_SDK_Installation_Guide_Linux_1.8_Open_Source.pdf
Ubuntu16.04——Intel sgx安装 https://blog.csdn.net/q2240441362/article/details/80343962

1.下载安装包

Intel® SGX SDK: sgx_linux_x64_sdk_.bin

地址:https://01.org/zh/intel-software-guard-extensions/downloads?langredirect=1
选择Intel SGX Linux 2.0 Release下的Intel® SGX SDK for Ubuntu* 16.04.1、进行下载

2.安装必要的工具

2.1 On Ubuntu* 16.04:

$ sudo apt-get installbuild-essential

2.2 安装alien:

sudo apt-get install alien

2.3 下载并安装Intel® Capability Licensing Service(iclsClient):

2.3.1 在 https://registrationcenter.intel.com/en/forms/?productid=2859 进行注册,注册后自动下载。

2.3.2 进入下载文件夹,编译 iclsClient:

sudo alien --scripts iclsClient-1.45.449.12-1.x86_64.rpm

会在文件夹中生成同名的deb文件。

2.3.3 安装iclsClient:

sudo dpkg -i iclsclient_1.45.449.12-2_amd64.deb

2.4 安装JHI服务:

2.4.1 下载dynamic-application-loader-host-interface源码:https://github.com/intel/dynamic-application-loader-host-interface

2.4.2 解压下载得到的源码并进入到文件夹中

unzip Filename.zip

2.4.3 安装必要的工具:

sudo apt-get install uuid-dev libxml2-dev cmake libsystemd-dev

2.4.4 进入到解压后的文件夹,编译并安装JHI服务:

cd dynamic-application-loader-host-interface-master
cmake .;make;sudo make install;sudo systemctl enable jhi

在这里插入图片描述

3.安装SGX SDK

(不切换到root权限,但在终端的~/下载目录下执行chmod 777命令然后sudo(因为SDK下载到了~/下载目录下,要在这里执行chmod 777,否则提示没有那个文件或目录)

进入到~/下载目录:

cd ~/下载

为下载得到的SDK文件添加可执行权限:

chmod 777 sgx_linux_ubuntu16.04.1_x64_sdk_2.0.100.40950.bin

安装SGX SDK:

sudo ./sgx_linux_ubuntu16.04.1_x64_sdk_2.0.100.40950.bin

安装过程中需要选择安装的文件夹,可以输入yes安装到当前文件夹,也可以输入no选择自己想安装到的文件夹。我选择了yes,因为选择no没有成功安装到别的文件夹。所以我的sdk安装到了~/下载目录。SGX SDK软件会在~/下载路径下建立一个sgxsdk文件夹,并将SDK安装到该文件夹中。

将SGX SDK设置到环境变量中(每次打开命令行都要设置):

source ~/下载/sgxsdk/environment

SGX SDK会在~/下载/sgxsdk目录下生成uninstall.sh脚本,用户可以使用该脚本卸载SGX SDK。

~/下载/sgxsdk/SampleCode目录下包括一些SGX例子代码,用户可以参考例子代码编写自己的程序。

4.测试SDK是否安装成功

4.1 值修改

安装到~/下载目录下的sgxsdk文件夹不可更改,因此我把整个sgxsdk文件夹复制到了另一个文件夹中(我复制到了/home/SGXSDK)。

/home/SGXSDK/sgxsdk/SampleCode/SampleEnclave 中修改Makefile文件两个值:

(1)修改SGX_SDK ?= /opt/intel/sgxsdk中的“=”后面的内容为我们的SGX SDK安装目录,在我这里是:SGX_SDK ?= ~/下载/sgxsdk。SGX应用程序编译时,需要使用SDK里面的库,默认SDK目录是/opt/intel/sgxsdk,我们要把它改成我们自己的目录。
(2)修改SGX_MODE ?= SIM,硬件不支持,进行模拟运行。

4.2 进行测试

终端进入到~/SGXSDK/sgxsdk/SampleEnclave目录下(cd或在文件夹中右键在终端打开,进行环境变量设置:

source ~/下载/sgxsdk/environment

执行测试:

make

结果:
Ubuntu 16.04下Intel SGX SDK环境搭建(硬件不支持情况)_第1张图片

你可能感兴趣的:(可信执行环境(TEE))