Manuais OVH

Intel SGX num servidor Infraestrutura

Ative o SGX no seu servidor Infraestrutura e instale a pilha de software Linux SGX

Última atualização a 17 de outubro de 2019

Sumário

Ativar o Intel Software Guard Extensions no seu servidor, para poder executar aplicações preparadas para SGX
O Intel SGX oferece funcionalidades avançadas de encriptação de segurança para hardware e RAM, com o objetivo de isolar partes do código e dos dados específicas de cada aplicação.

Requisitos

Instruções

Passo 1 - Aceder à consola da API

Aceda a https://api.ovh.com/console/ e clique em Iniciar sessão no canto superior direito da página.
Na página seguinte, inicie a sessão com as credenciais da sua conta OVH.

Passo 2 - Ativar o SGX

Obtenha o nome do seu servidor na lista devolvida pela seguinte chamada:

Verifique se o seu serviço tem a opção SGX, chamando:

SGX disabled

Em seguida, ative o SGX:

Configure SGX

Verifique o progresso da tarefa de configuração, chamando este endpoint com a taskId devolvida pela chamada anterior:

Get SGX configuration task

Pode verificar se o estado está agora ativado:

SGX enabled

Passo 3 - Reiniciar para aplicar as novas definições do BIOS

Passo 4 - Instalar a pilha de software SGX

Agora iremos instalar o driver Intel e o SDK para poder desenvolver e executar aplicações SGX.

Primeiro, vamos instalar algumas dependências:

sudo apt-get install build-essential ocaml ocamlbuild automake autoconf libtool wget python libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake git

Em seguida, descarregue, construa e instale a pilha de software SGX:

BASE_DIR=/opt/intel
[[ -d $BASE_DIR ]] || sudo mkdir -p $BASE_DIR && sudo chown `whoami` $BASE_DIR
cd $BASE_DIR

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

cd linux-sgx
git checkout sgx_2.6
./download_prebuilt.sh
make -j 6
make sdk_install_pkg -j 6
make deb_pkg -j 6
$BASE_DIR/linux-sgx/linux/installer/bin/sgx_linux_x64_sdk_2.6.100.51363.bin --prefix=$BASE_DIR/

sudo dpkg -i $BASE_DIR/linux-sgx/linux/installer/deb/libsgx-urts_2.6.100.51363-bionic1_amd64.deb $BASE_DIR/linux-sgx/linux/installer/deb/libsgx-enclave-common_2.6.100.51363-bionic1_amd64.deb

Descarregue e instale o driver:

wget https://download.01.org/intel-sgx/linux-2.6/ubuntu18.04-server/sgx_linux_x64_driver_2.5.0_2605efa.bin
chmod +x sgx_linux_x64_driver_2.5.0_2605efa.bin
sudo ./sgx_linux_x64_driver_2.5.0_2605efa.bin

Passo 5 - Reiniciar para concluir a instalação

Passo 6 - Utilizar uma aplicação exemplo para validar a instalação

Construa uma das aplicações exemplo fornecidas:

BASE_DIR=/opt/intel
cd $BASE_DIR/sgxsdk/SampleCode/LocalAttestation/
source $BASE_DIR/sgxsdk/environment
make SGX_DEBUG=0 SGX_MODE=HW SGX_PRERELEASE=1

Execute-a:

ovh@nsXXXX:/opt/intel/sgxsdk/SampleCode/LocalAttestation$ ./app 

Available Enclaves
Enclave1 - EnclaveID 2
Enclave2 - EnclaveID 3
Enclave3 - EnclaveID 4

Secure Channel Establishment between Source (E1) and Destination (E2) Enclaves successful !!!

Enclave to Enclave Call between Source (E1) and Destination (E2) Enclaves successful !!!

Message Exchange between Source (E1) and Destination (E2) Enclaves successful !!!

Secure Channel Establishment between Source (E1) and Destination (E3) Enclaves successful !!!

Enclave to Enclave Call between Source (E1) and Destination (E3) Enclaves successful !!!

Message Exchange between Source (E1) and Destination (E3) Enclaves successful !!!

Secure Channel Establishment between Source (E2) and Destination (E3) Enclaves successful !!!

Enclave to Enclave Call between Source (E2) and Destination (E3) Enclaves successful !!!

Message Exchange between Source (E2) and Destination (E3) Enclaves successful !!!

Secure Channel Establishment between Source (E3) and Destination (E1) Enclaves successful !!!

Enclave to Enclave Call between Source (E3) and Destination (E1) Enclaves successful !!!

Message Exchange between Source (E3) and Destination (E1) Enclaves successful !!!

Close Session between Source (E1) and Destination (E2) Enclaves successful !!!

Close Session between Source (E1) and Destination (E3) Enclaves successful !!!

Close Session between Source (E2) and Destination (E3) Enclaves successful !!!

Close Session between Source (E3) and Destination (E1) Enclaves successful !!!

Hit a key....

Passo 7 - Ir mais longe

Seguem-se alguns recursos úteis que lhe permitem ir mais longe (desenvolver a sua própria aplicação, registar-se para atestado remoto...):


Estes manuais também podem ser úteis...