Delen via


Attestation configureren voor Always Encrypted met behulp van Azure Attestation

Van toepassing op: Azure SQL Database

Microsoft Azure Attestation is een oplossing voor het attesteren van TRUSTED Execution Environments (TEE's), waaronder Intel Software Guard Extensions (Intel SGX)-enclaves.

Als u Azure Attestation wilt gebruiken voor het attesteren van Intel SGX-enclaves die worden gebruikt voor Always Encrypted met beveiligde enclaves in Azure SQL Database, moet u het volgende doen:

  1. Maak een Attestation-provider en configureer deze met het aanbevolen attestation-beleid.

  2. Bepaal de attestation-URL en deel deze met toepassingsbeheerders.

Belangrijk

Met Intel SGX-enclaves in Azure SQL Database is attestation verplicht en is Microsoft Azure Attestation vereist. VBS-enclaves in Azure SQL Database bieden geen ondersteuning voor attestation. Dit artikel is alleen van toepassing op Intel SGX-enclaves.

Notitie

Attestation configureren is de verantwoordelijkheid van de attestation-beheerder. Zie Rollen en verantwoordelijkheden bij het configureren van Intel SGX-enclaves en attestation.

Een Attestation-provider maken en configureren

Een Attestation-provider is een resource in Azure Attestation waarmee attestation-aanvragen worden geëvalueerd op basis van attestation-beleid en attestation-tokens uitgeven.

Attestation-beleid wordt opgegeven met behulp van de grammatica van de claimregel.

Belangrijk

Er wordt een attestation-provider gemaakt met het standaardbeleid voor Intel SGX-enclaves, waarmee de code die in de enclave wordt uitgevoerd, niet wordt gevalideerd. Microsoft adviseert u het aanbevolen beleid in de volgende uitvoer in te stellen en niet het standaardbeleid voor Always Encrypted te gebruiken met beveiligde enclaves.

Microsoft raadt het volgende beleid aan voor het attesteren van Intel SGX-enclaves die worden gebruikt voor Always Encrypted in Azure SQL Database:

version= 1.0;
authorizationrules 
{
       [ type=="x-ms-sgx-is-debuggable", value==false ]
        && [ type=="x-ms-sgx-product-id", value==4639 ]
        && [ type=="x-ms-sgx-svn", value>= 2 ]
        && [ type=="x-ms-sgx-mrsigner", value=="e31c9e505f37a58de09335075fc8591254313eb20bb1a27e5443cc450b6e33e5"] 
    => permit();
};

Het beleid controleert:

  • De enclave in Azure SQL Database biedt geen ondersteuning voor foutopsporing.

    Enclaves kunnen worden geladen met foutopsporing uitgeschakeld of ingeschakeld. Ondersteuning voor foutopsporing is ontworpen om ontwikkelaars in staat te stellen problemen met de code op te lossen die in een enclave wordt uitgevoerd. In een productiesysteem kan foutopsporing een beheerder in staat stellen om de inhoud van de enclave te onderzoeken, wat het beschermingsniveau van de enclave vermindert. Het aanbevolen beleid schakelt foutopsporing uit om ervoor te zorgen dat als een kwaadwillende beheerder probeert foutopsporingsondersteuning in te schakelen door de enclavecomputer over te nemen, attestation mislukt.

  • De product-id van de enclave komt overeen met de product-id die is toegewezen aan Always Encrypted met beveiligde enclaves.

    Elke enclave heeft een unieke product-id die de enclave onderscheidt van andere enclaves. De product-id die is toegewezen aan de Always Encrypted-enclave is 4639.

  • Het beveiligingsversienummer (SVN) van de bibliotheek is groter dan of gelijk aan 2.

    Met de SVN kan Microsoft reageren op mogelijke beveiligingsfouten die zijn geïdentificeerd in de enclavecode. Als er een beveiligingsprobleem wordt gedetecteerd en opgelost, implementeert Microsoft een nieuwe versie van de enclave met een nieuwe (incrementele) SVN. Het aanbevolen beleid wordt bijgewerkt om de nieuwe SVN weer te geven. Door uw beleid bij te werken zodat dit overeenkomt met het aanbevolen beleid, kunt u ervoor zorgen dat als een kwaadwillende beheerder probeert een oudere en onveilige enclave te laden, attestation mislukt.

  • De bibliotheek in de enclave is ondertekend met behulp van de Ondertekeningssleutel van Microsoft (de waarde van de claim x-ms-sgx-mrsigner is de hash van de ondertekeningssleutel).

    Een van de belangrijkste doelen van attestation is om clients ervan te overtuigen dat het binaire bestand dat in de enclave wordt uitgevoerd, het binaire bestand is dat moet worden uitgevoerd. Attestation-beleid biedt twee mechanismen voor dit doel. Een daarvan is de mrenclave-claim , die de hash is van het binaire bestand dat in een enclave moet worden uitgevoerd. Het probleem met de mrenclave is dat de binaire hash verandert, zelfs met triviale wijzigingen in de code, waardoor het moeilijk is om de code die wordt uitgevoerd in de enclave te reviëren. Daarom raden we het gebruik van de mrsigner aan. Dit is een hash van een sleutel die wordt gebruikt om het binaire bestand van de enclave te ondertekenen. Wanneer Microsoft de enclave revseert, blijft de mrsigner hetzelfde zolang de ondertekeningssleutel niet verandert. Op deze manier is het haalbaar om bijgewerkte binaire bestanden te implementeren zonder de toepassingen van klanten te verbreken.

Belangrijk

Microsoft moet mogelijk de sleutel roteren die wordt gebruikt om het binaire bestand van de Always Encrypted-enclave te ondertekenen. Dit is naar verwachting een zeldzame gebeurtenis. Voordat een nieuwe versie van het binaire enclavebestand, ondertekend met een nieuwe sleutel, wordt geïmplementeerd in Azure SQL Database, wordt dit artikel bijgewerkt met een nieuw aanbevolen attestation-beleid en instructies voor het bijwerken van het beleid in uw Attestation-providers om ervoor te zorgen dat uw toepassingen ononderbroken blijven werken.

Voor instructies voor het maken van een attestation-provider en het configureren met een attestation-beleid met behulp van:

De attestation-URL voor uw attestation-beleid bepalen

Nadat u een attestation-beleid hebt geconfigureerd, moet u de attestation-URL delen met beheerders van toepassingen die Always Encrypted gebruiken met beveiligde enclaves in Azure SQL Database. De attestation-URL is de Attest URI attestation-provider die het attestation-beleid bevat, dat er als volgt uitziet: https://MyAttestationProvider.wus.attest.azure.net.

Azure Portal gebruiken om de attestation-URL te bepalen

Kopieer in het deelvenster Overzicht voor uw Attestation-provider de waarde van de Attest URI eigenschap naar het Klembord.

PowerShell gebruiken om de attestation-URL te bepalen

Gebruik de Get-AzAttestation cmdlet om de eigenschappen van de Attestation-provider op te halen, inclusief AttestURI.

Get-AzAttestation -Name $attestationProviderName -ResourceGroupName $attestationResourceGroupName

Zie Een Attestation-provider maken en beheren voor meer informatie.

Volgende stappen

Zie ook