Ubuntu20.04配置Intel SGX

一、安装linux-sgx-driver

克隆linux-sgx-driver项目

git clone https://github.com/intel/linux-sgx-driver.git

检查是否安装匹配的内核头文件

dpkg-query -s linux-headers-$(uname -r)

安装匹配的内核头文件

sudo apt-get install linux-headers-$(uname -r)

构建linux-sgx驱动

# 进入项目目录
cd linux-sgx-driver
# 编译
make

安装linux-sgx驱动

sudo mkdir -p "/lib/modules/"`uname -r`"/kernel/drivers/intel/sgx"    
sudo cp isgx.ko "/lib/modules/"`uname -r`"/kernel/drivers/intel/sgx"    
sudo sh -c "cat /etc/modules | grep -Fxq isgx || echo isgx >> /etc/modules"    
sudo /sbin/depmod
sudo /sbin/modprobe isgx

检查是否已经安装成功

lsmod | grep isgx

二、安装SGX SDK

安装SDK所需的工具(以ubuntu 20.04或ubuntu22.04为例)

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

安装PSW所需的工具(以ubuntu 20.04或ubuntu22.04为例)

sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake reprepro unzip pkgconf libboost-dev libboost-system-dev libboost-thread-dev lsb-release libsystemd0

克隆linux-sgx项目

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

准备子模块和预构建的二进制文件

cd linux-sgx && make preparation

将与当前操作系统发行版对应的缓解工具从 external/toolset/{current_distr} 复制到 /usr/local/bin,并确保它们具有执行权限

sudo cp external/toolset/{
    
    current_distr}/* /usr/local/bin
# 以ubuntu20.04为例
sudo cp external/toolset/ubuntu20.04/* /usr/local/bin
# 检查是否复制成功
which ar as ld objcopy objdump ranlib

使用默认配置构建 SGX SDK

make sdk

构建SGX SDK安装程序

make sdk_install_pkg

调用安装程序

# 在项目的根目录下运行
cd linux/installer/bin
./sgx_linux_x64_sdk_${version}.bin
# 运行时按照以下内容进行
# Do you want to install in current directory? [yes/no] : no
# please input the directory which you want to install in : /opt/intel/

三、安装SGX PSW

使用默认配置构建SGX PSW

make psw
make psw_install_pkg

在相应文件夹中使用make命令构建每个Architecture Enclave

cd psw/ae/le
make

调用安装程序

# 在项目的根目录下运行
cd linux/installer/bin
./sgx_linux_x64_psw_${version}.bin

SGX PSW提供 3 个服务:启动、基于EPID的证明和算法无关的证明。从 2.8 版本开始,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
# 获取 Debian 存储库公钥并将其添加到 apt 用于验证软件包的受信任密钥列表中
wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add
# 更新apt
sudo apt-get update

然后,运行以下命令安装对应的服务

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

猜你喜欢

转载自blog.csdn.net/cacique111/article/details/133246169