ubuntu20.4 sgx环境配置

发布时间 2023-08-06 00:05:04作者: 李潇然

一、driver安装

1.在该下载地址将3个.bin文件下载下来,下载地址:https://download.01.org/intel-sgx/latest/linux-latest/distro/ubuntu20.04-server/

2.到下载文件夹下输入下面命令,以赋予.bin文件的执行权限

sudo chmod 777 sgx_linux_x64_driver_2.11.054c9c4c.bin

3.运行该bin文件,完成驱动安装

二、准备阶段

1.安装编译SGX SDK要用到的工具

sudo apt-get install build-essential ocaml ocamlbuild automake autoconf libtool wget python-is-python3 libssl-dev git cmake perl

2.安装编译SGX PSW要用到的工具
sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake reprepro unzip pkgconf libboost-dev libboost-system-dev protobuf-c-compiler libprotobuf-c-dev lsb-release

3.从仓库获取源码,到下载文件夹下,输入
git clone https://github.com/intel/linux-sgx.git

cd linux-sgx && make preparation

此处可能会因为网络原因执行失败,多次尝试执行make preparation后一般会成功

4.把准备好的工具列表添加到全局变量中,方便之后编译工作的展开。到linux-sgx文件夹下,输入以下命令:

sudo cp external/toolset/{current_distr}/* /usr/local/bin

将{current_distr}替换为当前的操作系统。

再用下面这个语句检查是不是添加成功:
which as ld objdump

5.编译SGX SDK和SGX SDK安装工具(installer),进入linux-sgx文件夹,输入以下命令

make sdk

运行完成后,再输入以下命令
make sdk_install_pkg

成功运行的话,在linux-sgx/linux/installer/bin文件夹下会有一个sgx_linux_x64_sdk_${version}.bin文件生成。

三、sdk安装

1.安装好需要用到的工具,输入以下命令
sudo apt-get install build-essential python

2.安装sdk,进入linux-sgx文件夹,输入以下两条命令

cd linux/installer/bin
./sgx_linux_x64_sdk_${version}.bin
注意:运行第二条命令时,它询问是否安装在当前文件夹的时候,最好选择“no”,然后输入/opt/intel/, 即将SGX SDK安装在/opt/intel/文件夹下。

3.安装完成后,根据提示输入source命令。

四、psw安装

1.命令行运行以下命令添加下载Intel sgx psw的下载路径

echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/intel-sgx.list

注意,与ubuntu18.04不同,ubuntu20为ubuntu focal main。

2.进入如下网址下载密钥intel-sgx-deb.key

https://download.01.org/intel-sgx/sgx_repo/ubuntu/

3.进入下载目录,通过如下命令添加进仓库

sudo apt-key add intel-sgx-deb.key

运行后等一会儿看到【ok】就是运行成功。

4.更新一下apt-get的列表

sudo apt-get update

如果系统报错deb无法识别,进入/etc/apt/sources.list.d目录,修改intel-sgx.list文件,去掉deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main两侧的引号。

5.分别安装SGX PSW 提供的3个服务
分别是launch、EPID-based attestation和Algorithm agnostic attestation,输入以下命令

sudo apt-get install  libsgx-urts
sudo apt-get install libsgx-launch 
sudo apt-get install libsgx-epid  
sudo apt-get install libsgx-quote-ex  
sudo apt-get install libsgx-dcap-ql

五、测试是否安装成功

进入安装目录(我的是/opt/intel/sgxsdk),再进入/SampleCode/SampleEnclave目录

1.首先准备一下编译环境,输入如下命令

source /opt/intel/sgxsdk/environment

2.编译

make

3.运行

./app

结果返回如下

Checksum(0x0x7ffda4d55720, 100) = 0xfffd4143
Info: executing thread synchronization, please wait...
Info: SampleEnclave successfully returned.
Enter a character before exit ...

恭喜,环境配置成功!

 

最后十分感谢我所参考的博主分享的教程

https://blog.csdn.net/myt1018/article/details/124393622

其余参考链接

https://github.com/intel/linux-sgx

https://download.01.org/intel-sgx/sgx-dcap/1.14/linux/docs/Intel_SGX_SW_Installation_Guide_for_Linux.pdf