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 fornisce funzionalità di crittografia dei dati insieme a Extensible Key Management (EKM) con l'uso del provider di API di crittografia Microsoft (MSCAPI) per la crittografia e la generazione di chiavi. Le chiavi di crittografia per i dati e per la crittografia delle chiavi vengono create in contenitori di chiavi transitorie, e devi esportarle da un fornitore prima di memorizzarle nel database. Questo approccio permette a SQL Server di gestire la gestione delle chiavi, inclusa una gerarchia di chiavi di crittografia e un backup delle chiavi.
Con la crescente domanda di conformità normativa e la preoccupazione per la privacy dei dati, le organizzazioni stanno sfruttando la crittografia come modo per fornire una soluzione di difesa a più livelli. Questo approccio risulta spesso poco pratico se si utilizzano solo gli strumenti di gestione della crittografia dei database. I fornitori di hardware forniscono prodotti che affrontano la gestione delle chiavi aziendali utilizzando moduli di sicurezza hardware (HSM). I dispositivi HSM consentono di archiviare le chiavi di crittografia su moduli hardware o software. Questo approccio è più sicuro perché le chiavi di crittografia non risiedono con i dati criptati.
Diversi fornitori offrono HSM sia per la gestione delle chiavi che per l'accelerazione della crittografia. I dispositivi HSM utilizzano interfacce hardware con un processo server come intermediario tra un'applicazione e un dispositivo HSM. I fornitori implementano anche i provider MSCAPI sui moduli, che possono essere hardware o software. MSCAPI spesso offre solo una sottoparte delle funzionalità che offre un HSM. I fornitori possono anche fornire software di gestione per HSM, configurazione delle chiavi e accesso alle chiavi.
Le implementazioni HSM variano da fornitore a fornitore e utilizzarle con SQL Server richiede un'interfaccia comune. Sebbene MSCAPI fornisca questa interfaccia, supporta solo una parte delle funzionalità HSM. Sono presenti inoltre altre limitazioni, ad esempio l'impossibilità di mantenere a livello nativo le chiavi simmetriche e la mancanza di supporto orientato alla sessione.
SQL Server Extensible Key Management permette ai fornitori terzi di EKM e HSM di registrare i loro moduli in SQL Server. Dopo la registrazione di un modulo, gli utenti di SQL Server possono utilizzare le chiavi di crittografia memorizzate su di esso. SQL Server può quindi accedere alle funzionalità avanzate di crittografia supportate da questi moduli, come la crittografia e la decrittografia in massa, e alle funzioni di gestione delle chiavi come l'invecchiamento delle chiavi e la rotazione delle chiavi.
Quando esegui SQL Server in una VM Azure, SQL Server può utilizzare chiavi memorizzate in Azure Key Vault. Per ulteriori informazioni, consulta Gestione estensibile delle chiavi utilizzando Azure Key Vault (SQL Server).
Configurazione EKM
La gestione delle chiavi estesibile non è disponibile in tutte le edizioni di SQL Server. Per un elenco delle funzionalità supportate dalle edizioni di SQL Server, vedi Edizioni e funzionalità supportate di SQL Server 2025.
Per impostazione predefinita, Extensible Key Management è disattivato. Per abilitare questa funzione, utilizza la stored procedure sp_configure (Transact-SQL) con la seguente opzione e valore:
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Nota
Se usi sp_configure per questa opzione su edizioni di SQL Server che non supportano EKM, ricevi un errore.
Per disabilitare la funzione, imposta il valore a 0. Per ulteriori informazioni sull'impostazione delle opzioni del server, vedere sp_configure (Transact-SQL).
Come usare l'EKM
SQL Server Extensible Key Management ti permette di memorizzare le chiavi di crittografia che proteggono i file del database in un dispositivo off-box come una smart card, un dispositivo USB o un modulo EKM/HSM. Protegge inoltre i dati dagli amministratori del database, ad eccezione dei membri del ruolo predefinito del server sysadmin. Puoi criptare i dati usando chiavi di crittografia a cui solo l'utente del database può accedere sul modulo EKM/HSM esterno.
Extensible Key Management fornisce anche i seguenti vantaggi:
- Un controllo di autorizzazione aggiuntivo, che consente la separazione dei compiti.
- Prestazioni superiori per la crittografia e la decrittazione basate su hardware.
- Generazione della chiave di crittografia esterna.
- Archiviazione esterna delle chiavi di crittografia, che separa fisicamente dati e chiavi.
- Recupero della chiave di crittografia.
- Ritenzione esterna delle chiavi di crittografia, che consente la rotazione delle chiavi di crittografia.
- Recupero della chiave di crittografia più facile.
- Distribuzione della chiave di crittografia più facile da gestire.
- Eliminazione sicura della chiave di crittografia.
È possibile usare Extensible Key Management per una combinazione di nome utente e password o altri metodi definiti dal driver EKM.
Attenzione
Per la risoluzione di problemi, il supporto tecnico di Microsoft potrebbe richiedere la chiave di crittografia al provider di EKM. Potrebbe anche essere necessario accedere a strumenti o processi del fornitore per risolvere un problema.
Autenticazione con un dispositivo EKM
Un modulo EKM può supportare più di un tipo di autenticazione. Ogni fornitore rende disponibile a SQL Server un solo tipo di autenticazione. Cioè, se il modulo supporta sia tipi di autenticazione di base che altri tipi di autenticazione, espone uno o l'altro, ma non entrambi.
Autenticazione di base specifica per dispositivo EKM tramite nome utente e password
Per i moduli EKM che supportano l'autenticazione di base utilizzando una coppia di nome utente e password, SQL Server fornisce un'autenticazione trasparente tramite le credenziali. Per ulteriori informazioni sulle credenziali, vedere Credenziali (Motore di database).
Puoi creare una credenziale per un provider EKM e mapparla a un login, sia un account Windows che un account SQL Server, per accedere a un modulo EKM per ogni login. Il campo identità della credenziale contiene il nome utente, mentre il campo segreto contiene una password per connettersi a un modulo EKM.
Se non esiste alcuna credenziale associata all'accesso mappata per il provider EKM, SQL Server utilizza la credenziale mappata all'account del servizio.
Un login può avere più credenziali assegnate, purché ciascuna venga utilizzata per un fornitore EKM distinto. Deve esserci una sola credenziale associata per ogni provider EKM e per ogni login. Puoi mappare la stessa credenziale ad altri login.
Altri tipi di autenticazione EKM specifica per dispositivo
Per i moduli EKM che utilizzano un'autenticazione diversa da Windows o combinazioni di nome utente e password, è necessario effettuare l'autenticazione in modo indipendente rispetto a SQL Server.
Crittografia e decrittografia tramite un dispositivo EKM
Utilizzare le seguenti funzioni e caratteristiche per criptare e decriptare i dati utilizzando chiavi simmetriche e asimmetriche:
| Funzione o funzionalità | Riferimento |
|---|---|
| Crittografia con chiave simmetrica | CREATE SYMMETRIC KEY (Transact-SQL) |
| Crittografia a chiave asimmetrica | CREATE ASYMMETRIC KEY (Transact-SQL) |
EncryptByKey(key_guid, 'cleartext', ...) |
ENCRYPTBYKEY (Transact-SQL) |
DecryptByKey(ciphertext, ...) |
DECRYPTBYKEY (Transact-SQL) |
EncryptByAsmKey(key_guid, 'cleartext') |
ENCRYPTBYASYMKEY (Transact-SQL) |
DecryptByAsmKey(ciphertext) |
DECRYPTBYASYMKEY (Transact-SQL) |
Crittografia delle chiavi del database tramite chiavi EKM
SQL Server può usare le chiavi EKM per crittografare altre chiavi in un database. In un dispositivo EKM è possibile creare e utilizzare sia chiavi simmetriche che asimmetriche. È possibile crittografare chiavi simmetriche native (non EKM) con chiavi asimmetriche EKM.
Il seguente esempio crea una chiave simmetrica del database e la cripta utilizzando una chiave su un modulo EKM.
CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO
-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;
Per maggiori informazioni sulle chiavi di database e server in SQL Server, vedi SQL Server e chiavi di crittografia del database (motore di database).
Nota
Non puoi criptare una chiave EKM con un'altra chiave EKM.
SQL Server non supporta la firma dei moduli con chiavi asimmetriche generate da un provider EKM.
Contenuti correlati
- Opzione di configurazione server abilitata dal provider EKM
- Abilitare TDE in SQL Server usando EKM
- Gestione estensibile delle chiavi utilizzando Azure Key Vault (SQL Server)
- SQL Server e chiavi di crittografia del database (motore di database)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- sys.cryptographic_providers (Transact-SQL)
- sys.dm_cryptographic_provider_sessions (Transact-SQL)
- sys.dm_cryptographic_provider_properties (Transact-SQL)
- sys.dm_cryptographic_provider_algorithms (Transact-SQL)
- sys.dm_cryptographic_provider_keys (Transact-SQL)
- sys.credentials (Transact-SQL)
- CREATE CREDENTIAL (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- ALTER ASYMMETRIC KEY (Transact-SQL)
- DROP ASYMMETRIC KEY (Transact-SQL)
- CREATE SYMMETRIC KEY (Transact-SQL)
- ALTER SYMMETRIC KEY (Transact-SQL)
- DROP SYMMETRIC KEY (Transact-SQL)
- OPEN SYMMETRIC 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
- Fai un backup di una chiave master di servizio
- Ripristina una chiave master di servizio
- Crea una chiave maestra del database
- Fai un backup di una chiave principale del database
- Ripristina una chiave maestra del database
- Crea chiavi simmetriche identiche su due server