Dela via


Attesteringsprincipversion 1.0

Instansägare kan använda Azure Attestation-principen för att definiera vad som måste verifieras under attesteringsflödet. Den här artikeln beskriver hur attesteringstjänsten och principmotorn fungerar. Varje attesteringstyp har en egen attesteringsprincip. Grammatik och bearbetning som stöds är i stort sett desamma.

Principversion 1.0

Den lägsta versionen av principen som stöds av tjänsten är version 1.0.

Ett diagram som visar Azure Attestation med hjälp av principversion 1.0.

Attesteringstjänstens flöde är följande:

  • Plattformen skickar attesteringsbeviset i intygsanropet till attesteringstjänsten.
  • Attesteringstjänsten parsar bevisen och skapar en lista över anspråk som används i attesteringsutvärderingen. Dessa anspråk kategoriseras logiskt som inkommande anspråksuppsättningar.
  • Den uppladdade attesteringsprincipen används för att utvärdera bevisen över de regler som skapats i attesteringsprincipen.

Principversion 1.0 har tre segment:

  • version: Versionen är versionsnumret för grammatiken som följs.
  • authorizationrules: En samling anspråksregler som kontrolleras först för att avgöra om attesteringen ska fortsätta att utfärda regler. Använd det här avsnittet om du vill filtrera bort anrop som inte kräver att utfärdandereglerna tillämpas. Inga anspråk kan utfärdas från det här avsnittet till svarstoken. Dessa regler kan användas för att misslyckas med attestering.
  • utfärdanderegler: En samling anspråksregler som utvärderas för att lägga till information i attesteringsresultatet enligt definitionen i principen. Anspråksreglerna gäller i den ordning de definieras. De är också valfria. Dessa regler kan användas för att lägga till i den utgående anspråksuppsättningen och svarstoken. Dessa regler kan inte användas för att misslyckas med attesteringen.

Följande anspråk stöds av principversion 1.0 som en del av inkommande anspråk.

TPM-attestering

Använd dessa anspråk för att definiera auktoriseringsregler i en TPM-attesteringsprincip (Trusted Platform Module):

  • aikValidated: Det booleska värdet som innehåller information om attesteringsidentitetsnyckelcertifikatet (AIK) har verifierats eller inte.
  • aikPubHash: Strängen som innehåller den offentliga AIK-nyckeln (SHA256) base64 (SHA256) i DER-format.
  • tpmVersion: Heltalsvärdet som innehåller TPM-huvudversionen.
  • secureBootEnabled: Det booleska värdet som anger om säker start är aktiverat.
  • iommuEnabled:Det booleska värdet som anger om minneshanteringsenheten för indata är aktiverad.
  • bootDebuggingDisabled: Det booleska värdet som anger om startfelsökning är inaktiverat.
  • notSafeMode: Det booleska värdet som anger om Windows inte körs i felsäkert läge.
  • notWinPE: Det booleska värdet som anger om Windows inte körs i WinPE-läge.
  • vbsEnabled: Det booleska värdet som anger om virtualiseringsbaserad säkerhet (VBS) är aktiverat.
  • vbsReportPresent: Det booleska värdet som anger om en VBS-enklavrapport är tillgänglig.

VBS-attestering

Använd följande anspråk för att definiera auktoriseringsregler i en VBS-attesteringsprincip:

  • enclaveAuthorId: Strängvärdet som innehåller base64Url-kodat värde för enklavens redigerings-ID. Det är författarens identifierare för den primära modulen för enklaven.
  • enclaveImageId: Strängvärdet som innehåller base64Url-kodat värde för enklavavbildningens ID. Det är bildidentifieraren för den primära modulen för enklaven.
  • enclaveOwnerId: Strängvärdet som innehåller base64Url-kodat värde för enklavens ägar-ID. Det är identifieraren för ägaren för enklaven.
  • enclaveFamilyId: Strängvärdet som innehåller base64Url-kodat värde för enklavens familje-ID. Det är familjeidentifieraren för den primära modulen för enklaven.
  • enclaveSvn: Heltalsvärdet som innehåller säkerhetsversionsnumret för den primära modulen för enklaven.
  • enclavePlatformSvn: Heltalsvärdet som innehåller säkerhetsversionsnumret för plattformen som är värd för enklaven.
  • enclaveFlags: EnclaveFlags-anspråket är ett heltalsvärde som innehåller flaggor som beskriver körningsprincipen för enklaven.

Exempelprinciper för olika attesteringstyper

Exempelprincip för TPM:

version=1.0;

authorizationrules { 
    => permit();
};


issuancerules
{
[type=="aikValidated", value==true]&& 
[type=="secureBootEnabled", value==true] &&
[type=="bootDebuggingDisabled", value==true] && 
[type=="notSafeMode", value==true] => issue(type="PlatformAttested", value=true);
};