## Ubuntu 20.04安装Intel sgx

非常重要!!!!!!!!!

告诉大家一个安装SGX的奇技淫巧,看到这里后续无需再看!本人方向是处理器硬件安全,时常需要安装SGX以此来攻击,在研究过程中发现了这个好东西:
github:https://github.com/jovanbulck/sgx-step.git

cd kernel/
./install_SGX_driver.sh          
make clean load

LOVE & PEACE

非常重要!!!!!!!!!

官网的安装连接:https://github.com/intel/linux-sgx

安装顺序:sgx dirver ->sgx sdk-> sgx psw

安装sgx driver

准备工作

  1. 检查是否安装了匹配的内核头文件
dpkg-query -s linux-headers-$(uname -r)
  1. 安装匹配的内核头文件
 sudo apt-get install linux-headers-$(uname -r)

生成驱动模块

/linux-sgx-driver-master# make

安装驱动

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

准备工作*

  1. 安装编译SGX SDK要用到的工具
sudo apt-get install build-essential ocaml ocamlbuild automake autoconf libtool wget python libssl-dev git cmake perl

  1. 安装编译SGX PSW要用到的工具
sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake reprepro unzip

  1. 从仓库获取源码
git clone https://github.com/intel/linux-sgx.git   
#如果出现了问题:fatal: unable to access 'https://github.com/intel/linux-sgx.git/': GnuTLS recv error (-110): The TLS connection was non-properly terminated.
#命令换成:git clone git://github.com/intel/linux-sgx.git 
cd linux-sgx && make preparation

  1. 把准备好的工具列表添加到全局变量中,方便之后编译工作的展开
sudo cp external/toolset/ubuntu20.04/{as,ld,ld.gold,objdump} /usr/local/bin

再用下面这个语句检查是不是添加成功

which as ld ld.gold objdump

编译SGX SDK和SGX SDK安装工具(installer)
1.进入./linux-sgx文件夹(其实应该也是一直在这个文件夹下),命令行执行

make sdk

再命令行执行:

make sdk_install_pkg

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

安装SGX SDK

为什么先安装SDK而不是像官网说的先去吧SGX PSW也编译好呢?别问,问就是报错。如果先去编译psw,它会返回一个…/sgxsdk不存在的错误,说明psw需要依赖SGX SDK,或者它需要根据安装好的SDK构造一些依赖关系,所以,先安装SDK吧。

安装好需要用到的工具

sudo apt-get install build-essential python

无脑运行以下命令:

 cd linux/installer/bin
./sgx_linux_x64_sdk_${version}.bin

这里特别提示存在一个坑,就是它询问是否存在当前文件夹的时候,最好选择“no”,然后将SGX SDK安装在/opt/intel/ 文件夹下。

安装SGX PSW

make psw
make psw_install_pkg
cd psw/ae/le
make

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

cd linux/installer/bin
./sgx_linux_x64_psw_${version}.bin

SGX PSW 提供了3个服务,分别是launch、EPID-based attestation和Algorithm agnostic attestation,从2.8版本开始,PSW整体拆分成这三个小服务,可以分别安装:

 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 
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐