Sviluppare applicazioni usando Always Encrypted con enclave sicuriDevelop applications using Always Encrypted with secure enclaves

Si applica a:Applies to: sìSQL Server 2019 (15.x)SQL Server 2019 (15.x)yesSQL Server 2019 (15.x)SQL Server 2019 (15.x) - Solo Windows Sìdatabase SQL di AzureAzure SQL DatabaseYesdatabase SQL di AzureAzure SQL DatabaseSi applica a:Applies to: sìSQL Server 2019 (15.x)SQL Server 2019 (15.x)yesSQL Server 2019 (15.x)SQL Server 2019 (15.x) - Windows only Sìdatabase SQL di AzureAzure SQL DatabaseYesdatabase SQL di AzureAzure SQL Database

Always Encrypted con enclave sicuri estende Always Encrypted per abilitare funzionalità più avanzate delle query dell'applicazione su colonne di database sensibili crittografate.Always Encrypted with secure enclaves extends Always Encrypted to enable richer functionality of application queries on encrypted sensitive database columns. Sfrutta le tecnologie basate sugli enclave sicuri per consentire all'executor della query in Motore di databaseDatabase Engine di delegare i calcoli nelle colonne crittografate a un enclave sicuro all'interno del processo di Motore di databaseDatabase Engine.It leverages secure enclave technologies to allow the query executor in Motore di databaseDatabase Engine to delegate computations on encrypted columns to a secure enclave inside the Motore di databaseDatabase Engine process.

PrerequisitiPrerequisites

  • L'istanza di SQL ServerSQL Server o il database e il server in database SQL di AzureAzure SQL Database devono essere configurati correttamente per supportare le enclave e l'attestazione.Your SQL ServerSQL Server instance or your database and server in database SQL di AzureAzure SQL Database must be correctly configured to support enclaves and attestation. Per altre informazioni, vedere Configurare l'enclave sicura e l'attestazione.For more information, see Set up the secure enclave and attestation.

  • È necessario ottenere un URL di attestazione per l'ambiente dall'amministratore del servizio di attestazione.You need to obtain an attestation URL for your environment from your attestation service administrator.

  • L'applicazione deve usare una versione del driver del client SQL che supporta le enclave sicure.Your application must use a SQL client driver version that supports secure enclaves. Per altri dettagli, vedere le sezioni seguenti.See the below sections for more details.

  • È necessario configurare un protocollo di attestazione e un URL di attestazione per una connessione di database.You need to configure an attestation protocol and an attestation URL for a database connection. I dettagli relativi alla modalità di configurazione del protocollo di attestazione e dell'URL di attestazione dipendono dal driver client in uso.The details for how you configure the attestation protocol and the attestation URL depend on the client driver, you are using.

Driver client per Always Encrypted con enclave sicureClient drivers for Always Encrypted with secure enclaves

Per sviluppare applicazioni usando Always Encrypted con enclave sicuri, è necessaria una versione del driver client di SQL che supporti enclave sicuri.To develop applications using Always Encrypted with secure enclaves, you need a SQL client driver version that supports secure enclaves. Il driver client svolge il ruolo chiave seguente:The client driver plays the following key role:

  • Prima di inviare una query che usa un enclave sicuro a SQL ServerSQL Server per l'esecuzione, il driver avvia l'attestazione dell'enclave per verificare che l'enclave sicuro sia attendibile e possa essere usato senza problemi per elaborare i dati sensibili.Before submitting a query that uses a secure enclave to SQL ServerSQL Server for execution, the driver initiates enclave attestation to verify the secure enclave is trustworthy and can be safely used to process sensitive data. Per altre informazioni sull'attestazione, vedere Attestazione degli enclave sicuri.For more information about attestation, see Secure Enclave Attestation.
  • Una volta completata l'attestazione, il driver client stabilisce una sessione sicura con l'enclave negoziando un segreto condiviso.Once attestation succeeds, the client driver establishes a secure session with the enclave by negotiating a shared secret.
  • Il driver usa il segreto condiviso per crittografare le chiavi di crittografia di colonna necessarie all'enclave per elaborare la query e invia le chiavi a SQL ServerSQL Server, che le inoltra all'enclave sicuro che decrittografa le chiavi.The driver uses the shared secret to encrypt the column encryption keys the enclave will need to process the query, and sends the keys to SQL ServerSQL Server, which forwards them to the secure enclave that decrypts the keys.
  • Il driver invia infine la query per l'esecuzione, che attiva i calcoli all'interno dell'enclave sicuro.Finally, the driver submits the query for execution, which triggers computations inside the secure enclave.

Passaggi successiviNext steps

I driver client seguenti supportano Always Encrypted con enclave sicuri:The following client drivers support Always Encrypted with secure enclaves:

Vedere ancheSee also