Sviluppare applicazioni usando Always Encrypted con enclave sicuri
Si applica a: SQL Server 2019 (15.x) e versioni successive - Solo Windows Database SQL di Azure
Always Encrypted con enclave sicuri estende Always Encrypted per abilitare funzionalità più avanzate delle query dell'applicazione su colonne di database sensibili crittografate. Sfrutta le tecnologie basate sulle enclave sicure per consentire all'executor della query nel motore di database di delegare i calcoli nelle colonne crittografate a un’enclave sicura all'interno del processo del motore di database.
Prerequisiti
L'ambiente deve soddisfare i requisiti seguenti per supportare Always Encrypted con enclave sicure.
- L'istanza di SQL Server o il server database in Database SQL di Azure devono essere configurati correttamente per supportare le enclave e l'attestazione, se applicabile/richiesto. Per altre informazioni, vedere Configurare l'enclave sicura e l'attestazione.
- Assicurarsi che l'applicazione:
Usi una versione del driver client che supporta Always Encrypted con enclave sicure.
Abiliti Always Encrypted durante la connessione al database.
Imposti un protocollo di attestazione, che determina se il driver client deve attestare l'enclave prima di inviare query enclave e, in tal caso, quale servizio di attestazione deve usare. Le versioni più recenti dei driver supportano i protocolli di attestazione seguenti:
- Attestazione di Azure di Microsoft: applica l'attestazione usando l'Attestazione di Azure di Microsoft.
- Servizio Sorveglianza host: applica l'attestazione usando il servizio Sorveglianza host.
- Nessuno: consente l'uso di enclave senza attestazione.
La tabella seguente specifica i protocolli di attestazione validi per determinati prodotti SQL e tecnologie enclave:
Prodotto Tecnologia enclave Protocolli di attestazione supportati SQL Server 2019 (15.x) e versioni successive Enclave VBS Servizio Sorveglianza host, nessuno Database SQL di Azure Enclave SGX (nei database della serie DC) Attestazione di Microsoft Azure Database SQL di Azure Enclave VBS None Imposta un URL di attestazione valido per l'ambiente, se si usa l'attestazione.
- Se si usano SQL Server e il servizio Sorveglianza host (HGS), vedere Determinare e condividere l'URL di attestazione del servizio Sorveglianza host.
- Se si usano il database SQL di Azure con enclave Intel SGX e l'attestazione di Azure di Microsoft, vedere Determinare l'URL di attestazione per i criteri di attestazione.
Driver client per Always Encrypted con enclave sicure
Per sviluppare applicazioni usando Always Encrypted con enclave sicuri, è necessaria una versione del driver client di SQL che supporti enclave sicuri. Il driver client svolge il ruolo chiave seguente:
- Prima di inviare una query che usa un’enclave sicura a SQL Server o Database SQL di Azure per l'esecuzione, il driver avvia l'attestazione dell'enclave (se configurata) per verificare che l'enclave sicura sia attendibile e possa essere usata senza problemi per elaborare i dati sensibili. Per altre informazioni sull'attestazione, vedere Attestazione degli enclave sicuri.
- Il driver client stabilisce una sessione sicura con l'enclave negoziando un segreto condiviso.
- Il driver usa il segreto condiviso per crittografare le chiavi di crittografia della colonna necessarie all'enclave per elaborare la query e invia le chiavi a SQL Server, che le inoltra all'enclave sicura che decripta le chiavi.
- Il driver invia infine la query per l'esecuzione, che attiva i calcoli all'interno dell'enclave sicuro.
I driver client seguenti supportano Always Encrypted con enclave sicuri:
Provider di dati Microsoft .NET per SQL Server in .NET Framework 4.6 o versione successiva e .NET Core 2.1 o versione successiva. Se si vogliono usare enclave VBS senza attestazione, è necessaria la versione 4.1 o successive, compatibili con .NET Framework 4.6.1 o versioni successive e .NET Core 3.1.
- Per altre informazioni, vedere Uso di Always Encrypted con il provider di dati Microsoft .NET per SQL Server.
- Per un'esercitazione dettagliata, vedere Esercitazione: Sviluppare un'applicazione .NET usando Always Encrypted con enclave sicure.
- Vedere anche Esempio che illustra l'uso del provider Azure Key Vault con Always Encrypted abilitato con enclave sicure.
Microsoft ODBC Driver for SQL Server, versione 17.4 o successiva. Se si vogliono usare enclave VBS senza attestazione, è necessaria la versione 18.1 o successiva.
- Per altre informazioni, vedere Using Always Encrypted with the Windows ODBC Driver (Uso di Always Encrypted with the con il driver ODBC di Windows).
- Per informazioni su come abilitare i calcoli dell'enclave per una connessione di database usando ODBC, vedere la sezione Abilitare Always Encrypted con enclave sicure.
Microsoft JDBC Driver per SQL Server, versione 8.2 o successiva. Se si vogliono usare enclave VBS senza attestazione, è necessaria la versione 12.2 o successiva.
- Per altre informazioni, vedere Uso di Always Encrypted con enclave sicure con il driver JDBC.
Provider di dati .NET Framework per SQL Server in .NET Framework 4.7.2 o versione successiva.
- Per altre informazioni, vedere Uso di Always Encrypted con il provider di dati .NET Framework per SQL Server.
- Per un'esercitazione dettagliata, vedere Esercitazione: Sviluppare un'applicazione .NET Framework usando Always Encrypted con enclave sicure
Nota
L'uso del provider di dati .NET Framework per SQL Server (System.Data.SqlClient) non è consigliato per il nuovo sviluppo. Per ulteriori informazioni, vedere System.Data.SqlClient.