Sviluppare applicazioni usando Always Encrypted con enclave sicuri

Si applica a: SQL Server 2019 (15.x) e versioni successive nel database SQL di Windows Azure

Always Encrypted con enclave protette estende Always Encrypted consentendo funzionalità più avanzate per le query delle applicazioni su colonne sensibili crittografate del database. 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 di database in database SQL di Azure devono essere configurati correttamente per supportare le enclave e l'attestazione, se applicabile o necessario. Per altre informazioni, vedere Configurare l'enclave sicura e l'attestazione.
  • Assicurati che la tua applicazione:
    • Usi una versione del driver client che supporta Always Encrypted con enclave sicure.

    • Abiliti Always Encrypted durante la connessione al database.

    • Imposta un protocollo di attestazione, che determina se il driver client deve attestare l'enclave prima di inviare query dell'enclave e, in tal caso, quale servizio di attestazione deve utilizzare. 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.
      • Host Guardian Service - impone l'attestazione tramite Host Guardian Service.
      • Nessuna: consente di usare enclavi senza attestazione.

      La tabella seguente specifica i protocolli di attestazione validi per determinati prodotti SQL e tecnologie enclave:

      Prodotto Tecnologia di enclave Protocolli di attestazione supportati
      SQL Server 2019 (15.x) e versioni successive Enclave VBS Host Guardian Service, Nessuno
      Database SQL di Azure Enclavi SGX (nei database della serie DC) Attestazione di Microsoft Azure
      Database SQL di Azure Enclave VBS None
    • Imposta un URL di attestazione valido per il proprio ambiente, se si utilizza 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: