Extensible Key Management (EKM)

SQL Server fornisce funzionalità di crittografia dei dati insieme a Extensible Key Management (EKM), l'utilizzo del provider di API di crittografia Microsoft (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 delle chiavi di crittografia e un backup delle chiavi, che devono essere gestiti da 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 effettuano la gestione aziendale delle chiavi utilizzando 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 HSM variano da fornitore a fornitore e il loro utilizzo 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.

SQL Server Extensible Key Management consente ai fornitori di EKM/HSM di terze parti di registrare i propri moduli in SQL Server. Quando registrati, gli utenti di SQL Server possono utilizzare le chiavi di crittografia archiviate nei moduli EKM. Ciò consente a SQL Server di accedere alle funzionalità di crittografia avanzate supportate da tali moduli, quali la crittografia e decrittografia bulk e le funzioni di gestione delle chiavi quali il periodo di permanenza e la rotazione delle chiavi.

Configurazione EKM

Extensible Key Management non è disponibile in ogni edizione di Microsoft SQL Server. Per un elenco delle funzionalità supportate dalle edizioni di SQL Server, vedere Funzionalità supportate dalle edizioni di SQL Server 2012.

Per impostazione predefinita, Extensible Key Management è disattivato. Per abilitare questa funzionalità, utilizzare il comando sp_configure con i seguenti opzione e valore, come nel seguente esempio:

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

[!NOTA]

Se si utilizza il comando sp_configure per questa opzione su edizioni di SQL Server che non supportano EKM, verrà restituito un errore.

Per disabilitare la funzionalità, impostare il valore su 0. Per ulteriori informazioni sull'impostazione delle opzioni del server, vedere sp_configure (Transact-SQL).

Utilizzo di EKM

SQL Server Extensible Key Management consente di abilitare le chiavi di crittografia che proteggono i file del database da archiviare in un dispositivo esterno come una smartcard, un dispositivo USB o un modulo EKM/HSM. Consente anche la protezione dei dati da parte degli amministratori del database, ad eccezione dei 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 utilizzare Extensible Key Management per una combinazione di nome utente e password o altri metodi definiti dal driver EKM.

Nota di attenzioneAttenzione

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. Ciascun provider espone solo un tipo di autenticazione a SQL Server, ovvero se il modulo supporta i tipi di autenticazione di base o di altro tipo esporrà l'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 utilizzando una coppia username/password, SQL Server fornisce l'autenticazione trasparente utilizzando le credenziali. Per ulteriori informazioni sulle credenziali, vedere Credenziali (Motore di database).

È possibile creare una credenziale per un provider EKM ed eseguirne il mapping a un accesso (sia account Windows che SQL Server) per accedere a un modulo EKM in base agli accessi. Il campo Identify della credenziale contiene il nome utente; il campo secret contiene una password per connettersi a un modulo EKM.

Se non è presente una credenziale su cui eseguire il mapping a un accesso per il provider EKM, viene utilizzata la credenziale su cui è stato eseguito il mapping all'account di 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. È possibile eseguire il mapping della stessa credenziale ad altri accessi.

Altri tipi di autenticazione specifica del dispositivo EKM

Per i moduli EKM con autenticazione diversa da Windows o combinazioni user/password, l'autenticazione deve essere eseguita indipendentemente 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à

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ò utilizzare 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.

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 ulteriori informazioni sulle chiavi del server e del database in SQL Server, vedere Chiavi di crittografia del database e di SQL Server (Motore di database).

[!NOTA]

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

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

Attività correlate

Opzione di configurazione del server EKM provider enabled

Abilitare TDE utilizzando EKM

Vedere anche

Riferimento

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)

Concetti

Eseguire il backup e il ripristino delle chiavi di crittografia di Reporting Services (modalità nativa di SSRS)

Eliminare e ricreare chiavi di crittografia

Aggiungere e rimuovere le chiavi di crittografia per una distribuzione con scalabilità orizzontale

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