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