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

SQL Server usa le chiavi di crittografia per proteggere dati, credenziali e informazioni di connessione archiviate in un database del server. SQL Server ha 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 includono una combinazione di chiavi pubbliche, private e simmetriche usate per proteggere i dati sensibili. La chiave simmetrica viene creata durante SQL Server'inizializzazione quando si avvia per la prima volta l'istanza di SQL Server. La chiave viene usata da SQL Server per crittografare i dati sensibili archiviati in SQL Server. Le chiavi pubblica e privata vengono create dal sistema operativo e sono utilizzate per proteggere la chiave simmetrica. Viene creata una coppia di chiavi pubblica e privata per ogni istanza di SQL Server che archivia i dati sensibili in un database.

Applicazioni per chiavi del SQL Server e del database

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

La chiave smk viene generata automaticamente la prima volta che viene avviata l'istanza di SQL Server e viene usata per crittografare una password, le credenziali e la chiave master del database collegato. La SMK viene crittografata usando la chiave locale del computer che utilizza l'API Windows Data Protection (DPAPI). DpAPI usa una chiave derivata dalle credenziali di Windows dell'account del servizio SQL Server e dalle 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 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 simmetrica.

Al momento della creazione, la chiave master viene crittografata con l'algoritmo Triple DES e una password specificata dall'utente. Per attivare la decrittografia automatica della chiave master, viene crittografata una copia della chiave utilizzando la SMK. Viene archiviata in entrambi i database dove è utilizzata e nel database master di sistema.

La copia della DMK archiviata nel database master di sistema viene aggiornata automaticamente ogni qualvolta la DMK è modificata. Tuttavia, questa impostazione predefinita può essere modificata utilizzando l'opzione DROP ENCRYPTION BY SERVICE MASTER KEY dell'istruzione ALTER MASTER KEY. Per aprire una DMK non crittografata con la chiave master del servizio, è necessario utilizzare 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 gestire le chiavi simmetriche, è possibile usare 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 agli oggetti protetti dalla chiave master del servizio richiede l'account del servizio SQL Server usato per creare la chiave o l'account computer (computer). In altre parole, il computer è 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.

Contenuto della sezione

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

Extensible Key Management (EKM)
Illustra come usare sistemi di gestione delle chiavi di terze parti con SQL Server.

Eseguire il 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

Extensible Key Management con Azure Key Vault (SQL Server)

Abilitare TDE tramite EKM

CREATE MASTER KEY (Transact-SQL)

ALTER SERVICE MASTER KEY (Transact-SQL)

Ripristino di una chiave master del database

Vedere anche

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