Zum Hauptinhalt wechseln
Support-Wissensdatenbank

Aufgetretener Fehler "Die Enklave enthält eine Importtabelle", wenn die Intel® Software Guard Extensions (Intel® SGX) Enklaven-DLL unterzeichnet wird.

Inhaltstyp: Fehlermeldungen   |   Artikel-ID: 000057416   |   Letzte Überprüfung: 26.07.2021

Beschreibung

  • Es wurde versucht, eine Enklave mit einer statischen Bibliothek zu verknüpfen, die nicht in der Liste der vertrauenswürdigen Bibliotheken aufgeführt ist.
  • Der Enklavensignierungsschritt schlägt mit dem Fehler "Enklave enthält eine Importtabelle" fehl.

Lösung

Wenn Sie versuchen, eine Enklave mit einer dynamischen Bibliothek oder einer nicht vertrauenswürdigen Bibliothek zu verknüpfen, wird der Signaturvorgang fehlschlagen.

Verknüpfen Sie die Enklave mit vertrauenswürdigen, statischen Bibliotheken, die im Abschnitt Trusted Libraries im Intel® Software Guard Extensions (Intel® SGX) Developer Reference Guide für Windows* oder Linux* aufgeführt sind.

Anstatt die nicht vertrauenswürdige Bibliothek direkt aus der Enklave auf aufruft, entwickeln Sie Schnittstellenfunktionen in Ihrer nicht vertrauenswürdigen Anwendung, die auf die nicht vertrauenswürdige Bibliothek zugreifen.

Erstellen Sie dann OCALLs für die nicht vertrauenswürdigen Schnittstellenfunktionen. Die Enklave accessiert indirekt über OCALLs auf die Schnittstellenfunktionen in der nicht vertrauenswürdigen Anwendung.

Weitere Informationen

Weitere Informationen zum Verknüpfen von Enklaven mit Bibliotheken finden Sie unter Intel® Software Guard Extensions SDK Developer Reference for Windows* OS.

Im Abschnitt Verknüpfungs-Enklave mit Bibliotheken:

"Eine Enklaven-DLL darf in keinerlei Weise von einer dynamisch verknüpften Bibliothek abhängen ... Die Enklave-Image-Signatur wird fehlschlagen, wenn die Enklave-Datei irgendwelche nicht gehärteten Abhängigkeiten aufweist. Das bedeutet, dass eine Enklave über einen leeren IAT (Import Address Table) verfügen muss."

Im Bereich Trusted Libraries:

"Verknüpfen Sie die Enklave nicht mit einer nicht vertrauenswürdigen Bibliothek, einschließlich C/C++ Standardbibliotheken. Bei dieser Aktion wird entweder der Enklavensignierungsvorgang fehlschlagen oder aufgrund der Verwendung eingeschränkter Anweisungen ein Laufzeitfehler verursachen."

Disclaimer / Rechtliche Hinweise

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.