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 Microsoft Azure Enclave SGX (nei database della serie DC) Attestazione di Microsoft Azure
      Database SQL di Microsoft Azure Enclave VBS None
    • Imposta un URL di attestazione valido per l'ambiente, se si usa l'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:

Vedi anche