Certificate
Prior to EINIT, each enclave must be signed by the enclave author by issuing a certificate for it. Intel SGX supports only 3072-bit RSA as a signing algorithm, with the public exponent always set to 3. It is the enclave author's responsibility to store the corresponding private key securely, for example in a hardware security module. In addition, the enclave author must be whitelisted by Intel in a production environment and will be verified by EINIT. These certificates are called SIGSTRUCT and include the MRENCLAVE, an enclave product ID, the security version number (SVN), the enclave attributes in the SECS, and a vendor field. The product ID is used to identify the software version of an enclave, and the security version number is incremented when a security update is released. Secrets of the same enclave can only be migrated from enclaves with a lower security number to enclaves with a higher security number (enclave-to-enclave secret migration is not required). An enclave's SECS also contains a value called MRSIGNER, which is the SHA2-256 hash of the enclave's author's public key used to verify certificates. This assigns the enclaves to the enclave author and is synonymous with the author's identity. If a certificate does not exist when EINIT is invoked, EINIT will fail.
Last updated