Jogcímkészletek

Az enklávék Microsoft Azure Attestation használatával történő igazolása során létrehozott jogcímek az alábbi kategóriákba sorolhatók:

  • Bejövő jogcímek: A Microsoft által létrehozott jogcímek Azure Attestation az igazolási bizonyítékok elemzése után, és a szabályzatszerzők felhasználhatják az engedélyezési szabályok egyéni szabályzatokban való meghatározására

  • Kimenő jogcímek: A Azure Attestation által létrehozott és az igazolási jogkivonatban szereplő jogcímek

  • Tulajdonságjogcímek: A Azure Attestation által kimenetként létrehozott jogcímek. Tartalmazza az igazolási jogkivonat tulajdonságait képviselő összes jogcímet, például a jelentés kódolását, a jelentés érvényességi időtartamát stb.

Bejövő jogcímek

SGX-igazolás

A szabályzatszerzők által az SGX-igazolási szabályzatokban definiálandó engedélyezési szabályokra vonatkozó jogcímek:

  • x-ms-sgx-is-debuggable: Logikai érték, amely azt jelzi, hogy engedélyezve van-e az enklávékeresés.

    Az SGX-enklávék betölthetők letiltott vagy engedélyezett hibakereséssel. Ha a jelző igaz értékre van állítva az enklávéban, lehetővé teszi az enklávékód hibakeresési funkcióit. Ez magában foglalja az enklávé memóriájának elérését is. Ezért javasoljuk, hogy a jelzőt csak fejlesztési célokra állítsa igaz értékre. Ha éles környezetben engedélyezve van, az SGX biztonsági garanciái nem maradnak meg.

    Azure Attestation felhasználók az igazolási szabályzat használatával ellenőrizhetik, hogy le van-e tiltva a hibakeresés az SGX-enklávéban. A szabályzatszabály hozzáadása után az igazolás sikertelen lesz, ha egy rosszindulatú felhasználó bekapcsolja a hibakeresési támogatást az enklávétartalomhoz való hozzáféréshez.

  • x-ms-sgx-product-id: Az SGX-enklávé termékazonosítóját jelző egész szám.

    Az enklávé szerzője termékazonosítót rendel az egyes enklávékhoz. A termékazonosító lehetővé teszi, hogy az enklávé szerzője az azonos MRSIGNER használatával aláírt enklávékat szegmentálhassa. Ha hozzáad egy érvényesítési szabályt az igazolási szabályzathoz, az ügyfelek ellenőrizhetik, hogy a kívánt enklávékat használják-e. Az igazolás sikertelen lesz, ha az enklávé termékazonosítója nem egyezik meg az enklávé szerzője által közzétett értékkel.

  • x-ms-sgx-mrsigner: Sztringérték, amely azonosítja az SGX-enklávé szerzőjét.

    Az MRSIGNER az enklávé szerzője nyilvános kulcsának kivonata, amely az enklávé bináris aláírásához használt titkos kulccsal van társítva. Az MRSIGNER igazolási szabályzaton keresztüli ellenőrzésével az ügyfelek ellenőrizhetik, hogy a megbízható bináris fájlok egy enklávéban futnak-e. Ha a szabályzatjogcím nem egyezik meg az enklávé szerzőjének MRSIGNER-ével, az azt jelenti, hogy az enklávé bináris fájlját nem egy megbízható forrás írta alá, és az igazolás meghiúsul.

    Ha egy enklávészerző biztonsági okokból inkább az MRSIGNER-t szeretné elforgatni, Azure Attestation szabályzatot frissíteni kell az új és a régi MRSIGNER értékek támogatásához a bináris fájlok frissítése előtt. Ellenkező esetben az engedélyezési ellenőrzések sikertelenek lesznek, ami igazolási hibákat eredményez.

    Az igazolási szabályzatot az alábbi formátumban kell frissíteni.

    Kulcsrotálás előtt

      version= 1.0;
      authorizationrules 
      {
      [ type=="x-ms-sgx-is-debuggable", value==false]&&
      [ type=="x-ms-sgx-mrsigner", value=="mrsigner1"] => permit(); 
      };
    

    Kulcsrotálás közben

      version= 1.0;
      authorizationrules 
      {
      [ type=="x-ms-sgx-is-debuggable", value==false]&&
      [ type=="x-ms-sgx-mrsigner", value=="mrsigner1"] => permit(); 
      [ type=="x-ms-sgx-is-debuggable", value==false ]&& 
      [ type=="x-ms-sgx-mrsigner", value=="mrsigner2"] => permit(); 
      };
    

    Kulcsrotálás után

      version= 1.0;
      authorizationrules 
      { 
      [ type=="x-ms-sgx-is-debuggable", value==false]&& 
      [ type=="x-ms-sgx-mrsigner", value=="mrsigner2"] => permit(); 
      };
    
  • x-ms-sgx-mrenclave: Sztringérték, amely azonosítja az enklávémemóriabe betöltött kódot és adatokat.

    Az MRENCLAVE az enklávémérések egyike, amely az enklávé bináris fájljainak ellenőrzésére használható. Ez az enklávéban futó kód kivonata. A mérés az enklávé bináris kódjának minden módosításával változik. Az MRENCLAVE igazolási szabályzaton keresztüli ellenőrzésével az ügyfelek ellenőrizhetik, hogy a kívánt bináris fájlok egy enklávéban futnak-e. Mivel azonban az MRENCLAVE várhatóan gyakran változik a meglévő kód bármilyen triviális módosításával, javasoljuk, hogy az igazolási szabályzatban az MRSIGNER-ellenőrzéssel ellenőrizze az enklávé bináris fájlokat.

  • x-ms-sgx-svn: Egész szám, amely az SGX-enklávé biztonsági verziójának számát jelzi

    Az enklávé szerzője egy biztonsági verziószámot (SVN) rendel az SGX-enklávé minden verziójához. Ha biztonsági problémát észlel az enklávékódban, az enklávé szerzője növeli az SVN-értéket a biztonságirés-javítás után. A nem biztonságos enklávé kóddal való interakció megakadályozása érdekében az ügyfelek érvényesítési szabályt adhatnak hozzá az igazolási szabályzathoz. Ha az enklávékód SVN-je nem egyezik meg az enklávé szerzője által javasolt verzióval, az igazolás sikertelen lesz.

Ezek a jogcímek elavultnak minősülnek, de teljes mértékben támogatottak, és a jövőben is szerepelni fognak. Javasoljuk, hogy a nem elavult jogcímneveket használja:

Elavult jogcím Javasolt jogcím
$is hibakereső x-ms-sgx-is-debuggable
$product-id x-ms-sgx-product-id
$sgx-mrsigner x-ms-sgx-mrsigner
$sgx-mrenclave x-ms-sgx-mrenclave
$svn x-ms-sgx-svn

TPM-igazolás

A szabályzatszerzők által a TPM-igazolási szabályzatokban definiálandó engedélyezési szabályokra vonatkozó jogcímek:

  • aikValidated: Információt tartalmazó logikai érték, ha az igazolási identitáskulcs (AIK) tanúsítványát ellenőrizték vagy nem
  • aikPubHash: A base64(SHA256(AIK nyilvános kulcs DER formátumban))
  • tpmVersion: A Platformmegbízhatósági modul (TPM) főverzióját tartalmazó egész számérték
  • secureBootEnabled: Logikai érték, amely jelzi, hogy engedélyezve van-e a biztonságos rendszerindítás
  • iommuEnabled: Logikai érték, amely jelzi, hogy engedélyezve van-e az input-output memóriakezelési egység (Iommu)
  • bootDebuggingDisabled: Logikai érték, amely jelzi, hogy a rendszerindítási hibakeresés le van-e tiltva
  • notSafeMode: Logikai érték, amely azt jelzi, hogy a Windows nem csökkentett módban fut-e
  • notWinPE: Logikai érték, amely azt jelzi, hogy a Windows nem WinPE módban fut-e
  • vbsEnabled: Logikai érték, amely azt jelzi, hogy a VBS engedélyezve van-e
  • vbsReportPresent: Logikai érték, amely azt jelzi, hogy a VBS enklávéjelentés elérhető-e

VBS-igazolás

A TPM igazolási szabályzat jogcímei mellett a szabályzatszerzők is használhatják ezeket a jogcímeket a VBS-igazolási szabályzat engedélyezési szabályainak meghatározásához:

  • enclaveAuthorId: Az enklávé author id Base64Url kódolású értékét tartalmazó karakterlánc-Az enklávé elsődleges moduljának szerzői azonosítója
  • enclaveImageId: Az enklávé képazonosítójának Base64Url kódolású értékét tartalmazó karakterlánc-Az enklávé elsődleges moduljának képazonosítója
  • enclaveOwnerId: Az enklávé tulajdonosazonosítójának Base64Url kódolású értékét tartalmazó karakterlánc-Az enklávé tulajdonosának azonosítója
  • enclaveFamilyId: Az enklávécsalád-azonosító Base64Url kódolású értékét tartalmazó sztringérték. Az enklávé elsődleges moduljának családi azonosítója
  • enclaveSvn: Az enklávé elsődleges moduljának biztonsági verziószámát tartalmazó egész szám
  • enclavePlatformSvn: Az enklávét üzemeltető platform biztonsági verziószámát tartalmazó egész szám
  • enclaveFlags: Az enclaveFlags jogcím egy egész szám, amely az enklávé futásidejű szabályzatát leíró jelzőket tartalmaz

Kimenő jogcímek

Az összes igazolási típus esetében gyakori

Azure Attestation a következő jogcímeket tartalmazza az igazolási jogkivonatban az összes igazolási típushoz:

  • x-ms-ver: JWT-sémaverzió (várhatóan "1.0")
  • x-ms-attestation-type: Az igazolás típusát jelölő sztringérték
  • x-ms-policy-hash: A BASE64URL(SHA256(UTF8(BASE64URL(UTF8(szabályzatszöveg))-ként kiszámított Azure Attestation kiértékelési szabályzat kivonata
  • x-ms-policy-signer: JSON-objektum egy "jwk" taggal, amely az ügyfél által a szabályzat aláírásához használt kulcsot képviseli. Ez akkor érvényes, ha az ügyfél aláírt szabályzatot tölt fel
  • x-ms-runtime: Az igazolt környezetben definiált és létrehozott "jogcímeket" tartalmazó JSON-objektum. Ez az "enklávéban tárolt adatok" fogalmának specializációja, ahol az "enklávéban tárolt adatok" kifejezetten UTF-8 kódolású, jól formázott JSON-ként vannak formázva
  • x-ms-inittime: A "jogcímeket" tartalmazó JSON-objektum, amely az igazolt környezet inicializálásakor van definiálva és ellenőrizve

Az alábbi jogcímneveket az IETF JWT specifikációja használja

  • "jti" (JWT-azonosító) Jogcím – A JWT egyedi azonosítója
  • "iss" (kiállító) jogcím – A JWT-t kibocsátó tag
  • "iat" (kibocsátás időpontja) igénylés – A JWT kiállításának időpontja:
  • "exp" (Lejárati idő) Jogcím – Lejárati idő, amely után a JWT nem fogadható el feldolgozásra
  • "nbf" (Not Before) Claim – Nem olyan időpont előtt, amely előtt a JWT nem fogadható el feldolgozásra

Ezeket a jogcímneveket az IETF EAT piszkozatspecifikációja használja:

  • "Nonce claim" (nonce) – Egy ügyfél által megadott nem kötelező érték nem lefordított közvetlen másolata

Az alábbi jogcímek elavultnak minősülnek, de teljes mértékben támogatottak, és a jövőben is szerepelni fognak. Javasoljuk, hogy a nem elavult jogcímneveket használja.

Elavult jogcím Javasolt jogcím
Ver x-ms-ver
Póló x-ms-attestation-type
policy_hash x-ms-policy-hash
maa-policyHash x-ms-policy-hash
policy_signer x-ms-policy-signer
rp_data nemce

SGX-igazolás

Ezeket a caim-okat az SGX-igazolási szolgáltatás hozza létre és tartalmazza az igazolási jogkivonatban:

  • x-ms-sgx-is-debuggable: Logikai érték, amely azt jelzi, hogy az enklávéban engedélyezve van-e a hibakeresés, vagy sem
  • x-ms-sgx-product-id: Az SGX-enklávé termékazonosító értéke
  • x-ms-sgx-mrsigner: az idézőjel "mrsigner" mezőjének hexadecimális kódolású értéke
  • x-ms-sgx-mrenclave: az idézőjel "mrenclave" mezőjének hexadecimális kódolású értéke
  • x-ms-sgx-svn: az idézőjelbe kódolt biztonsági verziószám
  • x-ms-sgx-ehd: BASE64URL(enklávéban tárolt adatok) formátumban tárolt enklávéban tárolt adatok
  • x-ms-sgx-collateral: Az igazolás végrehajtásához használt biztosítékot leíró JSON-objektum. Az x-ms-sgx-collateral jogcím értéke egy beágyazott JSON-objektum a következő kulcs/érték párokkal:
    • qeidcertshash: Az enklávé (QE) identitáskibocsátó tanúsítványainak SHA256-értéke
    • qeidcrlhash: A tanúsítványokat kiállító QE Identity CRL-listájának SHA256-értéke
    • qeidhash: A QE Identity-fedezet SHA256-értéke
    • quotehash: A kiértékelt ajánlat SHA256-értéke
    • tcbinfocertshash: A TCB Info kiállító tanúsítványainak SHA256-értéke
    • tcbinfocrlhash: A tanúsítványokat kibocsátó TCB-adatok CRL-listájának SHA256-értéke
    • tcbinfohash: A TCB Info-biztosíték SHA256 értéke
  • x-ms-sgx-report-data: SGX enklávé jelentés adatmezője (általában az x-ms-sgx-ehd SHA256 kivonata)

Ezek a jogcímek csak az Intel® Xeon® skálázható processzoralapú kiszolgálóplatformokhoz létrehozott igazolási jogkivonatban jelennek meg. A jogcímek nem jelennek meg, ha az SGX-enklávé nincs kulcsleválasztási és megosztási támogatással konfigurálva. A jogcímdefiníciók itt találhatók:

  • x-ms-sgx-config-id
  • x-ms-sgx-config-svn
  • x-ms-sgx-isv-extended-product-id
  • x-ms-sgx-isv-family-id

Ezek a jogcímek elavultnak minősülnek, de teljes mértékben támogatottak, és a jövőben is szerepelni fognak. Javasoljuk, hogy a nem elavult jogcímneveket használja:

Elavult jogcím Javasolt jogcím
$is hibakereső x-ms-sgx-is-debuggable
$product-id x-ms-sgx-product-id
$sgx-mrsigner x-ms-sgx-mrsigner
$sgx-mrenclave x-ms-sgx-mrenclave
$svn x-ms-sgx-svn
$maa-ehd x-ms-sgx-ehd
$aas-ehd x-ms-sgx-ehd
$maa-attestationcollateral x-ms-sgx-collateral

SEV-SNP-igazolás

A SevSnpVm igazolási típus a következő jogcímeket is támogatja:

  • x-ms-sevsnpvm-authorkeydigest: A szerző aláírókulcsának SHA384-kivonata
  • x-ms-sevsnpvm-bootloader-svn :AMD rendszertöltő biztonsági verziószáma (SVN)
  • x-ms-sevsnpvm-familyId: Gazdagépkompatibilitási réteg (HCL) családazonosító sztringje
  • x-ms-sevsnpvm-guestsvn: HCL biztonsági verziószám (SVN)
  • x-ms-sevsnpvm-hostdata: A gazdagép által a virtuális gép indításakor meghatározott tetszőleges adatok
  • x-ms-sevsnpvm-idkeydigest: Az azonosító aláíró kulcs SHA384-kivonata
  • x-ms-sevsnpvm-imageId: HCL-rendszerkép azonosítása
  • x-ms-sevsnpvm-is-debuggable: Logikai érték, amely azt jelzi, hogy engedélyezve van-e az AMD SEV-SNP hibakeresése
  • x-ms-sevsnpvm-launchmeasurement: Az elindított vendégkép mérése
  • x-ms-sevsnpvm-microcode-svn: AMD-mikrokód biztonsági verziószáma (SVN)
  • x-ms-sevsnpvm-migration-allowed: Logikai érték, amely azt jelzi, hogy az AMD SEV-SNP migrálási támogatása engedélyezve van-e
  • x-ms-sevsnpvm-reportdata: A HCL által a jelentésbe belefoglalandó adatok annak ellenőrzéséhez, hogy az átviteli kulcs és a virtuális gép konfigurációja helyes-e
  • x-ms-sevsnpvm-reportid: A vendég jelentésazonosítója
  • x-ms-sevsnpvm-smt-allowed: Logikai érték, amely azt jelzi, hogy az SMT engedélyezve van-e a gazdagépen
  • x-ms-sevsnpvm-snpfw-svn: AMD belső vezérlőprogram biztonsági verziójának száma (SVN)
  • x-ms-sevsnpvm-tee-svn: AMD megbízható végrehajtási környezet (TEE) biztonsági verziószáma (SVN)
  • x-ms-sevsnpvm-vmpl: A jelentést létrehozó VMPL (HCL esetén 0)

TPM- és VBS-igazolás

  • cnf (megerősítés): A "cnf" jogcím a birtoklási igazolási kulcs azonosítására szolgál. Az RFC 7800-as verziójában meghatározott megerősítő jogcím tartalmazza a JSON Web Key (JWK) objektumként (RFC 7517) jelölt igazolt enklávékulcs nyilvános részét
  • rp_data (függő entitás adatai): A függő entitásnak a kérelemben megadott, esetlegesen megadott adatai, amelyeket a függő entitás nemként használ fel a jelentés frissességének garantálásához. rp_data csak akkor lesz hozzáadva, ha rp_data

Tulajdonságjogcímek

TPM- és VBS-igazolás

  • report_validity_in_minutes: A jogkivonat érvényességének időtartamát jelző egész szám.
    • Alapértelmezett érték(idő): Egy nap perc alatt.
    • Maximális érték(idő): Egy év perc alatt.
  • omit_x5c: Logikai jogcím, amely azt jelzi, hogy Azure Attestation ki kell-e hagynia a szolgáltatáshitelesítés igazolásához használt tanúsítványt. Ha igaz, a rendszer hozzáadja az x5t értéket az igazolási jogkivonathoz. Ha false(default), az x5c hozzá lesz adva az igazolási jogkivonathoz.

Következő lépések