ID de l'article: 000057416 Type de contenu: Messages d'erreur Dernière révision: 26/07/2021

Erreur rencontré, « L’enclave contient une table d’importation », lors de la signature de la DLL Intel® Software Guard Extensions (Intel® SGX) Enclave

BUILT IN - ARTICLE INTRO SECOND COMPONENT
En bref

Comment accéder à une bibliothèque non sécurisée à partir d’une enclave Intel® Software Guard Extensions (Intel® SGX)

Descriptif
  • Tentative de liaison entre une enclave et une bibliothèque statique qui ne se trouve pas sur la liste des bibliothèques de confiance.
  • L’étape de signature de l’enclave échoue avec l’erreur : l’enclave contient une table d’importation.
Résolution

Tenter de lier une enclave à une bibliothèque dynamique ou à une bibliothèque sans confiance échoue dans le processus de signature.

Link the enclave to Trusted, static libraries listed in the Trusted Libraries section in the Intel® Software Guard Extensions (Intel® SGX) Developer Reference Guide for Windows* or Linux*.

Au lieu d’appeler la bibliothèque non sécurisée directement depuis l’enclave, développez des fonctions d’interface dans votre application nontrus qui accèdent à la bibliothèque nontrus.

Ensuite, créez des OCALL aux fonctions d’interface nontrus. L’enclave accède indirectement à la bibliothèque par l’intermédiaire d’OCALLs aux fonctions d’interface de l’application nontrus.

Informations complémentaires

Reportez-vous Intel® Software Guard Extensions de référence des développeurs SDK pour Windows* OS pour plus d’informations sur la liaison des enclaves avec des bibliothèques.

Dans la section Linking Enclave with Libraries (Liaison de l’enclave avec les bibliothèques) :

« Une DLL d’enclave ne doit pas dépendent d’une bibliothèque reliée dynamiquement de quelque manière que ce soit... Le processus de signature de l’image enclave échoue si le fichier de l’enclave présente des dépendances quelconques. Cela signifie qu’une enclave doit avoir une table IAT (Import Address Table) vide. »

Dans la section Bibliothèques de confiance :

« Ne lier l’enclave à aucune bibliothèque sans confiance, y compris les bibliothèques standard C/C++.. Cette action échouera le processus de signature de l’enclave ou provoquera un échec d’runtime en raison de l’utilisation d’instructions restreintes. »

Produits associés

Cet article concerne 1 produits

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.