Condividi tramite


Configurare l'attestazione per Always Encrypted con l'attestazione di Azure

Si applica a: Database SQL di Azure

L’attestazione di Microsoft Azure è una soluzione per l’attestazione di ambienti di esecuzione attendibili (Trusted Execution Environments, TEE), incluse le enclavi Intel Software Guard Extensions (Intel SGX).

Per usare attestazione di Azure per attestare le enclavi Intel SGX usate per Always Encrypted con enclavi sicure nel database SQL di Azure, è necessario:

  1. Creare un provider di attestazioni e configurarlo con il criterio di attestazione consigliato.

  2. Definire l’URL di attestazione e condividerlo con gli amministratori dell’applicazione.

Importante

Con le enclavi di Intel SGX nel database SQL di Azure, l’attestazione è obbligatoria e richiede l’attestazione di Microsoft Azure. Le enclave VBS nel database SQL di Azure non supportano l’attestazione. Questo articolo si applica solo alle enclavi Intel SGX.

Nota

La configurazione dell’attestazione è responsabilità del suo amministratore. Vedere Ruoli e responsabilità per la configurazione dell’attestazione con enclave Intel SGX.

Creare e configurare un provider di attestazioni

Un provider di attestazioni è una risorsa in attestazione di Azure che valuta le richieste di attestazione rispetto ai criteri di attestazione e rilascia i token di attestazione.

I criteri di attestazione vengono specificati usando la grammatica delle regole di attestazione.

Importante

Viene creato un provider di attestazioni con i criteri predefiniti per le enclavi Intel SGX, che non convalida il codice in esecuzione all’interno dell’enclave. Microsoft consiglia vivamente di impostare il criterio consigliato usato nell’output seguente e di non usare il criterio predefinito per Always Encrypted con enclavi sicure.

Microsoft consiglia il criterio seguente per attestare le enclavi Intel SGX usate per Always Encrypted nel database SQL di Azure:

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();

       [ 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=="a0f8e7f72092fb6a5d5752ffccd47fb3af7027ffb589b24e921e81f5703f3a9a"]
    => permit();
};

Verifiche del criterio:

  • L’enclave all’interno del database SQL di Azure non supporta il debug.

    Le enclave possono essere caricate con il debug abilitato o disabilitato. Il supporto per il debug è progettato in modo da consentire agli sviluppatori di risolvere i problemi relativi al codice in esecuzione in una enclave. In un sistema di produzione, il debug potrebbe consentire a un amministratore di esaminare il contenuto dell’enclave, riducendo così il livello di protezione fornito dall’enclave. Il criterio consigliato disabilita il debug. In questo modo, se un amministratore malintenzionato tenta di attivare il supporto di debug prendendo il controllo del computer enclave, l’attestazione avrà esito negativo.

  • L’ID prodotto dell’enclave corrisponde all’ID prodotto assegnato a Always Encrypted con enclavi sicure.

    Ogni enclave ha un ID prodotto univoco che differenzia le enclavi l’una dall’altra. L’ID prodotto assegnato all’enclave Always Encrypted è 4639.

  • Il numero di versione di sicurezza (SVN) della libreria è maggiore o uguale a 2.

    L’SVN consente a Microsoft di rispondere a potenziali bug di sicurezza rilevati nel codice dell’enclave. Nel caso in cui venga individuato e risolto un problema di sicurezza, Microsoft distribuisce una nuova versione dell’enclave con un nuovo SVN (incrementato). Il criterio consigliato viene aggiornato per riflettere il nuovo SVN. Aggiornando il criterio in modo che corrisponda a quello consigliato, si garantisce che se un amministratore malintenzionato tenta di caricare una enclave meno recente e non sicura l’attestazione avrà esito negativo.

  • La libreria nell’enclave è stata firmata usando la chiave di firma Microsoft (il valore dell’attestazione x-ms-sgx-mrsigner è l’hash della chiave di firma).

    Uno degli obiettivi principali dell’attestazione è convincere i client che il file binario in esecuzione nell’enclave è il file binario di cui è prevista l’esecuzione. I criteri di attestazione forniscono due meccanismi a questo scopo. Uno è l’attestazione mrenclave ovvero l’hash del file binario la cui esecuzione è prevista in una enclave. Il problema con mrenclave è che l’hash binario cambia anche con modifiche semplici al codice, il che rende difficile revocare il codice in esecuzione nell’enclave. È quindi consigliabile usare mrsigner ovvero un hash di una chiave usata per firmare il file binario dell’enclave. Quando Microsoft revoca l’enclave, mrsigner rimane invariato, purché la chiave di firma non cambi. In questo modo, si riesce a distribuire file binari aggiornati senza interrompere le applicazioni dei clienti.

Importante

Pur trattandosi di un evento raro, Microsoft potrebbe dover ruotare la chiave usata per firmare il file binario dell’enclave Always Encrypted. Prima che una nuova versione del file binario dell’enclave, firmata con una nuova chiave, venga distribuita nel database SQL di Azure, questo articolo verrà aggiornato per fornire un nuovo criterio di attestazione consigliato e istruzioni su come aggiornare il criterio nei provider di attestazioni così da garantire che le applicazioni continuino a funzionare senza interruzioni.

Per istruzioni su come creare un provider di attestazioni e configurare con un criterio di attestazione:

Determinare l’URL di attestazione per i criteri di attestazione

Una volta configurato un criterio di attestazione, è necessario condividere l’URL di attestazione con gli amministratori di applicazioni che usano Always Encrypted con enclavi sicure nel database SQL di Azure. L’URL di attestazione è il Attest URI del provider di attestazioni contenente i criteri di attestazione e ha un aspetto simile al seguente: https://MyAttestationProvider.wus.attest.azure.net.

Usare portale di Azure per stabilire l’URL di attestazione

Nel riquadro Panoramica per il provider di attestazioni copiare il valore della proprietà Attest URI negli Appunti.

Usare PowerShell per stabilire l’URL di attestazione

Usare il cmdlet Get-AzAttestation per recuperare le proprietà del provider di attestazione, incluso AttestURI.

Get-AzAttestation -Name $attestationProviderName -ResourceGroupName $attestationResourceGroupName

Per altre informazioni, consultare Creare e gestire un provider di attestazioni.

Passaggi successivi

Vedi anche