Cette rubrique explique comment mettre en place un environnement de calcul confidentiel basé sur Software Guard Extensions (SGX) sur une instance Elastic Compute Service (ECS) compatible avec Intel® SGX, également appelée instance vSGX. Elle détaille également la procédure de vérification de la fonctionnalité SGX sur l'instance.
Prérequis
Une instance vSGX doit être créée et vous devez y être connecté.
Seules les familles d'instances g7t, c7t, r7t et g9it prennent en charge la fonctionnalité SGX. Pour plus d'informations, consultez la section Présentation des familles d'instances.
Contexte
Intel® SGX établit un environnement de calcul confidentiel au niveau physique afin de garantir la sécurité des données grâce à des protections matérielles plutôt qu'à des protections basées sur le micrologiciel ou le logiciel. Intel® SGX utilise des extensions de jeu d'instructions et un mécanisme de contrôle d'accès pour isoler l'environnement d'exécution des programmes SGX. Cela protège la confidentialité et l'intégrité du code clé et des données contre les attaques de logiciels malveillants. Contrairement à d'autres technologies de sécurité, Intel® SGX s'appuie sur une racine de confiance purement matérielle. Cette approche évite les défauts liés aux vulnérabilités logicielles dont dépendrait autrement la racine de confiance, renforçant ainsi la sécurité du système.
Les familles d'instances renforcées en matière de sécurité g7t, c7t, r7t et g9it fournissent une mémoire confidentielle basée sur Intel® SGX et prennent en charge la technologie SGX pour les machines virtuelles. Vous pouvez développer et exécuter des programmes SGX sur des instances vSGX.
Si vous utilisez des clés (telles que les clés de scellement SGX) liées au matériel pour chiffrer les données d'une instance au sein d'un enclave Intel SGX, les données chiffrées ne pourront pas être déchiffrées après un changement d'hôte de l'instance. Nous vous recommandons de mettre en œuvre la redondance et la sauvegarde des données au niveau de la couche application afin de garantir la fiabilité de celle-ci.
Procédure
Étape 1 : Vérifier si SGX est activé
Avant de construire un environnement de calcul confidentiel SGX, vous pouvez utiliser CPUID pour vérifier si SGX est activé. Cette section décrit la méthode de vérification. Les exemples suivants utilisent une image Alibaba Cloud Linux 2 (UEFI), Alibaba Cloud Linux 3 (UEFI) ou Ubuntu 22.04 (UEFI).
Image Alibaba Cloud Linux 2/3 (UEFI)
-
Installez CPUID.
sudo yum install -y cpuid -
Vérifiez si SGX est activé.
cpuid -1 -l 0x7 |grep SGXUn résultat de commande similaire à celui ci-dessous indique que SGX est activé.
# cpuid -1 -l 0x7 |grep SGX SGX: Software Guard Extensions supported = true SGX_LC: SGX launch config supported = true SGX-KEYS: SGX attestation services = falseRemarqueUne fois SGX activé, le pilote SGX est requis pour exécuter des programmes SGX. Les images dédiées fournies par Alibaba Cloud intègrent ce pilote. Si vous choisissez de ne pas utiliser une image dédiée, installez le pilote SGX manuellement.
-
Vérifiez si le pilote SGX est installé.
ls -l /dev/{sgx_enclave,sgx_provision}Un résultat de commande similaire à celui ci-dessous indique que le pilote SGX est installé.
[ @iZbp1cclxbc` ~ ]# ls -l /dev/{sgx_enclave,sgx_provision} crw-rw-rw- 1 root root 10, 61 Mar 16 09:38 /dev/sgx_enclave crw------- 1 root sgx_prv 10, 62 Mar 16 09:38 /dev/sgx_provision
Image Ubuntu 22.04 (UEFI)
-
Installez CPUID.
sudo apt-get update && sudo apt-get install -y --no-install-recommends cpuid -
Vérifiez si SGX est activé.
cpuid -1 -l 0x7 |grep SGXUn résultat de commande similaire à celui ci-dessous indique que SGX est activé.
$ cpuid -1 -l 0x7 |grep SGX SGX: Software Guard Extensions supported = true SGX_LC: SGX launch config supported = trueRemarqueUne fois SGX activé, le pilote SGX est requis pour exécuter des programmes SGX. Les images dédiées fournies par Alibaba Cloud intègrent ce pilote. Si vous choisissez de ne pas utiliser une image dédiée, installez le pilote SGX manuellement.
-
Installez le pilote SGX :
-
Créez le script
install_sgx_dcap.sh:cat <<'EOF' > install_sgx_dcap.sh #!/bin/bash version_id=$(cat /etc/os-release|grep "VERSION_ID"|cut -d"=" -f2|tr -d "\"") version_codename=$(cat /etc/os-release|grep "VERSION_CODENAME"|cut -d"=" -f2) apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential dkms curl wget if [ ! -e /dev/sgx/enclave -a ! -e /dev/sgx_enclave ]; then dcap_version=$(curl -s https://download.01.org/intel-sgx/latest/version.xml |grep dcap| sed -r 's/.*>(.*)<.*/\1/') dcap_files=$(curl -s https://download.01.org/intel-sgx/latest/dcap-latest/linux/SHA256SUM_dcap_${dcap_version}.cfg) echo "${dcap_files}" | grep "ubuntu${version_id}-server" |grep "sgx_linux_x64_driver" | awk '{print $2}' | xargs -I{} curl -O -J https://download.01.org/intel-sgx/latest/dcap-latest/linux/{} bash sgx_linux_x64_driver*.bin else echo "driver already installed" fi EOF -
Exécutez le script pour installer le pilote SGX :
sudo bash ./install_sgx_dcap.sh
-
-
Vérifiez si le pilote SGX est installé.
ls -l /dev/{sgx_enclave,sgx_provision}Un résultat de commande similaire à celui ci-dessous indique que le pilote SGX est installé.
ecs-user@iZxxx:~$ ls -l /dev/{sgx_enclave,sgx_provision} crw-rw---- 1 root sgx 10, 125 Mar 20 10:20 /dev/sgx_enclave crw------- 1 root root 10, 126 Mar 20 10:20 /dev/sgx_provision
Étape 2 : Construire un environnement de calcul confidentiel SGX
Avant de développer des programmes SGX, vous devez installer le runtime SGX et le SDK sur une instance vSGX, puis configurer le service d'attestation distante. Pour une expérience utilisateur optimale, nous vous recommandons d'utiliser les images dédiées fournies par Alibaba Cloud. Ces images intègrent le pilote SGX et proposent un kit de développement Trusted Execution Environment (TEE) entièrement compatible avec le SDK Intel® SGX. Cette section explique comment mettre en place un environnement de calcul confidentiel SGX. Les exemples suivants utilisent une image Alibaba Cloud Linux 2 (UEFI), Alibaba Cloud Linux 3 (UEFI) ou Ubuntu 22.04 (UEFI). Si vous utilisez des images Linux telles que CentOS, installez le pilote SGX et Platform SoftWare (PSW). Pour plus d'informations, consultez le guide Intel® SGX SW Installation Guide for Linux.
-
Installez les modules nécessaires à la construction de l'environnement de calcul confidentiel SGX.
Image Alibaba Cloud Linux 2/3 (UEFI)
-
(Requis) Installez le runtime SGX d'Alibaba Cloud.
RemarqueLorsque vous créez une instance vSGX dans la console ECS, le runtime SGX d'Alibaba Cloud est automatiquement installé. Vous pouvez ignorer cette étape et installer directement le SDK TEE d'Alibaba Cloud.
-
Importez le dépôt logiciel YUM (Yellowdog Updater Modified) pour le calcul confidentiel d'Alibaba Cloud.
RemarqueRemplacez [Region-ID] dans les URL suivantes par l'ID de région de votre instance vSGX :
L'URL publique du dépôt suit le format suivant :
https://enclave-[Region-ID].oss-[Region-ID].aliyuncs.com/repo/alinux/enclave-expr.repo.L'URL interne du dépôt suit le format suivant :
https://enclave-[Region-ID].oss-[Region-ID]-internal.aliyuncs.com/repo/alinux/enclave-expr.repo.
Vous pouvez également créer et exécuter un script pour importer le dépôt logiciel YUM dédié au calcul confidentiel d'Alibaba Cloud.
-
Créez le script
install_sgx_repo.sh:cat <<'EOF' > install_sgx_repo.sh ID=$(grep -w '^ID' /etc/os-release | awk -F= '{print $2}' | tr -d '"') VERSION_ID=$(grep -w '^VERSION_ID' /etc/os-release | awk -F= '{print $2}' | tr -d '"') # Query the region of the instance. token=$(curl -s -X PUT -H "X-aliyun-ecs-metadata-token-ttl-seconds: 5" "http://100.100.100.200/latest/api/token") region_id=$(curl -s -H "X-aliyun-ecs-metadata-token: $token" http://100.100.100.200/latest/meta-data/region-id) # Enable the Alibaba Cloud experimental repository for the instance if an Alibaba Cloud Linux 2 (UEFI) image is used. if [ "$ID" = "alinux" -a "$VERSION_ID" = "2.1903" ]; then sudo rpmkeys --import http://mirrors.cloud.aliyuncs.com/epel/RPM-GPG-KEY-EPEL-7 sudo yum install -y alinux-release-experimentals fi yum install -y yum-utils && \ yum-config-manager --add-repo \ https://enclave-${region_id}.oss-${region_id}-internal.aliyuncs.com/repo/alinux/enclave-expr.repo EOF -
Importez le dépôt YUM pour le calcul confidentiel d'Alibaba Cloud :
sudo bash ./install_sgx_repo.sh
-
Installez le runtime SGX d'Alibaba Cloud.
sudo yum install -y libsgx-ae-le libsgx-ae-pce libsgx-ae-qe3 libsgx-ae-qve \ libsgx-aesm-ecdsa-plugin libsgx-aesm-launch-plugin libsgx-aesm-pce-plugin \ libsgx-aesm-quote-ex-plugin libsgx-dcap-default-qpl libsgx-dcap-ql \ libsgx-dcap-quote-verify libsgx-enclave-common libsgx-launch libsgx-pce-logic \ libsgx-qe3-logic libsgx-quote-ex libsgx-ra-network libsgx-ra-uefi \ libsgx-uae-service libsgx-urts sgx-ra-service sgx-aesm-serviceRemarqueSGX Architectural Enclave Service Manager (AESM) sert à gérer des services tels que le démarrage de l'enclave, la configuration des clés et l'attestation distante. Le chemin d'installation par défaut de SGX AESM est /opt/intel/sgx-aesm-service.
-
-
Installez le SDK TEE d'Alibaba Cloud.
sudo yum install -y sgxsdk
Le SDK TEE d'Alibaba Cloud est entièrement compatible avec le SDK Intel® SGX. Une fois le SDK TEE d'Alibaba Cloud installé, vous pouvez consulter la documentation de référence pour développeurs Intel® SGX afin de développer vos programmes SGX. Pour plus d'informations, reportez-vous au document Intel®SGX Developer Reference.
RemarqueLe chemin d'installation par défaut du SDK Intel® SGX dans le SDK TEE d'Alibaba Cloud est /opt/alibaba/teesdk/intel/sgxsdk/.
Image Ubuntu 22.04 (UEFI)
-
Créez le script
install_sgx_sdk.sh:cat <<'EOF' > install_sgx_sdk.sh #!/bin/bash version_id=$(cat /etc/os-release|grep "VERSION_ID"|cut -d"=" -f2|tr -d "\"") version_codename=$(cat /etc/os-release|grep "VERSION_CODENAME"|cut -d"=" -f2) apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential dkms curl wget dcap_version=$(curl -s https://download.01.org/intel-sgx/latest/version.xml |grep dcap| sed -r 's/.*>(.*)<.*/\1/') linux_version=$(curl -s https://download.01.org/intel-sgx/latest/version.xml |grep linux| sed -r 's/.*>(.*)<.*/\1/') dcap_files=$(curl -s https://download.01.org/intel-sgx/latest/dcap-latest/linux/SHA256SUM_dcap_${dcap_version}.cfg) echo "${dcap_files}" | grep "ubuntu${version_id}-server" | awk '{print $2}' | xargs -I{} curl -O -J https://download.01.org/intel-sgx/latest/dcap-latest/linux/{} # install sgx_sdk bash sgx_linux_x64_sdk*.bin --prefix /opt/intel source /opt/intel/sgxsdk/environment # install psw echo "deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu ${version_codename} main" | tee /etc/apt/sources.list.d/intelsgx.list wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | apt-key add - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libsgx-launch libsgx-urts libsgx-epid libsgx-quote-ex libsgx-dcap-ql libsgx-dcap-ql-dev systemctl enable --now aesmd.service EOF -
Exécutez le script pour installer le SDK Intel® SGX et PSW :
sudo bash ./install_sgx_sdk.sh
-
-
Configurez le service d'attestation distante SGX d'Alibaba Cloud.
Le service d'attestation distante SGX d'Alibaba Cloud est entièrement compatible avec le service d'attestation distante basé sur l'algorithme de signature numérique à courbe elliptique (ECDSA) d'Intel® SGX et avec le SDK Intel® SGX. Les instances vSGX proposées par Alibaba Cloud peuvent obtenir la confiance des fournisseurs et producteurs distants grâce à l'attestation distante. Pour plus d'informations, consultez la page Attestation & Provisioning Services.
Le service d'attestation distante SGX d'Alibaba Cloud fournit les informations suivantes relatives au SDK SGX :
Certificats SGX : les certificats SGX.
Liste de révocation : liste des certificats SGX révoqués.
Informations sur la base de calcul de confiance : informations concernant la racine de confiance.
RemarqueIntel Ice Lake prend uniquement en charge l'attestation distante basée sur Intel Software Guard Extensions Data Center Attestation Primitives (Intel SGX DCAP) et ne prend pas en charge celle basée sur Intel Enhanced Privacy ID (EPID). Vous devez adapter vos applications avant de pouvoir utiliser la fonctionnalité d'attestation distante. Pour plus d'informations sur l'attestation distante, consultez la documentation Strengthen Enclave Trust with Attestation.
Le service d'attestation distante SGX d'Alibaba Cloud est déployé par région. Pour garantir une stabilité optimale, nous vous recommandons d'accéder au service déployé dans la même région que votre instance vSGX. Après l'installation du SDK Alibaba Cloud TEE, le fichier de configuration par défaut /etc/sgx_default_qcnl.conf est automatiquement généré pour le service d'attestation distante. Vous devez utiliser l'une des méthodes suivantes pour adapter ce fichier au service d'attestation distante SGX d'Alibaba Cloud de la région où l'instance vSGX est déployée.
RemarqueLe tableau suivant décrit les régions prenant en charge le service d'attestation distante SGX d'Alibaba Cloud.
Région prise en charge
ID de région
Chine (Qingdao)
cn-qingdao
Chine (Pékin)
cn-beijing
Chine (Zhangjiakou)
cn-zhangjiakou
Chine (Ulanqab)
cn-wulanchabu
Chine (Hangzhou)
cn-hangzhou
Chine (Shanghai)
cn-shanghai
Chine (Shenzhen)
cn-shenzhen
Chine (Heyuan)
cn-heyuan
Chine (Guangzhou)
cn-guangzhou
Chine (Chengdu)
cn-chengdu
Chine (Hong Kong)
cn-hongkong
Singapour
ap-southeast-1
Indonésie (Jakarta)
ap-southeast-5
-
(Méthode recommandée) Méthode 1 : Configurer automatiquement le fichier /etc/sgx_default_qcnl.conf.
Exécutez les commandes suivantes pour configurer automatiquement le fichier /etc/sgx_default_qcnl.conf. Pour plus d'informations, consultez Accéder aux métadonnées de l'instance.
# View the region of the instance. token=$(curl -s -X PUT -H "X-aliyun-ecs-metadata-token-ttl-seconds: 5" "http://100.100.100.200/latest/api/token") region_id=$(curl -s -H "X-aliyun-ecs-metadata-token: $token" http://100.100.100.200/latest/meta-data/region-id) # Specify the URL of Alibaba Cloud Provisioning Certificate Caching Service (PCCS) for the region in which the instance is deployed. PCCS_URL=https://sgx-dcap-server-vpc.${region_id}.aliyuncs.com/sgx/certification/v4/ sudo bash -c 'cat > /etc/sgx_default_qcnl.conf' << EOF # PCCS server address PCCS_URL=${PCCS_URL} # To accept insecure HTTPS cert, set this option to FALSE USE_SECURE_CERT=TRUE EOF -
Méthode 2 : Modifier manuellement le fichier /etc/sgx_default_qcnl.conf.
-
Si l'instance vSGX dispose d'une adresse IP publique, remplacez la configuration du fichier /etc/sgx_default_qcnl.conf par le contenu suivant. Remplacez [Region-ID] par l'ID de région de l'instance vSGX.
# PCCS server address PCCS_URL=https://sgx-dcap-server.[Region-ID].aliyuncs.com/sgx/certification/v4/ # To accept insecure HTTPS cert, set this option to FALSE USE_SECURE_CERT=TRUE -
Si l'instance vSGX se trouve dans un VPC et ne dispose que d'adresses IP internes, remplacez la configuration du fichier /etc/sgx_default_qcnl.conf par le contenu suivant. Remplacez [Region-ID] par l'ID de région de l'instance vSGX.
# PCCS server address PCCS_URL=https://sgx-dcap-server-vpc.[Region-ID].aliyuncs.com/sgx/certification/v4/ # To accept insecure HTTPS cert, set this option to FALSE USE_SECURE_CERT=TRUE
-
Exemples de vérification de la fonctionnalité SGX
Cette rubrique explique comment démarrer un enclave pour vérifier que le SDK SGX installé fonctionne correctement. Si l'enclave démarre, le SDK fonctionne comme prévu. Les exemples suivants utilisent le fichier de code exemple nommé SampleEnclave.
Exemple 1 : Démarrer un enclave
Image Alibaba Cloud Linux 2/3 (UEFI)
Le SDK Alibaba Cloud TEE fournit du code exemple SGX pour vérifier la fonctionnalité SGX. Par défaut, le code est stocké dans le répertoire /opt/alibaba/teesdk/intel/sgxsdk/SampleCode.
Installez un compilateur.
-
Configurez les variables d'environnement liées au SDK SGX.
if [ "$ID" = "alinux" -a "$VERSION_ID" = "2.1903" ]; then source /opt/rh/devtoolset-9/enable fi source /opt/alibaba/teesdk/intel/sgxsdk/environment -
Compilez le code exemple du fichier SampleEnclave.
-
Accédez au répertoire SampleEnclave :
cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/SampleEnclave -
Compilez le code exemple de SampleEnclave :
sudo -E make
-
-
Exécutez le fichier exécutable compilé.
sudo ./appSi la sortie de commande suivante s'affiche, SGX fonctionne correctement.
[ecs-user@ixxxxxxxxxxxx ~ SampleEnclave]$ sudo ./app Checksum(0x0x7ffd25e190a0, 100) = 0xffffd4143 Info: executing thread synchronization, please wait... Info: SampleEnclave successfully returned.
ID=$(grep -w '^ID' /etc/os-release | awk -F= '{print $2}' | tr -d '"')
VERSION_ID=$(grep -w '^VERSION_ID' /etc/os-release | awk -F= '{print $2}' | tr -d '"')
if [ "$ID" = "alinux" ]; then
case "$VERSION_ID" in
"2.1903" )
sudo yum install -y devtoolset-9
;;
"3" )
sudo yum groupinstall -y "Development Tools"
;;
esac
fi
Image Ubuntu 22.04 (UEFI)
-
Mettez à jour la liste des packages.
sudo apt update -
Installez le compilateur
build-essential.sudo apt install -y build-essential -
Compilez le code exemple du fichier SampleEnclave.
-
Accédez au répertoire SampleEnclave :
cd /opt/intel/sgxsdk/SampleCode/SampleEnclave/ -
Compilez le code exemple de SampleEnclave :
sudo make SGX_DEBUG=1
-
-
Exécutez le fichier exécutable compilé.
sudo ./appSi la sortie de commande suivante s'affiche, SGX fonctionne correctement.
ecs-user@iZ2z..........:/opt/intel/sgxsdk/SampleCode/SampleEnclave$ sudo ./app Checksum(0x0x7ffdfe154760, 100) = 0xfffd4143 Info: executing thread synchronization, please wait... Info: SampleEnclave successfully returned. Enter a character before exit ...
Exemple 2 : Utiliser le service d'attestation distante SGX
Le SDK Alibaba Cloud TEE fournit du code exemple SGX pour vérifier la fonctionnalité SGX. Par défaut, le code est stocké dans le répertoire /opt/alibaba/teesdk/intel/sgxsdk/SampleCode. Cette section explique comment utiliser le service d'attestation distante SGX. Cet exemple utilise une image Alibaba Cloud Linux 2 (UEFI) ou Alibaba Cloud Linux 3 (UEFI).
Le résultat attendu est la génération d'un quote à l'aide du fichier QuoteGenerationSample, suivi de sa vérification avec le fichier QuoteVerificationSample. L'exemple implique deux parties : la partie défiée (programmes SGX exécutés dans l'instance vSGX) et la partie défieuse (celle qui souhaite vérifier si les programmes SGX sont fiables). Dans cet exemple, le fichier de code exemple nommé QuoteGenerationSample est utilisé par la partie défiée pour générer un quote, et le fichier nommé QuoteVerificationSample est utilisé par la partie défieuse pour vérifier le quote.
-
Installez un compilateur.
-
Si vous utilisez une image Alibaba Cloud Linux 2 (UEFI), installez devtoolset.
-
Installez devtoolset.
sudo yum install -y devtoolset-9 -
Configurez les variables d'environnement liées à devtoolset.
source /opt/rh/devtoolset-9/enable
-
-
Si vous utilisez une image Alibaba Cloud Linux 3 (UEFI), installez Development Tools.
sudo yum groupinstall -y "Development Tools"
-
-
Configurez les variables d'environnement liées au SDK SGX.
source /opt/alibaba/teesdk/intel/sgxsdk/environment -
Installez le package de dépendances pour l'attestation distante SGX.
sudo yum install -y libsgx-dcap-ql-devel libsgx-dcap-quote-verify-devel libsgx-dcap-default-qpl-devel -
Compilez le code exemple du fichier QuoteGenerationSample utilisé par la partie défiée.
-
Accédez au répertoire QuoteGenerationSample.
cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/QuoteGenerationSample -
Compilez le code exemple du fichier QuoteGenerationSample.
sudo -E make
-
-
Exécutez le fichier exécutable compilé pour générer un quote.
sudo ./appSi la sortie de commande suivante s'affiche, la vérification du quote a réussi.
[ecs-user@iZ2ze4xxx QuoteGenerationSample]$ sudo ./app [APP] Info: sgx_qe_set_enclave_load_policy is valid in in-proc mode only and it is optional: the default enclave load policy is persistent [APP] Info: set the enclave load policy as persistent [APP] Step1: Call sgx_qe_get_target_info: [APP] succeed! [APP] Step2: Call create_app_report [APP] Step3: Call sgx_qe_get_quote_size [APP] Step4: Call sgx_qe_get_quote [APP] cert_key_type = 0x5 [APP] Info: sgx_qe_cleanup_by_policy is valid in in-proc mode only. [APP] Info: Clean up the enclave load policy -
Compilez le code exemple du fichier QuoteVerificationSample utilisé par la partie défieuse.
-
Accédez au répertoire QuoteVerificationSample.
cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/QuoteVerificationSample -
Compilez le code exemple du fichier QuoteVerificationSample.
sudo -E make
-
-
Signez l'enclave QuoteVerificationSample.
Pour publier une version officielle d'une enclave, vous devez fournir la clé de signature pour signer l'enclave.
sudo sgx_sign sign -key Enclave/Enclave_private_sample.pem -enclave enclave.so -out enclave.signed.so -config Enclave/Enclave.config.xmlRemarqueSi le message d'erreur
Failed to open file "Enclave/Enclave_private_sample.pem"s'affiche, exécutez la commande suivante pour re-signer :sudo sgx_sign sign -key ../QuoteGenerationSample/Enclave/Enclave_private_sample.pem -enclave enclave.so -out enclave.signed.so -config Enclave/Enclave.config.xml -
Exécutez le fichier exécutable compilé pour vérifier le quote.
sudo ./appSi la sortie de commande suivante s'affiche, la vérification du quote a réussi.
[ecs-user@iZ2zxxx QuoteVerificationSample]$ sudo ./app [APP] Info: ECDSA quote path: ../QuoteGenerationSample/quote.dat Trusted quote verification: [APP] Info: get target info successfully returned. [APP] Info: sgx_qv_set_enclave_load_policy successfully returned. [APP] Info: tee_get_quote_supplemental_data_version_and_size successfully returned. [APP] Info: latest supplemental data major version: 3, minor version: 3
Mettre à jour le logiciel SGX SDK, PSW et DCAP
La pile logicielle Intel® SGX comprend SGX SDK, SGX PSW, et SGX Data Center Attestation Primitives (DCAP). Pour garantir une sécurité optimale, nous vous recommandons de mettre régulièrement à jour les versions des logiciels. Cet exemple utilise une image Alibaba Cloud Linux 3 UEFI pour mettre à jour les packages logiciels SGX SDK, SGX PSW et SGX DCAP.
-
Mettez à jour les logiciels SGX SDK, SGX PSW et SGX DCAP.
sudo rpm -qa --qf "%{NAME}\n"|grep -E "sgxsdk|libsgx-|libtdx-|^sgx-|^tdx-"|sudo xargs bash -c '</dev/tty yum update "$@"' _ -
Consultez les versions des logiciels SGX SDK, SGX PSW et SGX DCAP.
-
Consultez les versions des logiciels SGX SDK et SGX PSW.
sudo rpm -qa|grep -E "sgxsdk|sgx-aesm-service|libsgx-(ae-epid|ae-le|ae-pce|aesm|enclave|epid|headers|launch|quote-ex|uae-service|urts)"La sortie de commande suivante s'affiche.
[ecs-user@iZ2zexxxxxxxxxxxxx /]$ sudo rpm -qa|grep -E "sgxsdk|sgx-aesm-service|libsgx-(ae-epid|ae-le|ae-pce|aesm|enclave|epid|headers|launch|quote-ex|uae-service|urts)" sgx-aesm-service-2.23.100.2-1.al8.x86_64 libsgx-epid-2.23.100.2-1.al8.x86_64 libsgx-ae-pce-2.23.100.2-1.al8.x86_64 libsgx-ae-le-2.23.100.2-1.al8.x86_64 libsgx-aesm-launch-plugin-2.23.100.2-1.al8.x86_64 libsgx-launch-2.23.100.2-1.al8.x86_64 libsgx-enclave-common-2.23.100.2-1.al8.x86_64 libsgx-urts-2.23.100.2-1.al8.x86_64 libsgx-aesm-pce-plugin-2.23.100.2-1.al8.x86_64 libsgx-aesm-ecdsa-plugin-2.23.100.2-1.al8.x86_64 libsgx-aesm-quote-ex-plugin-2.23.100.2-1.al8.x86_64 libsgx-quote-ex-2.23.100.2-1.al8.x86_64 libsgx-uae-service-2.23.100.2-1.al8.x86_64 sgxsdk-2.23.100.2-1.al8.x86_64 libsgx-headers-2.23.100.2-1.al8.x86_64 -
Consultez la version du logiciel SGX DCAP.
sudo rpm -qa|grep -E "sgx-(dcap-pccs|pck|ra-service)|libsgx-(ae-id-enclave|ae-qe3|ae-qve|ae-tdqe|dcap|pce-logic|qe3-logic|ra-|tdx-)|libtdx-|^tdx-"La sortie de commande suivante s'affiche.
[ecs-user@iZ2zexxxxxxxxxxxxx /]$ sudo rpm -qa|grep -E "sgx-(dcap-pccs|pck|ra-service)|libsgx-(ae-id-enclave|ae-qe3|ae-qve|ae-tdqe|dcap|pce-logic|qe3-logic|ra-|tdx-)|libtdx-|^tdx-" libsgx-ra-uefi-1.20.100.2-1.al8.x86_64 libsgx-ra-network-1.20.100.2-1.al8.x86_64 libsgx-ae-qve-1.20.100.2-1.al8.x86_64 libsgx-ae-qe3-1.20.100.2-1.al8.x86_64 libsgx-pce-logic-1.20.100.2-1.al8.x86_64 libsgx-dcap-quote-verify-1.20.100.2-1.al8.x86_64 libsgx-ae-id-enclave-1.20.100.2-1.al8.x86_64 libsgx-qe3-logic-1.20.100.2-1.al8.x86_64 libsgx-dcap-ql-1.20.100.2-1.al8.x86_64 sgx-ra-service-1.20.100.2-1.al8.x86_64 libsgx-dcap-default-qpl-1.20.100.2-2.al8.x86_64 libsgx-dcap-ql-devel-1.20.100.2-1.al8.x86_64 libsgx-dcap-quote-verify-devel-1.20.100.2-1.al8.x86_64 libsgx-dcap-default-qpl-devel-1.20.100.2-2.al8.x86_64
-
Problèmes connus
Des fuites de mémoire peuvent survenir sur le pilote SGX fourni avec Alibaba Cloud Linux 2 dont la version du noyau est 4.19.91-23.al7.x86_64. Ce problème est corrigé dans la dernière version. Nous vous recommandons de mettre à jour le noyau vers la dernière version. Si vous souhaitez continuer à utiliser cette version antérieure du noyau, nous vous recommandons d'exécuter les commandes suivantes pour installer les correctifs et éviter ce problème :
sudo yum install -y alinux-release-experimentals && \
sudo yum install -y kernel-hotfix-5577959-23.al7.x86_64