ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

sgx install

2021-05-07 10:33:02  阅读:237  来源: 互联网

标签:sgx SGX make sudo 7.3 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

标签:sgx,SGX,make,sudo,7.3,install
来源: https://www.cnblogs.com/Janly/p/14738075.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有