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.
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. SQL Server utilizza la chiave per cifrare i dati sensibili memorizzati in SQL Server. Il sistema operativo crea le chiavi pubbliche e private, che proteggono 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 SQL Server e chiavi di 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 è la radice della gerarchia di crittografia di SQL Server. SQL Server genera l'SMK la prima volta quando l'istanza si avvia e lo utilizza per criptare password del server collegato, credenziali e la chiave principale del database in ogni database.
L'SMK viene criptato utilizzando la chiave macchina locale o l'API di protezione dati di Windows (DPAPI). DPAPI utilizza una chiave derivata dalle credenziali Windows dell'account del servizio SQL Server. Poiché la chiave è protetta in entrambi i modi, la chiave master del servizio può essere aperta dall'account di servizio con cui è stata creata, oppure da un'entità di sicurezza che ha accesso alle credenziali della macchina.
SQL Server utilizza l'algoritmo di crittografia AES per proteggere la chiave master del servizio e la chiave principale del database. AES ha sostituito l'algoritmo 3DES utilizzato nelle versioni precedenti a SQL Server 2012 (11.x). Dopo aver aggiornato un'istanza del motore di database da una di quelle versioni precedenti, rigenera SMK e DMK per aggiornare le master key ad AES. Per altre informazioni sulla rigenerazione della chiave SMK, vedere ALTER SERVICEALTER SERVICE MASTER KEY (Transact-SQL) e ALTER MASTER KEY (Transact-SQL).
Chiave master del database
La chiave principale del database è una chiave simmetrica che protegge le chiavi private dei certificati e le chiavi asimmetriche presenti nel database. Può anche criptare dati, ma presenta limitazioni di lunghezza che lo rendono meno pratico per i dati rispetto a una chiave asimmetrica. Per consentire la decrittografia automatica della chiave principale del database, una copia della chiave viene criptata utilizzando l'SMK. SQL Server memorizza quella copia sia nel database in cui viene utilizzata la chiave sia nel master database di sistema.
La copia del DMK memorizzata nel master database di sistema viene aggiornata silenziosamente ogni volta che il DMK cambia. Puoi cambiare questo valore predefinito usando l'opzione DROP ENCRYPTION BY SERVICE MASTER KEY di ALTER MASTER KEY (Transact-SQL). Un DMK che non è criptato dalla chiave master del servizio deve essere aperto usando OPEN MASTER KEYOPEN MASTER KEY (Transact-SQL) e una password.
Gestione di SQL Server e delle chiavi del database
Gestire le chiavi di crittografia comporta la creazione di nuove chiavi del database, il backup del server e delle chiavi del database, e sapere quando e come ripristinare, cancellare o modificare le chiavi.
Per gestire le chiavi simmetriche, utilizza gli strumenti inclusi in SQL Server per svolgere i seguenti compiti:
- Fai un backup delle chiavi del server e del database così potrai usarle per recuperare un'installazione server o come parte di una migrazione programmata.
- Ripristino di una chiave precedentemente salvata in un database. Ripristinare la chiave permette a una nuova istanza server di accedere a dati esistenti che non aveva inizialmente criptato.
- Eliminazione dei dati crittografati in un database nel caso molto improbabile in cui non sia più possibile accedere a tali dati.
- Ricrea le chiavi e ri-cripta i dati nell'improbabile caso in cui la chiave venga compromessa. Come buona pratica di sicurezza, ricrea periodicamente le chiavi, ad esempio ogni pochi mesi, per proteggere il server da attacchi che cercano di decifrare le chiavi.
- Aggiungere o rimuovere un'istanza del server da una distribuzione server con scalabilità orizzontale in cui più server condividono sia un solo database sia la chiave usata per la crittografia reversibile del database.
Informazioni importanti sulla sicurezza
Per accedere agli oggetti protetti dalla chiave master del servizio, è necessario o l'account di servizio SQL Server che hai usato per creare la chiave oppure l'account computer (macchina) collegato al sistema in cui hai creato la chiave. Puoi cambiare l'account del servizio SQL Server o l'account del computer senza perdere l'accesso alla chiave. Tuttavia, se cambi entrambi gli account, perdi l'accesso alla chiave master del servizio. Se perdi l'accesso alla chiave master del servizio senza uno di questi due elementi, non puoi decriptare dati e oggetti che la chiave originale aveva criptato.
Non puoi ripristinare le connessioni protette con la chiave master di servizio a meno che tu non abbia quella chiave.
Per accedere a oggetti e dati protetti con la chiave principale del database, serve solo la password che aiuta a proteggere la chiave.
Attenzione
Se perdi tutto l'accesso alle chiavi descritte in questo articolo, perdi l'accesso agli oggetti, alle connessioni e ai dati protetti da quelle chiavi. Puoi ripristinare la chiave master del servizio come descritto in Ripristinare la chiave master del servizio, oppure puoi tornare al sistema di crittografia originale per recuperare l'accesso. Non c'è modo di recuperare l'accesso.
Contenuti correlati
- Gestione Estensibile delle Chiavi (EKM)
- Gestione estensibile delle chiavi utilizzando Azure Key Vault (SQL Server)
- Abilitare TDE in SQL Server usando EKM
- Crea una chiave maestra del database
- Fai un backup di una chiave principale del database
- Ripristina una chiave maestra del database
- Fai un backup della chiave master di servizio
- Ripristina la chiave master di servizio
- Crea chiavi simmetriche identiche su due server
- Crittografiare una colonna di dati
- Transparent Data Encryption (TDE)
- CREATE MASTER KEY (Transact-SQL)
- ALTER SERVICE ALTER SERVICE MASTER KEY (Transact-SQL)
- Eseguire il backup e il ripristino delle chiavi di crittografia di SQL Server Reporting Services (SSRS)
- Elimina e ricrea le chiavi di crittografia (Gestione configurazione)
- Aggiungere e rimuovere le chiavi di crittografia per una distribuzione con scalabilità orizzontale