Esplorare Transparent Data Encryption
Transparent Data Encryption (TDE) di Microsoft SQL Server crittografa tutti i dati all'interno di un database di destinazione a livello di pagina. I dati vengono crittografati mentre vengono scritti nella pagina dei dati su disco e decrittografati quando vengono letti in memoria, causando la crittografia di tutte le pagine di dati sul disco.
TDE non esegue la crittografia dei dati a livello di tabella o di colonna. Chiunque disponga delle autorizzazioni appropriate può leggere, copiare e condividere i dati. La crittografia dei dati inattivi protegge dal ripristino di un backup in un server non protetto o dalla copia di file di database e log delle transazioni in un altro server non protetto. Durante l'operazione di backup non viene eseguita alcuna decrittografia.
TDE protegge i dati inattivi ed è conforme alle varie leggi, normative e linee guida del settore. Consente agli sviluppatori di software di crittografare i dati usando gli algoritmi di crittografia AES e 3DES senza modificare le applicazioni esistenti.
I database creati nel database SQL di Azure dopo maggio 2017 hanno TDE abilitato automaticamente. I database creati prima di maggio 2017 richiedono che TDE sia abilitato manualmente. Per Istanza gestita di SQL di Azure, TDE è abilitato per impostazione predefinita per i database creati dopo febbraio 2019. I database creati prima di febbraio 2019 richiedono che TDE sia abilitato manualmente.
Per abilitare TDE in un database SQL di Azure, modificare il database nel portale di Azure. Dal riquadro Transparent Data Encryption selezionare l'opzione per abilitare la crittografia dei dati.
Per impostazione predefinita, i database nel database SQL di Azure vengono crittografati usando un certificato fornito da Microsoft (chiave gestita dal servizio). Azure offre anche un'opzione BYOK (Bring Your Own Key), che consente di usare una chiave gestita dal cliente creata dall'azienda e caricata in Azure Key Vault. Se la chiave gestita dal cliente viene rimossa da Azure, le connessioni al database vengono chiuse e l'accesso al database viene negato.
L'abilitazione di TDE all'interno di un database di Microsoft SQL Server è un processo semplice perché sono necessari solo alcuni comandi T-SQL. Il processo include i passaggi seguenti:
- Impostare una chiave master all'interno del database master usando il comando
CREATE MASTER KEY ENCRYPTION. - Creare un certificato nel database master usando il
CREATE CERTIFICATEcomando . - Creare una chiave di crittografia del database all'interno del database usando il
CREATE DATABASE ENCRYPTION KEYcomando . - Abilitare la chiave di crittografia usando il
ALTER DATABASEcomando .
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<your-pwd>';
GO
CREATE CERTIFICATE MyServerCert
WITH SUBJECT = 'TDEDemo_Certificate';
GO
USE [TDE_Demo];
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE TDE_Demo SET ENCRYPTION ON;
GO
Dopo aver abilitato TDE, è necessario tempo per crittografare il database perché ogni pagina deve essere letta, crittografata e riscritta su disco. Maggiore è il database, più lungo è il tempo necessario per questo processo. Questo processo in background viene eseguito con priorità bassa per evitare l'overload dell'I/O o della CPU del sistema.
Il certificato usato da TDE deve essere sottoposto a backup e archiviato manualmente in modo sicuro. SQL Server si integra con Enterprise Key Manager (EKMs) come Azure Key Vault per gestire le chiavi di crittografia. La gestione del certificato è fondamentale perché, se viene persa e il database deve essere ripristinato da un backup, il ripristino non riesce perché il database non può essere letto.
Nota
Per usare TDE con i database in un gruppo di disponibilità Always On è necessario eseguire il backup e il ripristino del certificato usato per crittografare il database negli altri server all'interno del gruppo di disponibilità che ospita copie del database.
Chiavi gestite dal cliente
In alternativa, è possibile usare l'approccio Bring Your Own Key (BYOK) e sfruttare un Key Vault di Azure. I vantaggi dell'uso delle chiavi gestite dal cliente sono:
- Controllo completo e granulare sull'utilizzo e sulla gestione della protezione TDE
- Trasparenza dell'utilizzo della protezione TDE
- Possibilità di implementare la separazione dei compiti nella gestione delle chiavi e dei dati all'interno dell'organizzazione
- L'amministratore del Key Vault può revocare le autorizzazioni di accesso alle chiavi per rendere il database cifrato inaccessibile.
- Gestione centralizzata delle chiavi in AKV
- Maggiore attendibilità per gli utenti e i clienti perché AKV è progettato in modo che Microsoft non possa visualizzare o estrarre chiavi di crittografia
È anche possibile sfruttare l'uso di un'identità gestita assegnata dall'utente (UMI)con chiavi gestite dal cliente per TDE, che:
- Consente di preautorizzare l'accesso a Key Vault per i server logici SQL di Azure creando una managed identity assegnata dall'utente e concedendole l'accesso a Key Vault, anche prima della creazione del server o del database.
- Consente la creazione di un server logico di Azure SQL con TDE e chiave gestita dal cliente (CMK) abilitati.
- Consente di assegnare la stessa identità gestita assegnata dall’utente a più server, eliminando la necessità di attivare individualmente l’identità gestita assegnata dal sistema per ciascun server logico di Azure SQL e fornendogli accesso all’insieme di credenziali delle chiavi.
- Fornisce la funzionalità di imporre l'utilizzo di CMK al momento della creazione del server con un criterio predefinito di Azure disponibile.
La rotazione automatica delle chiavi viene introdotta per le chiavi gestite dal cliente tramite TDE. Se abilitato, il server controlla continuamente il key vault per eventuali nuove versioni della chiave utilizzata come protettore TDE. Se viene rilevata una nuova versione della chiave, la protezione TDE nel server verrà ruotata automaticamente alla versione più recente entro 60 minuti.
Crittografia dischi di Azure
Oltre a queste funzionalità di sicurezza di SQL Server, le macchine virtuali di Azure includono un livello di sicurezza aggiuntivo, Crittografia dischi di Azure, una funzionalità che consente di proteggere i dati e soddisfare gli impegni aziendali e di conformità. Se si usa TDE, i dati sono protetti da più livelli di crittografia con Crittografia dischi di Azure.