Intel SGX

Reference1 2

Interactions

Reference: Overview of Intel SGX, part2

ECALL: Enclave Call. Application invokes a pre-defined function inside the enclave.

  • can pass input parameters and pointers to shared memory within the application.

OCALL: Outside Call. Enclave invokes a pre-defined function in the application.

  • An OCALL cannot share enclave memory with the application;
  • It must copy the parameters into the application memory before the OCALL;

AEX: Asynchronous Exit. Exit an enclave because of an interruption or an exception.

  • Transfer control from the enclave to the application from arbitrary points inside the enclave.

Architectural Enclaves

References: Communication between Architectural and Application Enclaves

Architectural Enclaves:

  • Launch Enclave (LE)
    • Receives request from other enclaves wishing to launch on the platform;
    • Examines requesting enclave’s signature and identity, to verify whether the requesting enclave is valid or not;
    • Generates the EINITTOKEN from its private Launch Key;
    • Assigns EINITTOKEN to the requesting enclaves;
  • Provisioning Enclave (PvE)
    • Retrieves the Attestation Key from Intel Provisioning Service;
    • Has to use the certificate provided by Provisioning Certificate Enclave below;
  • Provisioning Certificate Enclave (PcE)
    • Is responsible for signing the processor certificate;
    • Signs the certificate using its private Provisioning Key;
  • Quoting Enclave (QE)
    • Is responsible for providing trust in the enclave identity and its execution environment during remote attestation process;
    • Uses the Attestation Key offered by Provisioning Enclave;
    • Turns a REPORT (locally verifiable) into a QUOTE (remotely verifiable)
  • Platform Service Enclaves (PSE)
    • Are responsible for offering other enclaves various trusted services using Management Engine;
    • Monotonic counters;
    • Truste time;
Created Jun 27, 2019 // Last Updated Dec 19, 2020

If you could revise
the fundmental principles of
computer system design
to improve security...

... what would you change?