Basisbegrippen

Hieronder vindt u enkele basisbegrippen met betrekking tot Microsoft Azure Attestation.

JSON Web Token (JWT)

JSON Web Token (JWT) is een open standaard RFC7519-methode voor het veilig verzenden van informatie tussen partijen als een JavaScript Object Notation (JSON)-object. Deze informatie kan worden geverifieerd en vertrouwd omdat deze digitaal is ondertekend. JWTs kunnen worden ondertekend met behulp van een geheim of een openbaar/persoonlijk sleutelpaar.

JSON Web Key (JWK)

JSON Web Key (JWK) is een JSON-gegevensstructuur die een cryptografische sleutel vertegenwoordigt. Deze specificatie definieert ook een JWK Set JSON-gegevensstructuur die een set JWK’s vertegenwoordigt.

Attestation-provider

Attestation-provider behoort tot de Azure-resourceprovider met de naam Microsoft.Attestation. De resourceprovider is een service-eindpunt dat Azure Attestation REST-contract voorziet en wordt geïmplementeerd met behulp van Azure Resource Manager. Elke Attestation-provider respecteert een specifiek, detecteerbaar beleid. Attestation-providers worden gemaakt met een standaardbeleid voor elk type Attestation (houd er rekening mee dat VBS-enclave geen standaardbeleid heeft). Zie Voorbeelden van een Attestation-beleid voor meer informatie over het standaardbeleid voor SGX.

Regionale gedeelde provider

Azure Attestation biedt een regionale gedeelde provider in elke beschikbare regio. Klanten kunnen ervoor kiezen om de regionale gedeelde provider te gebruiken voor attestation of hun eigen providers te maken met aangepast beleid. De gedeelde providers zijn toegankelijk voor elke Azure AD-gebruiker en het beleid dat daaraan is gekoppeld, kan niet worden gewijzigd.

Regio Attestation-URI
VS - oost https://sharedeus.eus.attest.azure.net
VS - west https://sharedwus.wus.attest.azure.net
Verenigd Koninkrijk Zuid https://shareduks.uks.attest.azure.net
Verenigd Koninkrijk West https://sharedukw.ukw.attest.azure.net
Canada - oost https://sharedcae.cae.attest.azure.net
Canada - midden https://sharedcac.cac.attest.azure.net
Europa - noord https://sharedneu.neu.attest.azure.net
Europa -west https://sharedweu.weu.attest.azure.net
US - oost 2 https://sharedeus2.eus2.attest.azure.net
Central US https://sharedcus.cus.attest.azure.net
Azië - zuidoost https://sharedsasia.sasia.attest.azure.net
VS - noord-centraal https://sharedncus.ncus.attest.azure.net
VS - zuid-centraal https://sharedscus.scus.attest.azure.net
VS (overheid) - Virginia https://sharedugv.ugv.attest.azure.us
VS (overheid) - Arizona https://shareduga.uga.attest.azure.us

Attestation-aanvraag

Attestation-aanvraag is een geserialiseerd JSON-object dat is verzonden door de client-toepassing naar de Attestation-provider. Het object Request voor SGX enclave heeft twee eigenschappen:

  • "Quote" - de waarde van de eigenschap "quote" is een tekenreeks met een Base64URL-gecodeerde representatie van de Attestation-offerte
  • "EnclaveHeldData" - de waarde van de eigenschap "EnclaveHeldData" is een tekenreeks met een Base64URL-gecodeerde representatie van de enclave-gegevens.

Azure Attestation valideert de opgegeven "Prijsopgave" en zorgt er vervolgens voor dat de SHA256-hash van de opgegeven enclavegegevens wordt weergegeven in de eerste 32 bytes van het veld reportData in de prijsopgave.

Attestation-beleid

Attestation-beleid wordt gebruikt voor het verwerken van het Attestation-bewijs en kan worden geconfigureerd door klanten. De kern van Azure Attestation is een beleidsengine die claims verwerkt die het bewijs vormen. Beleid wordt gebruikt om te bepalen of Azure Attestation een Attestation-token afgeeft op basis van een bewijs (of niet) en de Attester ondersteund (of niet). Als gevolg hiervan is het niet mogelijk om alle beleidsregels door te geven, waardoor er geen JWT-token wordt uitgegeven.

Als het standaardbeleid van de Attestation-provider niet voldoet aan de behoeften, kunnen klanten aangepaste beleidsregels maken in een van de regio's die worden ondersteund door Azure Attestation. Beleidsbeheer is een belangrijke functie de aan klanten door Azure Attestation wordt geleverd. Beleidsregels zijn specifiek voor het type Attestation en kunnen worden gebruikt om enclaves te identificeren of claims toe te voegen aan het uitvoertoken of claims te wijzigen in een uitvoertoken.

Zie voorbeelden van een Attestation-beleid voor beleidsvoorbeelden.

Voordelen van beleidsondertekening

Een Attestation-beleid is wat uiteindelijk bepaalt of een Attestation-token wordt uitgegeven door Azure Attestation. Beleid bepaalt ook welke claims moeten worden gegenereerd in het Attestation-token. Het is daarom van groot belang dat het beleid dat door de service wordt geëvalueerd, in feite het beleid is dat door de beheerder is geschreven, waarmee niet is geknoeid en dat niet is gewijzigd door externe entiteiten.

Het vertrouwensmodel definieert het autorisatiemodel van de Attestation-provider om beleid te definiëren en bij te werken. Twee modellen worden ondersteund - één op basis van Azure AD-autorisatie en één op basis van het bezit van door de klant beheerde cryptografische sleutels (aangeduid als geïsoleerd model). Met een geïsoleerd model wordt Azure Attestation ingeschakeld om ervoor te zorgen dat het door de klant ingediende beleid niet is gewijzigd.

In geïsoleerd model maakt de beheerder een Attestation-provider die een set vertrouwde ondertekenende X.509-certificaten in een bestand opgeeft. De beheerder kan vervolgens een ondertekend beleid toevoegen aan de Attestation-provider. Tijdens de verwerking van de Attestation-aanvraag valideert Azure Attestation de handtekening van het beleid met behulp van de openbare sleutel die wordt vertegenwoordigd door de parameter "jwk" of "x5c" in de koptekst. Azure Attestation controleert ook of de openbare sleutel in de aanvraag-header zich in de lijst met vertrouwde handtekeningcertificaten bevindt die zijn gekoppeld aan de Attestation-provider. Op deze manier kan de Relying Party (Azure Attestation) een beleid vertrouwen dat is ondertekend met de X. 509-certificaten die het kent.

Zie Voorbeelden van certificaat beleidsondertekenaar voor voorbeelden.

Attestation-token

Azure Attestation-reactie is een JSON-tekenreeks waarvan de waarde JWT bevat. De claims worden door Azure Attestation ingepakt en er wordt een ondertekende JWT gegenereerd. De ondertekeningsbewerking wordt uitgevoerd met behulp van een zelfondertekend certificaat met de objectnaam die overeenkomt met het AttestUri-element van de Attestation-provider.

De Get OpenID Connect Metadata API Get retourneert een OpenID-configuratieantwoord zoals opgegeven door het OpenID Connect Discovery-Protocol. De API haalt metagegevens op over de handtekeningcertificaten die worden gebruikt door Azure Attestation.

Voorbeeld van een JWT-generatie voor een SGX-enclave:

{
  "alg": "RS256",
  "jku": "https://tradewinds.us.attest.azure.net/certs",
  "kid": <self signed certificate reference to perform signature verification of attestation token,
  "typ": "JWT"
}.{
  "aas-ehd": <input enclave held data>,
  "exp": 1568187398,
  "iat": 1568158598,
  "is-debuggable": false,
  "iss": "https://tradewinds.us.attest.azure.net",
  "maa-attestationcollateral": 
    {
      "qeidcertshash": <SHA256 value of QE Identity issuing certs>,
      "qeidcrlhash": <SHA256 value of QE Identity issuing certs CRL list>,
      "qeidhash": <SHA256 value of the QE Identity collateral>,
      "quotehash": <SHA256 value of the evaluated quote>, 
      "tcbinfocertshash": <SHA256 value of the TCB Info issuing certs>, 
      "tcbinfocrlhash": <SHA256 value of the TCB Info issuing certs CRL list>, 
      "tcbinfohash": <SHA256 value of the TCB Info collateral>
     },
  "maa-ehd": <input enclave held data>,
  "nbf": 1568158598,
  "product-id": 4639,
  "sgx-mrenclave": <SGX enclave mrenclave value>,
  "sgx-mrsigner": <SGX enclave msrigner value>,
  "svn": 0,
  "tee": "sgx"
  "x-ms-attestation-type": "sgx", 
  "x-ms-policy-hash": <>,
  "x-ms-sgx-collateral": 
    {
      "qeidcertshash": <SHA256 value of QE Identity issuing certs>,
      "qeidcrlhash": <SHA256 value of QE Identity issuing certs CRL list>,
      "qeidhash": <SHA256 value of the QE Identity collateral>,
      "quotehash": <SHA256 value of the evaluated quote>, 
      "tcbinfocertshash": <SHA256 value of the TCB Info issuing certs>, 
      "tcbinfocrlhash": <SHA256 value of the TCB Info issuing certs CRL list>, 
      "tcbinfohash": <SHA256 value of the TCB Info collateral>
     },
  "x-ms-sgx-ehd": <>, 
  "x-ms-sgx-is-debuggable": true,
  "x-ms-sgx-mrenclave": <SGX enclave mrenclave value>,
  "x-ms-sgx-mrsigner": <SGX enclave msrigner value>, 
  "x-ms-sgx-product-id": 1, 
  "x-ms-sgx-svn": 1,
  "x-ms-ver": "1.0",
  "x-ms-sgx-config-id": "000102030405060708090a0b0c0d8f99000102030405060708090a0b0c860e9a000102030405060708090a0b7d0d0e9b000102030405060708090a740c0d0e9c",
  "x-ms-sgx-config-svn": 3451,
  "x-ms-sgx-isv-extended-product-id": "8765432143211234abcdabcdef123456",
  "x-ms-sgx-isv-family-id": "1234567812344321abcd1234567890ab"
}.[Signature]

Sommige van de hierboven gebruikte claims worden beschouwd als afgeschaft, maar worden volledig ondersteund. Het wordt aanbevolen dat alle toekomstige code en hulpprogramma's de niet-afgeschafte claimnamen gebruiken. Zie Claims die zijn uitgegeven door Azure Attestation voor meer informatie.

De onderstaande claims worden alleen weergegeven in het attestation-token dat is gegenereerd voor Intel® Xeon® Schaalbare serverplatforms op basis van een processor. De claims worden niet weergegeven als de SGX-enclave niet is geconfigureerd met ondersteuning voor sleutelscheiding en delen

x-ms-sgx-config-id

x-ms-sgx-config-svn

x-ms-sgx-isv-extended-product-id

x-ms-sgx-isv-family-id

Versleuteling van data-at-rest

Om klantgegevens te beschermen, blijven de gegevens van Azure Attestation in Azure Storage. Azure Storage biedt versleuteling van data-at-rest die naar datacentra worden geschreven, en ontsleutelt deze voor klanten om toegang te krijgen. Deze versleuteling vindt plaats met behulp van een door Microsoft beheerde versleutelingssleutel.

Naast het beveiligen van gegevens in Azure Storage, maakt Azure Attestation ook gebruik van Azure Disk Encryption (ADE) voor het versleutelen van service-VM's. Voor Azure Attestation dat wordt uitgevoerd in een enclave in Azure-omgevingen met vertrouwelijke computing, wordt de ADE-extensie momenteel niet ondersteund. In dergelijke scenario's wordt het wisselbestand uitgeschakeld om te voorkomen dat gegevens worden opgeslagen in het geheugen.

Er worden geen klantgegevens bewaard op de lokale harde schijven van het Azure Attestation-exemplaar.

Volgende stappen