Ursache:
Es wird erwartet, dass die Initialisierung großer Speichermengen für eine Enklave lange dauert. Die Initialisierung und Erweiterung des Speichers zum Enklaven-Page-Cache (EPC) für eine Enklave ist viel komplexer als eine einfache Speicherzuweisung in einer regulären Anwendung. Bevor dem EPC ein Speicherblock hinzugefügt wird, muss er mehrere Sicherheitsüberprüfungen durchlaufen, einschließlich der Messung mit einer 256-Bit SHA-2 sicheren Hash-Funktion.
Lesen Sie die Abschnitte 5.1, 5.3, 5.6 in SGX Explained und die Anweisungen zu EADD und EEXTEND in Intel SGX Enklaven-Lebenszyklus.
Minderung:
Wenn der Prozessor Intel® Software Guard Extensions (Intel® SGX) SGX2 unterstützt, in der Enklaven-Konfigurationsdatei:
Die Menge, die beim Start der Enklave vollständig initialisiert werden muss (d. h. EADD der Seite und EEXTEND it) ist die Menge, die beim Start der Enklave benötigt wird. Mit einer minimalen Initialisierungsgröße würde es schneller gehen, und der Rest des Speichers würde nur unter Verwendung der SGX2-Anweisungen hinzugefügt werden, wenn der Enklave während der Laufzeit über Malloc zugewiesen wird.