Chiavi di crittografia del database e di SQL Server (Motore di database)

Si applica a:SQL Server

SQL Server usa le chiavi di crittografia per la protezione di dati, credenziali e informazioni di connessione archiviate in un database del server. SQL Server dispone di due tipi di chiavi: simmetrica e asimmetrica. Le chiavi simmetriche utilizzano la stessa password per crittografare e decrittografare i dati. Le chiavi asimmetriche usano una password per crittografare i dati (chiave pubblica ) e un'altra per decrittografare i dati (chiave privata ).

In SQL Server, le chiavi di crittografia sono costituite da una combinazione di chiavi pubbliche, private e simmetriche utilizzate per proteggere dati riservati. La chiave simmetrica viene creata durante l'inizializzazione di SQL Server quando si avvia per la prima volta l'istanza di SQL Server. La chiave è utilizzata da SQL Server per crittografare dati riservati archiviati in SQL Server. Le chiavi pubblica e privata vengono create dal sistema operativo e sono utilizzate per proteggere la chiave simmetrica. Per ogni istanza di SQL Server che contiene dati riservati in un database viene creata una coppia di chiavi pubblica e privata.

Applicazioni per chiavi del SQL Server e del database

SQL Server contiene due applicazioni principali per le chiavi: una chiave master del servizio (SMK) generata per un'istanza di SQL Server e una chiave master del database (DMK) usata per un database.

Chiave master del servizio

La chiave master del servizio è l'elemento radice della gerarchia di crittografia di SQL Server. La SMK viene generata automaticamente la prima volta che viene avviata e usata l'istanza di SQL Server per crittografare la password, le credenziali o la chiave master del database di un server collegato in ogni database. La chiave SMK viene crittografata usando la chiave locale del computer che usa l'API Windows Data Protection (DPAPI). Il DPAPI usa una chiave derivata dalle credenziali Windows dell'account di servizio SQL Server e le credenziali del computer. La chiave master del servizio può essere decrittografata solo dall'account del servizio con cui è stata creata o da un'entità autorizzata ad accedere alle credenziali della macchina.

La chiave master del servizio può essere aperta solo dall'account di servizio Windows nel quale è stata creata oppure da un'entità con accesso sia al nome che alla password del'account di servizio.

SQL Server usa l'algoritmo di crittografia AES per proteggere la chiave master del servizio (SMK) e la chiave master del database (DMK). AES è un algoritmo di crittografia più recente rispetto a 3DES utilizzato nelle versioni precedenti. Dopo aver aggiornato un'istanza del motore di database a SQL Server, le chiavi SMK e DMK devono essere rigenerate per poter aggiornare le chiavi master ad AES. Per ulteriori informazioni sulla rigenerazione della chiave SMK, vedere ALTER SERVICE MASTER KEY (Transact-SQL) e ALTER MASTER KEY (Transact-SQL).

Chiave master del database

La chiave master del database è una chiave simmetrica utilizzata per proteggere le chiavi private dei certificati e le chiavi asimmetriche presenti nel database. Si può utilizzare anche per crittografare dati, ma ha limitazioni di lunghezza che la rendono meno pratica per i dati rispetto all'utilizzo di una chiave asimmetrica. Per abilitare la decrittografia automatica della chiave master del database, viene crittografata una copia della chiave usando la chiave SMK. Viene archiviata in entrambi i database dove è usata e nel database master di sistema.

La copia della DMK archiviata nel database master di sistema viene aggiornata automaticamente ogni qualvolta la DMK è modificata. È possibile modificare questa impostazione predefinita usando l'opzione DROP ENCRYPTION BY SERVICE MASTER KEY dell'istruzione ALTER MASTER KEY . Per aprire una chiave master non crittografata con la chiave master del servizio, è necessario usare l'istruzione OPEN MASTER KEY e una password.

Gestione delle chiavi del SQL Server e del database

La gestione delle chiavi di crittografia comprende la creazione di nuove chiavi di database, la creazione di un backup delle chiavi server e del database e informazioni su quando e come ripristinare, eliminare o modificare le chiavi.

Per la gestione delle chiavi simmetriche è possibile utilizzare gli strumenti inclusi in SQL Server per eseguire le operazioni seguenti:

  • Backup di una copia delle chiavi del server e del database per poterle utilizzare per il recupero dell'installazione di un server di report o come parte di una migrazione pianificata.

  • Ripristino di una chiave precedentemente salvata in un database. Consente a una nuova istanza del server l'accesso a dati esistenti che non erano stati crittografati in origine.

  • Eliminazione dei dati crittografati in un database nel caso molto improbabile in cui non sia più possibile accedere a tali dati.

  • Ricreazione delle chiavi e riesecuzione della crittografia dei dati nel caso molto improbabile in cui la chiave risulti compromessa. Come procedura di sicurezza consigliata, ricreare le chiavi periodicamente, ad esempio dopo qualche mese, per proteggere il server da attacchi informatici mirati alla decrittazione delle chiavi.

  • Aggiunta o rimozione di un'istanza del server da una distribuzione del server con scalabilità orizzontale in cui più server condividono sia un unico database sia la chiave che consente la crittografia reversibile per quel database.

Importanti informazioni relative alla sicurezza

L'accesso a oggetti protetti dalla chiave master del servizio richiede l'account di servizio SQL Server utilizzato per creare la chiave o l'account del computer. In altre parole, l'account computer che è legato al sistema sul quale la chiave è stata creata. È possibile modificare l'account del servizio SQL Server o l'account computer senza perdere l'accesso alla chiave. Tuttavia, se si modificano entrambi, si perderà l'accesso alla chiave master del servizio. Se si verifica tale perdita senza disporre di uno di questi due elementi, non sarà possibile decrittografare i dati e gli oggetti crittografati usando la chiave originale.

Non è possibile ripristinare connessioni protette con la chiave master del servizio se non si dispone della stessa.

L'accesso a oggetti e dati protetti con la chiave master del database richiede solo la password utilizzata per proteggere la chiave.

Attenzione

Se si perde ogni accesso alle chiavi descritte in precedenza, si perderà l'accesso agli oggetti, alle connessioni e ai dati protetti da quelle chiavi. È possibile ripristinare la chiave master del servizio, come viene descritto nei collegamenti qui riportati, oppure è possibile ritornare al sistema di crittografa originale per recuperare l'accesso. Non è possibile recuperare l'accesso in altro modo.

In questa sezione

Chiave master del servizio
Viene fornita una breve spiegazione della chiave master del servizio e delle procedure consigliate.

Extensible Key Management (EKM)
Viene illustrata la modalità di utilizzo dei sistemi di gestione delle chiavi di terze parti con SQL Server.

Backup della chiave master del servizio

Ripristino della chiave master del servizio

Creazione della chiave master di un database

Backup della chiave master di un database

Ripristino di una chiave master del database

Creare chiavi simmetriche identiche su due server

Abilitare TDE in SQL Server con EKM

Extensible Key Management con Azure Key Vault (SQL Server)

Crittografia di una colonna di dati

CREATE MASTER KEY (Transact-SQL)

ALTER SERVICE MASTER KEY (Transact-SQL)

Ripristino di una chiave master del database

Vedi anche

Eseguire il backup e il ripristino delle chiavi di crittografia di Reporting Services
Eliminare e ricreare chiavi di crittografia (Gestione configurazione SSRS)
Aggiungere e rimuovere le chiavi di crittografia per una distribuzione scale-out (Gestione configurazione SSRS)
Transparent Data Encryption (TDE)