Skip to content

Microsoft Azure Attestation is a solution for attesting Trusted Execution Environments (TEEs)

License

Notifications You must be signed in to change notification settings

Azure-Samples/microsoft-azure-attestation

Repository files navigation

page_type languages products description
sample
c
csharp
azure
Learn how to perform Intel® SGX Attestation using Microsoft Azure Attestation

Sample code for Intel® SGX Attestation using Microsoft Azure Attestation

Intel® SGX Attestation sample code demonstrates how to generate a quote from an SGX enclave using Open Enclave SDK / Intel SDK and then get it validated by Microsoft Azure Attestation. The "enclave held data" for the quote is populated with public key component that's held within the enclave.

The components used in the sample code are outlined in the following diagram: SGX Attestation Overview Diagram

The flow is:

  1. Build an SGX enclave
  2. Launch an SGX enclave and get SGX quote
  3. Persist SGX quote and Enclave Held Data (EHD) to JSON file
  4. Call Azure Attestation for validation
  5. Output validation results

See code sample to perform SGX attestation using Open Enclave SDK

See code sample to perform SGX attestation using Intel SDK

Sample code to manage trusted signing certificates for Isolated providers

The Microsoft Azure Attestation service (MAA) allows users to manage their own attestation provider instance. Furthermore, MAA enables users to operate their instance in Isolated mode. This means:

  • all updates to attestation policy must be authorized by signing the request with a user managed private key
  • all updates to the set of trusted signing keys must be authorized by signing the request with a user managed private key

The user must manage an X509 certificate for each private key. Additionally, to share a signed request with the MAA service, the user must create a specific JWT format as defined in the MAA documentation here. The JWT format is described in great detail in RFC 7519.

See a code sample to manage trusted signing certificates and keys for Isolated providers here

Customer code samples leveraging Azure Attestation