Ubuntu 18.04安装Intel SGX 2.3.1

文章目录

  • 1.下载安装包
  • 2.安装必要的工具
    • 2.1 On Ubuntu* 18.04:
    • 2.2 安装alien:
    • 2.3 下载并安装Intel® Capability Licensing Service(iclsClient):
    • 2.4 安装JHI服务:
  • 3.安装SGX
    • 3.1 安装SGX驱动
    • 3.2 安装SGX enclave common
    • 3.3 安装SGX SDK
      • 环境变量设置--方法一
      • 环境变量设置--方法二(推荐)
  • 4.测试SDK是否安装成功
    • 4.1 值修改
    • 4.2 进行测试

本文介绍了在 Ubuntu 18.04下安装Intel SGX 2.3.1 版本的步骤。硬件支持的完整安装包括以下三个部分:
在这里插入图片描述

注意:
硬件需求仅当你安装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.下载安装包

地址:https://01.org/intel-software-guard-extensions/downloads
Ubuntu 18.04安装Intel SGX 2.3.1_第1张图片

选择Intel SGX Linux 2.3.1 Release下的Intel® SGX Installers for Ubuntu* 18.04 进行下载 在https://download.01.org/intel-sgx/linux-2.3.1/ubuntu18.04/ 中下载以下三部分:
在这里插入图片描述

2.安装必要的工具

2.1 On Ubuntu* 18.04:

sudo apt-get install libssl-dev libcurl4-openssl-dev libprotobuf-dev
sudo apt-get install build-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

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

进入到~/Downloads目录:

cd ~/Downloads

3.1 安装SGX驱动

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

chmod 777 sgx_linux_x64_driver_4d69b9c.bin

安装SGX driver:

sudo ./sgx_linux_x64_driver_4d69b9c.bin

在这里插入图片描述

3.2 安装SGX enclave common

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

chmod 777 libsgx-enclave-common_2.3.101.46683-1_amd64.deb

安装SGX enclave common:

sudo dpkg -i libsgx-enclave-common_2.3.101.46683-1_amd64.deb

卸载:
SGX驱动会将其设置为开机启动,并在/opt/intel 目录下生成uninstall.sh脚本,用户可以使用该脚本卸载SGX驱动: 在该目录下,执行 sudo ./uninstall

若生成的是uninstall.sh,则执行 sudo ./uninstall.sh

3.3 安装SGX SDK

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

chmod 777 sgx_linux_x64_sdk_2.3.101.46683.bin

安装SGX SDK:

sudo ./sgx_linux_x64_sdk_2.3.101.46683.bin

安装过程中需要选择安装的文件夹,可以输入yes安装到当前文件夹,也可以输入no选择自己想安装到的文件夹。我选择了no,并输入/home/lee/SGXSDK,将SGX SDK安装到/home/lee/SGXSDK文件夹下。(无硬件环境安装到/opt/intel) SGX SDK软件会在/home/lee/SGXSDK路径下建立一个sgxsdk文件夹,并将SDK安装到该文件夹中。

环境变量设置–方法一

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

source /home/lee/SGXSDK/sgxsdk/environment

在这里插入图片描述

环境变量设置–方法二(推荐)

/etc/profile文件下添加:

export PATH=$PATH:/home/lee/SGXSDK/sgxsdk/environment

安装完成!
SGX SDK会在/home/lee/SGXSDK目录下生成uninstall.sh脚本,用户可以使用该脚本卸载SGX SDK。

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

4.测试SDK是否安装成功

4.1 值修改

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

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

sudo gedit ~/BlockchainExperiment/SGXSDK/sgxsdk/SampleCode/SampleEnclave/Makefile

修改SGX_SDK ?= /opt/intel/sgxsdk中的“=”后面的内容为我们的SGX SDK安装目录,在我这里是:SGX_SDK ?= /home/lee/SGXSDK/sgxsdk。(SGX应用程序编译时,需要使用SDK里面的库,默认SDK目录是/opt/intel/sgxsdk,我们要把它改成我们自己的目录)。

Ubuntu 18.04安装Intel SGX 2.3.1_第2张图片

4.2 进行测试

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

source /home/lee/SGXSDK/sgxsdk/environment

注意!如果使用环境变量配置方法二就不需要进行此步的环境变量设置。但执行测试还需要在此目录下。

进行编译:

make

结果:
Ubuntu 18.04安装Intel SGX 2.3.1_第3张图片
Ubuntu 18.04安装Intel SGX 2.3.1_第4张图片
执行程序:

./app

成功的话,说明SGX安装是正确的。
Ubuntu 18.04安装Intel SGX 2.3.1_第5张图片

你可能感兴趣的:(Linux进阶之路,可信执行环境(TEE))