OVH Guías

Intel SGX en los servidores de la gama Infrastructure

Active la funcionalidad SGX en su servidor Infrastructure e instale la pila de software SGX para linux

Última actualización: 17 de octubre de 2019

Objetivo

Active Intel Software Guard Extensions en su servidor para poder ejecutar las aplicaciones SGX-ready.
La tecnología Intel SGX proporciona funciones avanzadas de seguridad mediante el cifrado por hardware de la memoria, que permite aislar fragmentos de código y datos específicos de una aplicación.

Requisitos

Procedimiento

Paso 1: acceder a la API

Acceda a https://api.ovh.com/console/ y, a continuación, haga clic en el botón Login situado en la esquina superior derecha de la página.
Identifíquese con los datos de acceso de su cuenta de OVHcloud en la página siguiente.

Paso 2: Activar SGX

Obtenga el nombre de su servidor de la lista que devuelve la siguiente llamada:

Compruebe que su servicio tiene la opción SGX con la siguiente llamada:

SGX disabled

A continuación, active la opción SGX:

Configure SGX

Compruebe el progreso de la tarea de configuración llamando al siguiente endpoint con el taskId devuelto en la llamada anterior:

Get SGX configuration task

Puede comprobar que el estado ahora es «Activo»:

SGX enabled

Paso 3: Reiniciar para aplicar la nueva configuración de la BIOS

Paso 4: Instalar la pila de software SGX

Ahora instalaremos el driver de Intel y SDK para poder desarrollar y ejecutar aplicaciones SGX.

Primero, instalaremos algunas dependencias:

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

Después, descargue, cree e instale la pila 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

Descargue e instale el 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

Paso 5: Reinicie para terminar la instalación

Paso 6: Utilice una plantilla de aplicación para validar la instalación

Cree una aplicación con una de las plantillas proporcionadas:

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

Ejecútela:

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....

Más información

Si desea seguir avanzando (desarrollar su propia aplicación, obtener una certificación a distancia, etc), aquí tiene algunos recursos que pueden resultarle útiles:


Otras guías que podrían interesarle...