Documentation OVH

Activer Intel SGX sur les serveurs de la gamme Infrastructure

Activer l’option SGX sur votre serveur Infrastructure et installer la pile de logiciels SGX pour Linux

Dernière mise à jour le 17 octobre 2019

Objectif

Activez Intel Software Guard Extensions sur votre serveur, pour pouvoir exécuter les applications SGX-ready. La technologie Intel SGX fournit des fonctions de sécurité avancées de chiffrement matériel de la mémoire. Cela permet d’isoler des parties de code et des données spécifiques d'une application.

Prérequis

En pratique

Étape 1 : Se connecter à l’API

Allez sur https://api.ovh.com/console/ et cliquez sur Login dans le coin supérieur droit de la page.
Sur la page suivante, connectez-vous avec les identifiants de votre compte OVHcloud.

Étape 2 : Activer SGX

Obtenez le nom de votre serveur de la liste renvoyée par cet appel :

Vérifiez que votre service dispose de l’option SGX, avec l’appel suivant :

SGX disabled

Maintenant, activez SGX.

Configure SGX

Vérifiez le progrès de la tâche de configuration en appelant cet endpoint avec le taskId renvoyé par l’appel précédent :

Get SGX configuration task

Vous pouvez vérifier que l’état est maintenant «activé» :

SGX enabled

Étape 3 : Redémarrer le serveur pour que la nouvelle configuration du BIOS soit prise en compte.

Étape 4 : Installer la pile de logiciels SGX

Il faut maintenant installer le driver Intel et SDK pour pouvoir développer et exécuter des applications SGX.

En premier lieu, il faut installer quelques dépendances :

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

Ensuite, téléchargez, créez et installez la pile logicielle 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

Téléchargez et installez le 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

Étape 5 : Redémarrer pour finir l’installation

Étape 6 : Utiliser un modèle d’application pour valider l’installation

Créez une application avec un des modèles fournis :

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

Exécutez-la :

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

Allez plus loin

Pour aller plus loin (développer votre propre application, s’inscrire pour obtenir une certification à distance, ...), voici quelques ressources utiles :


Cette documentation vous a-t-elle été utile ?

Génial ! Ravi d'avoir pu vous aider.

Images, contenu, structure... N'hésitez pas à nous dire pourquoi afin de la faire évoluer ensemble !

Merci beaucoup pour votre aide ! Vos retours seront étudiés au plus vite par nos équipes..


Ces guides pourraient également vous intéresser...