Grundläggande begrepp

Nedan följer några grundläggande begrepp som rör Microsoft Azure-attestering.

JSON-webbtoken (JWT)

JSON Web Token (JWT) är en öppen standardmetod RFC7519 för säker överföring av information mellan parter som ett JSON-objekt (JavaScript Object Notation). Den här informationen kan verifieras och vara betrodd eftersom den är digitalt signerad. JWT:er kan signeras med hjälp av en hemlighet eller ett offentligt/privat nyckelpar.

JSON-webbnyckel (JWK)

JSON Web Key (JWK) är en JSON-datastruktur som representerar en kryptografisk nyckel. Den här specifikationen definierar också en JWK Set JSON-datastruktur som representerar en uppsättning JWK:er.

Attesteringsprovider

Attesteringsprovidern tillhör Azure-resursprovidern Microsoft.Attestation. Resursprovidern är en tjänstslutpunkt som tillhandahåller AZURE Attestation REST-kontrakt och distribueras med Azure Resource Manager. Varje attesteringsprovider respekterar en specifik, identifierbar princip. Attesteringsprovidrar skapas med en standardprincip för varje attesteringstyp (observera att VBS-enklaven inte har någon standardprincip). Mer information om standardprincipen för SGX finns i exempel på en attesteringsprincip .

Begäran om attestering

Attesteringsbegäran är ett serialiserat JSON-objekt som skickas av klientprogrammet till attesteringsprovidern. Begärandeobjektet för SGX-enklaven har två egenskaper:

  • "Quote" – värdet för egenskapen "Quote" är en sträng som innehåller en Base64URL-kodad representation av attesteringsofferten
  • "EnclaveHeldData" – värdet för egenskapen "EnclaveHeldData" är en sträng som innehåller en Base64URL-kodad representation av enklavens data.

Azure Attestation verifierar den angivna "Offerten" och ser sedan till att SHA256-hashen för angivna enklaverhållna data uttrycks i de första 32 byteen i fältet reportData i offerten.

Attesteringsprincip

Attesteringsprincipen används för att bearbeta attesteringsbeviset och kan konfigureras av kunderna. Kärnan i Azure Attestation är en principmotor som bearbetar anspråk som utgör bevisen. Principer används för att avgöra om Azure Attestation ska utfärda en attesteringstoken baserat på bevis (eller inte) och därmed godkänna Attester (eller inte). Om alla principer inte godkänns resulterar det därför i att ingen JWT-token utfärdas.

Om standardprincipen i attesteringsprovidern inte uppfyller behoven kan kunderna skapa anpassade principer i någon av de regioner som stöds av Azure Attestation. Principhantering är en viktig funktion som tillhandahålls kunder av Azure Attestation. Principer kommer att vara attesteringstypspecifika och kan användas för att identifiera enklaver eller lägga till anspråk i utdatatoken eller ändra anspråk i en utdatatoken.

Se exempel på en attesteringsprincip

Fördelar med principsignering

En attesteringsprincip är det som i slutändan avgör om en attesteringstoken kommer att utfärdas av Azure Attestation. Principen avgör också vilka anspråk som ska genereras i attesteringstoken. Det är därför av yttersta vikt att principen som utvärderas av tjänsten i själva verket är den princip som skrivits av administratören och inte har manipulerats eller ändrats av externa entiteter.

Förtroendemodellen definierar auktoriseringsmodellen för attesteringsprovidern för att definiera och uppdatera principen. Två modeller stöds – en baserad på Microsoft Entra-auktorisering och en baserad på innehav av kundhanterade kryptografiska nycklar (kallas isolerad modell). Isolerad modell gör det möjligt för Azure Attestation att se till att principen som skickas till kunden inte manipuleras.

I en isolerad modell skapar administratören en attesteringsprovider som anger en uppsättning betrodda X.509-signeringscertifikat i en fil. Administratören kan sedan lägga till en signerad princip till attesteringsprovidern. När du bearbetar attesteringsbegäran verifierar Azure Attestation principens signatur med hjälp av den offentliga nyckeln som representeras av parametern "jwk" eller "x5c" i huvudet. Azure Attestation kontrollerar också om den offentliga nyckeln i begärandehuvudet finns i listan över betrodda signeringscertifikat som är associerade med attesteringsprovidern. På så sätt kan den förlitande parten (Azure Attestation) lita på en princip som har signerats med hjälp av de X.509-certifikat som den känner till.

Se exempel på principsigneringscertifikat för exempel.

Attesteringstoken

Azure Attestation-svaret är en JSON-sträng vars värde innehåller JWT. Azure Attestation paketerar anspråken och genererar en signerad JWT. Signeringsåtgärden utförs med ett självsignerat certifikat med ämnesnamn som matchar attestUri-elementet i attesteringsprovidern.

Api:et Hämta OpenID-metadata returnerar ett OpenID-konfigurationssvar som anges av OpenID Anslut Discovery-protokollet. API:et hämtar metadata om signeringscertifikaten som används av Azure Attestation.

Se exempel på attesteringstoken.

Data i paus och kryptering

För att skydda kunddata bevarar Azure Attestation sina data i Azure Storage. Azure Storage tillhandahåller kryptering av vilande data när de skrivs till datacenter och dekrypterar dem så att kunderna kan komma åt dem. Den här krypteringen sker med hjälp av en Microsoft-hanterad krypteringsnyckel.

Förutom att skydda data i Azure Storage använder Azure Attestation även Azure Disk Encryption (ADE) för att kryptera virtuella tjänstdatorer. För Azure Attestation som körs i en enklav i azure-miljöer för konfidentiell databehandling stöds för närvarande inte ADE-tillägget. I sådana scenarier inaktiveras sidfilen för att förhindra att data lagras i minnet.

Inga kunddata sparas på lokala hårddiskar för Azure Attestation-instansen.

Nästa steg