Ir al contenido principal
Base de conocimientos de asistencia

¿El SDK de Intel® Software Guard Extensions (Intel® SGX) proporciona una forma de determinar el tamaño máximo de enclave?

Tipo de contenido: Información y documentación sobre productos   |   ID del artículo: 000089548   |   Última revisión: 05/08/2022

Descripción

En un entorno de nube, no es posible comprobar la memoria reservada para procesadores (PRM), que incluye la caché de páginas enclaves (EPC), en el BIOS.

No se puede utilizar el SDK de Intel® Software Guard Extensions (Intel® SGX) para encontrar la memoria disponible para un enclave.

Resolución

El SDK de Intel® Software Guard Extensions (Intel® SGX) no proporciona una manera de encontrar el tamaño máximo de enclave. El SDK de Intel® Software Guard Extensions (Intel® SGX) le permite establecer el tamaño de enclave en una aplicación utilizando el archivo de configuración de enclave.

Hay dos métodos para informar sobre las capacidades de Intel® Software Guard Extensions (Intel® SGX) disponibles en un procesador. Ambas opciones informan maxEnclaveIndex, que es el tamaño de enclave máximo virtual. El tamaño máximo real del enclave está determinado por los límites del sistema operativo o de la memoria.

Opción 1

En un sistema Linux*, ejecute el cpuid en un terminal:

$ cpuid | grep MaxEnclaveSize

Opción 2

Utilice test_sgx.c:

  1. Vaya al Github de hardware SGX y descargue el archivo test_sgx.c o clone el repositorio.
  2. Compilar y correr test_sgx.c de acuerdo con estos instrucciones:

    $ gcc test-sgx.c -o test-sgx
    $ ./test-sgx

Explicación de MaxEnclave Persuasión

Si MaxEnclaveSize está 0, SGX no está habilitado en la plataforma.

Si SGX está activado, el resultado más común es:

MaxEnclaveSize_Not64: 1f
MaxEnclaveSize_64: 24

  • MaxEnclaveSize_Not64: el tamaño máximo de enclave admitido es de 2^(EDX[7:0]) bytes cuando no está en modo de 64 bits
  • MaxEnclaveSize_64: el tamaño máximo de enclave compatible es de 2^(EDX[15:8]) bytes cuando opera en el modo de 64 bits.

El tamaño virtual máximo del enclave es de 2^(0x1f) para enclaves de 32 bits y 2^(0x24) para enclaves de 64 bits.

Más información

Consulte los valores devueltos por la llamada CPUID en la Sección 37.7.2, Tabla 37-6 del Manual para desarrolladores de software de IA Vol 3d Parte 4.

Productos relacionados

Este artículo se aplica a 1 productos.

Descargos de responsabilidad legales

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.