Share via


Extensible Key Management (EKM)

SQL Server offre funzionalità di crittografia dei dati insieme a Extensible Key Management (EKM), usando il provider MICROSOFT Cryptographic API (MSCAPI) per la crittografia e la generazione di chiavi. Le chiavi di crittografia per dati e la crittografia delle chiavi vengono create nei contenitori di chiave temporanei e devono essere esportate da un provider prima di essere archiviate nel database. Questo approccio consente la gestione delle chiavi che include una gerarchia di chiavi di crittografia e un backup delle chiavi, da gestire tramite SQL Server.

Con la crescente richiesta di conformità con le normative e il problema della privacy dei dati, le organizzazioni sfruttano la crittografia come modalità per fornire una soluzione di "difesa approfondita". Questo approccio risulta spesso poco pratico se si utilizzano solo gli strumenti di gestione della crittografia dei database. I produttori di hardware forniscono prodotti che consentono la gestione aziendale delle chiavi usando i Moduli di sicurezza hardware (HSM, Hardware Security Modules). I dispositivi HSM consentono di archiviare le chiavi di crittografia su moduli hardware o software. Questa soluzione è più sicura poiché le chiavi di crittografia non risiedono insieme ai dati di crittografia.

Alcuni fornitori offrono tali dispositivi sia per la gestione delle chiavi sia 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. Spesso MSCAPI offre solo un subset delle funzionalità offerte dai dispositivi HSM. I fornitori possono anche offrire software di gestione per dispositivi HSM, configurazione delle chiavi e accesso alle chiavi.

Le implementazioni di HSM variano da fornitore a fornitore e per usarle con SQL Server richiede un'interfaccia comune. Anche se questa interfaccia è fornita da MSCAPI, supporta solo un subset 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.

La SQL Server Extensible Key Management consente ai fornitori EKM/HSM di terze parti di registrare i moduli in SQL Server. Quando registrato, SQL Server gli utenti possono usare le chiavi di crittografia archiviate nei moduli EKM. Ciò consente SQL Server di accedere alle funzionalità di crittografia avanzate di questi moduli, ad esempio crittografia bulk e decrittografia e funzioni di gestione delle chiavi, ad esempio l'invecchiamento delle chiavi e la rotazione delle chiavi.

Quando si esegue SQL Server in una macchina virtuale di Azure, SQL Server può usare le chiavi archiviate nel Key Vault di Azure. Per altre informazioni, vedere Extensible Key Management tramite Azure Key Vault (SQL Server).

Configurazione EKM

La gestione delle chiavi estendibile non è disponibile in ogni edizione di MicrosoftSQL Server. Per un elenco di funzionalità supportate dalle edizioni di SQL Server, vedere Funzionalità supportate dalle edizioni di SQL Server 2014.

Per impostazione predefinita, Extensible Key Management è disattivato. Per attivare questa caratteristica, utilizzare il comando sp_configure con l'opzione e il valore indicati di seguito, come nell'esempio seguente:

sp_configure 'show advanced', 1  
GO  
RECONFIGURE  
GO  
sp_configure 'EKM provider enabled', 1  
GO  
RECONFIGURE  
GO  

Nota

Se si usa il comando sp_configure per questa opzione nelle edizioni di SQL Server che non supportano EKM, verrà visualizzato un errore.

Per disabilitare la funzionalità, impostare il valore su 0. Per altre informazioni su come impostare le opzioni del server, vedere sp_configure (Transact-SQL).

Utilizzo di EKM

Extensible Key Management di SQL Server consente di archiviare le chiavi di crittografia che proteggono i file di database in un dispositivo off-box, ad esempio una smart card, un dispositivo USB o un modulo EKM/HSM. Consente anche la protezione dei dati da parte degli amministratori del database (tranne i membri del gruppo sysadmin). I dati possono essere crittografati utilizzando le chiavi di crittografia a cui hanno accesso solo gli utenti del database nel modulo esterno EKM/HSM.

Extensible Key Management fornisce anche i seguenti vantaggi:

  • Controllo delle autorizzazioni aggiuntivo (abilitazione della separazione dei compiti).

  • Prestazioni più elevate per crittografia/decrittografia basata su hardware.

  • Generazione della chiave di crittografia esterna.

  • Archiviazione della chiave di crittografia esterna (separazione fisica di dati e chiavi).

  • Recupero della chiave di crittografia.

  • Memorizzazione della chiave di crittografia esterna (consente di abilitare la rotazione della chiave 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 dei problemi, il supporto tecnico Microsoft potrebbe richiedere la chiave di crittografia dal provider 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 provider espone solo un tipo di autenticazione a SQL Server, ovvero se il modulo supporta tipi di autenticazione Basic o Altro, espone uno o l'altro, ma non entrambi.

Autenticazione di base specifica del dispositivo EKM utilizzando nome utente/password

Per i moduli EKM che supportano l'autenticazione di base usando una coppia nome utente/password, SQL Server fornisce l'autenticazione trasparente usando le credenziali. Per altre informazioni sulle credenziali, vedere Credenziali (Motore di database).

Una credenziale può essere creata per un provider EKM e mappata a un account di accesso (sia Windows che SQL Server account) per accedere a un modulo EKM in base all'account di accesso. Il campo Identify della credenziale contiene il nome utente, il campo secret contiene una password per la connessione a un modulo EKM.

Se non sono presenti credenziali di accesso mappate per il provider EKM, vengono usate le credenziali mappate all'account del servizio SQL Server.

Un accesso può disporre di più credenziali di cui è stato eseguito il mapping all'accesso stesso, se vengono utilizzate per provider EKM distinti. È possibile eseguire il mapping di una sola credenziale per provider EKM per accesso. Sulla stessa credenziale è possibile eseguire il mapping ad altri account di accesso.

Altri tipi di autenticazione specifica del dispositivo EKM

Per i moduli EKM con autenticazione diversa da windows o combinazioni di password o utente, l'autenticazione deve essere eseguita in modo indipendente da SQL Server.

Crittografia e decrittografia da un dispositivo EKM

È possibile utilizzare le seguenti funzioni e funzionalità per crittografare e decrittografare i dati utilizzando chiavi simmetriche e asimmetriche:

Funzione o funzionalità Informazioni di riferimento
Crittografia con chiave simmetrica CREATE SYMMETRIC KEY (Transact-SQL)
Crittografia con 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 di chiavi del database tramite chiavi EKM

SQL Server può usare 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.

Nel seguente esempio viene creata una chiave simmetrica del database e viene crittografata utilizzando una chiave in un modulo EKM.

CREATE SYMMETRIC KEY Key1  
WITH ALGORITHM = AES_256  
ENCRYPTION BY EKM_AKey1;  
GO  
--Open database key  
OPEN SYMMETRIC KEY Key1  
DECRYPTION BY EKM_AKey1  

Per altre informazioni sulle chiavi database e server in SQL Server, vedere SQL Server e chiavi di crittografia del database (motore di database).

Nota

Non è possibile crittografare una chiave EKM con un'altra chiave EKM.

SQL Server non supporta i moduli di firma con chiavi asimmetriche generate dal provider EKM.

Opzione di configurazione del server EKM provider enabled

Abilitare TDE usando EKM

Extensible Key Management con Azure Key Vault (SQL Server)

Vedere anche

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 Reporting Services
Eliminare e ricreare chiavi di crittografia (Configuration Manager SSRS)
Aggiungere e rimuovere le chiavi di crittografia per una distribuzione scale-out (Gestione configurazione SSRS)
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