sgx install


SGX簡介:https://software.intel.com/zh-cn/sgx

英特爾® Software Guard Extensions是一項面向應用程序開發人員的英特爾技術,這些開發人員力圖保護選定的代碼和數據免於被披露或被修改。 英特爾Software Guard Extensions 通過使用圍圈(enclave),即內存中受保護的執行區域,使這種保護成為可能。 使用特殊指令和軟件可將應用程序代碼放入圍圈中,這些特殊指令和軟件經由英特爾® Software Guard Extensions SDK 提供給開發人員使用。英特爾 Software Guard Extensions SDK 是 API、函數庫、文檔、樣本源代碼和工具的集合,允許軟件開發人員用C/C++ 創建和調試啟用英特爾Software Guard Extensions 的應用程序。

 

 

硬件要求

1.CPU:intel 6代CPU及以上的版本支持SGX功能(Kaby Lake系列全支持,不確定可以去Intel官網查詢https://ark.intel.com/ )

2.BIOS:進入主板BIOS設置,查看安全選項,如果有SGX選項,選擇enable

 

其實硬件不支持也無所謂,可以在模擬環境下編寫測試SGX程序。如果你的硬件不支持,那么跳過驅動安裝和PSW安裝。編寫makefile時,SGX_MODE=HW

 

系統要求

Ubuntu* Desktop-16.04-LTS 64bits

Red Hat Enterprise Linux Server release 7.3 64bits

CentOS 7.3.1611 64bits

 

安裝SGX驅動

1.下載

https://github.com/01org/linux-sgx-driver 下載驅動代碼

2.編譯

解壓,進入目錄

$ make

3.安裝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

在 Red Hat Enterprise Linux Server或 CentOS上:

$ sudo /sbin/modprobe isgx

4.卸載sgx驅動

$ sudo /sbin/modprobe -r isgx

$ sudo rm -rf "/lib/modules/"`uname -r`"/kernel/drivers/intel/sgx"

$ sudo /sbin/depmod

$ sudo /bin/sed -i '/^isgx$/d' /etc/modules

 

下載SGX SDK/PSW源碼

https://github.com/01org/linux-sgx

 

安裝SGX構建工具

On Ubuntu 16.04:

  $ sudo apt-get install build-essential ocaml automake autoconf libtool wget python

On Red Hat Enterprise Linux 7.3 and CentOS 7.3:

  $ sudo yum groupinstall 'Development Tools'

  $ sudo yum install ocaml wget python

 

安裝SGX PSW(SGX Platform Software)需要的工具

On Ubuntu 16.04:

  $ sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev

On Red Hat Enterprise Linux 7.3 and CentOS 7.3:

  $ sudo yum install openssl-devel libcurl-devel protobuf-compiler protobuf-devel

 

下載源碼

進入源碼包

 $ ./download_prebuilt.sh

 

 

構建 SGX SDK和 SGX PSW

1.使用默認配置

$ make  

sdk可以單獨make,但是psw make需要依賴sdk

2.禁用優化

$ make USE_OPT_LIBS=0

3.顯示bulid debug信息

$ make DEBUG=1

4.刪除build文件

$ make clean

5.Build的文件中enclave都是intel prebuild的Architecture Enclaves (LE /PvE /QE /PCE /PSE-OP /PSE-PR) and applet(PSDA) psw/ae/data/prebuilt/libsgx_*.signed.so and psw/ae/data/prebuilt /PSDA.dalp都是intel已經簽名過的。使用不簽名的enclave:

$ make

  $ cd psw/ae/le

  $ make

 

 

構建SGX SDK安裝器

$ make sdk_install_pkg

之后在linux/installer/bin/下會找到安裝的bin文件

使用$ make sdk_install_pkg DEBUG=1可以顯示構建信息

 

 

 

構建SGX PSW安裝器

$ make psw_install_pkg

之后在linux/installer/bin/下會找到安裝的bin文件

使用$ make psw_install_pkg DEBUG=1可以顯示構建信息

 

 

 

安裝SGX SDK

1.安裝python

Use the following command to install the required tool to use Intel(R) SGX SDK:

On Ubuntu 16.04:

$ sudo apt-get install build-essential python

On Red Hat Enterprise Linux 7.3 and CentOS 7.3:

  $ sudo yum groupinstall 'Development Tools'

  $ sudo yum install python

 

2.安裝SDK

$ cd linux/installer/bin

$ ./sgx_linux_x64_sdk_${version}.bin

 

3.測試SampleCode

 模擬模式

  $ cd SampleCode/LocalAttestation

  $ make SGX_MODE=SIM

  $ ./app

 硬件模式

  $ cd SampleCode/LocalAttestation

  $ make SGX_MODE=HW

  $ ./app

 

 

 

安裝SGX PSW

1.安裝依賴庫

On Ubuntu 16.04:

  $ sudo apt-get install libssl-dev libcurl4-openssl-dev libprotobuf-dev

On Red Hat Enterprise Linux 7.3 and CentOS 7.3:

  $ sudo yum install openssl-devel libcurl-devel protobuf-devel

使用Trusted Platform Service功能:

確保mei_me驅動和 /dev/mei0存在.

 

2.下載安裝iclsClient :

On Ubuntu 16.04:

  $ sudo apt-get install alien

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

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

On Red Hat Enterprise Linux 7.3 and CentOS 7.3:

  $ sudo yum install iclsClient-1.45.449.12-1.x86_64.rpm

 

3.安裝JHI service :

On Ubuntu 16.04:

  $ sudo apt-get install uuid-dev libxml2-dev cmake pkg-config

  $ cmake .;make;sudo make install;sudo systemctl enable jhi

On Red Hat Enterprise Linux 7.3 and CentOS 7.3:

  $ sudo yum install libuuid-devel libxml2-devel cmake pkgconfig

  $ cmake .;make;sudo make install;sudo ldconfig;sudo systemctl enable jhi

 

4.安裝SGX PSW

$ cd linux/installer/bin

$ sudo ./sgx_linux_x64_psw_${version}.bin

 

 

 

啟動 aesmd服務:

To stop the service: $ sudo service aesmd stop

To start the service: $ sudo service aesmd start

To restart the service: $ sudo service aesmd restart

 

tips:其他版本的SGX工具也有很多,opensgx和百度的rust sgx( https://github.com/baidu/rust-sgx-sdk )都可以看一下,要想詳細了解這個技術還是推薦官方的developer reference
————————————————
版權聲明:本文為CSDN博主「Super-Bob」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/y734564892/article/details/78177444


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM