Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SQL Server usa le chiavi di crittografia per proteggere dati, credenziali e informazioni di connessione archiviate in un database server. SQL Server ha due tipi di chiavi: simmetriche e asimmetriche. Le chiavi simmetriche usano la stessa password per crittografare e decrittografare i dati. Le chiavi asimmetriche usano una password per crittografare i dati (denominata chiave pubblica ) e un altro per decrittografare i dati (denominata 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 l'inizializzazione di SQL Server al primo avvio dell'istanza di SQL Server. La chiave viene usata da SQL Server per crittografare i dati sensibili archiviati in SQL Server. Le chiavi pubbliche e private vengono create dal sistema operativo e vengono usate 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 SQL Server e chiavi di 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.
SmK viene generato automaticamente la prima volta che viene avviata l'istanza di SQL Server e viene usato per crittografare una password, le credenziali e la chiave master del database di un server collegato. La SMK viene crittografata utilizzando la chiave del computer locale e l'API di Protezione dati di Windows (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 in cui è stato creato o da un'entità che ha accesso alle credenziali del computer.
La chiave master del database è una chiave simmetrica usata per proteggere le chiavi private dei certificati e delle chiavi asimmetriche presenti nel database. Può anche essere usato per crittografare i dati, ma presenta limitazioni di lunghezza che lo rendono meno pratico per i dati rispetto all'uso di una chiave simmetrica.
Quando viene creata, la chiave master viene crittografata usando l'algoritmo Triple DES e una password fornita dall'utente. Per abilitare la decrittografia automatica della chiave master, una copia della chiave viene crittografata tramite SMK. Viene archiviato sia nel database in cui viene usato che nel database di master
sistema.
La copia di DMK archiviata nel master
database di sistema viene aggiornata automaticamente ogni volta che viene modificata la DMK. Tuttavia, questa impostazione predefinita può essere modificata usando l'opzione DROP ENCRYPTION BY SERVICE MASTER KEY
dell'istruzione ALTER MASTER KEY
. Una DMK non crittografata dalla chiave master del servizio deve essere aperta usando l'istruzione OPEN MASTER KEY
e una password.
Gestione delle chiavi di SQL Server e del database
La gestione delle chiavi di crittografia consiste nel creare nuove chiavi di database, creare un backup delle chiavi del server e del database e sapere 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:
Eseguire il backup di una copia delle chiavi del server e del database in modo che sia possibile usarle per ripristinare un'installazione del server o come parte di una migrazione pianificata.
Ripristinare una chiave salvata in precedenza in un database. In questo modo, una nuova istanza del server può accedere ai dati esistenti non crittografati in origine.
Eliminare i dati crittografati in un database nel caso improbabile in cui non sia più possibile accedere ai dati crittografati.
Ricreare le chiavi e crittografare nuovamente i dati nel caso improbabile in cui la chiave venga compromessa. Come procedura consigliata per la sicurezza, è necessario ricreare periodicamente le chiavi (ad esempio, ogni pochi mesi) per proteggere il server da attacchi che tentano di decifrare le chiavi.
Aggiungere o rimuovere un'istanza del server da una distribuzione con scalabilità orizzontale del server in cui più server condividono un singolo database e la chiave che fornisce la crittografia reversibile per tale database.
Informazioni importanti sulla sicurezza
L'accesso agli oggetti protetti dalla chiave master del servizio richiede l'account del servizio SQL Server utilizzato per creare la chiave o l'account del computer. Ovvero, il computer è associato al sistema in cui è stata creata la chiave. È 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 perde l'accesso alla chiave master del servizio senza uno di questi due elementi, non è possibile decrittografare i dati e gli oggetti crittografati usando la chiave originale.
Le connessioni protette con la chiave master del servizio non possono essere ripristinate senza la chiave master del servizio.
L'accesso a oggetti e dati protetti con la chiave master del database richiede solo la password usata per proteggere la chiave.
Attenzione
Se si perde tutto l'accesso alle chiavi descritte in precedenza, si perderà l'accesso agli oggetti, alle connessioni e ai dati protetti da tali chiavi. È possibile ripristinare la chiave master del servizio, come descritto nei collegamenti visualizzati qui oppure tornare al sistema di crittografia originale per ripristinare l'accesso. Non c'è alcuna "porta sul retro" per recuperare l'accesso.
In questa sezione
Chiave master del servizio
Fornisce una breve spiegazione per la chiave master del servizio e le procedure consigliate.
Extensible Key Management (EKM)
Viene illustrato come usare sistemi di gestione delle chiavi di terze parti con SQL Server.
Attività correlate
Esegui il backup della chiave master del servizio
Ripristino della chiave master del servizio
Creare una chiave master del database
Eseguire il backup di una chiave master del database
Ripristinare una chiave master del database
Creare chiavi simmetriche identiche su due server
Gestione delle chiavi estensibile utilizzando Azure Key Vault (SQL Server)
Contenuto correlato
CREATE MASTER KEY (Transact-SQL)
ALTERA LA CHIAVE MASTER DEL SERVIZIO (Transact-SQL)
Ripristinare una chiave master del database
Vedere 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 chiavi di crittografia per la distribuzione di Scale-Out (Gestione configurazione SSRS)
Transparent Data Encryption (TDE)