Zwei Methoden zur Bestimmung der maximalen Enklavengröße.
In einer Cloud-Umgebung ist es nicht möglich, den Processor Reserved Memory (PRM), der den Enclave Page Cache (EPC) umfasst, im BIOS zu überprüfen.
Das Intel® Software Guard Extensions SDK (Intel® SGX) kann nicht verwendet werden, um den verfügbaren Speicher für einen Enklaven zu finden.
Das Intel® Software Guard Extensions (Intel® SGX) SDK bietet keine Möglichkeit, die maximale Enklavengröße zu finden. Mit dem Intel® Software Guard Extensions (Intel® SGX) SDK können Sie die Enklavengröße in einer Anwendung mithilfe der Enklaven-Konfigurationsdatei festlegen.
Es gibt zwei Methoden zur Meldung der Intel® Software Guard Extensions (Intel® SGX) Funktionen eines Prozessors. Beide Optionen melden die MaxEnklavengröße, die die virtuelle maximale Enklavengröße ist. Die tatsächliche maximale Enklavengröße wird von den Betriebssystem- oder Speicherbeschränkungen bestimmt.
Option 1
Führen Sie auf einem Linux* System die CPUID in einem Terminal aus:
$ cpuid | grep MaxEnclaveSize
Option 2
Verwenden Sie test_sgx.c:
- Gehen Sie zum SGX Hardware Github und laden Sie die Datei test_sgx.c herunter oder klonen Sie das Repository.
- Kompilieren und laufen test_sgx.c entsprechend diesen Anweisungen:
$ gcc test-sgx.c -o test-sgx
$ ./test-sgx
Erklärung von MaxEnclaveSize
Wenn MaxEnclaveSize 0ist, ist SGX auf der Plattform nicht aktiviert.
Wenn SGX aktiviert ist, ist die am häufigsten ausgegebene Ausgabe:
MaxEnclaveSize_Not64: 1f
MaxEnclaveSize_64: 24
- MaxEnclaveSize_Not64: die maximale unterstützte Enklavengröße ist 2^(EDX[7:0]) Byte, wenn sich der 64-Bit-Modus nicht befindet
- MaxEnclaveSize_64: Die maximale unterstützte Enklavengröße beträgt 2^(EDX[15:8]) Byte beim Betrieb im 64-Bit-Modus.
Die maximale virtuelle Größe der Enklave ist 2^(0x1f) für 32-Bit und 2^(0x24) für 64-Bit-Enklaven.
Beziehen Sie sich auf die Werte, die vom CPUID-Aufruf in Abschnitt 37.7.2, Tabelle 37-6 des IA Software Developer Manual Vol 3d Part 4 zurückgegeben werden.