- Encryption dei dati ’at rest’, ovvero crittografarli mentre sono archiviati su qualunque archivio file si utilizzi.
- Encrypting dei dati ‘in transito’ che significa criptare il dato mentre si muove attraverso un canale di comunicazione pubblico o privato.
- Encrypting dei dati in uso, ossia quando è utilizzato nella RAM o CPU (cache e registry).
Introduzione alla TDE
La Transparent Data Encryption (TDE) esegue la crittografia dei file di dati di SQL Server, così come dei database SQL di Azure e di Azure Synapse Analytics. Questa crittografia è una crittografia dei dati at rest.
Per proteggere un database utente, è possibile adottare diverse precauzioni, quali:
- Progettazione di un sistema protetto.
- Crittografia degli asset riservati.
- Creazione di un firewall per i server di database.
Tuttavia, un utente malintenzionato che si appropria dei supporti fisici come drivers o tape su cui risiedono i backup può ripristinare o collegare il database ed esplorare i dati. Una soluzione a questa possibile problematica consiste nel crittografare i dati sensibili del database e usare un certificato per proteggere le chiavi di crittografia dei dati. Questa soluzione impedisce l'uso dei dati senza le chiavi.
La TDE esegue la crittografia e la decrittografia delle operazioni di I/O di file di dati e log in tempo reale. Per la crittografia viene usata una chiave di crittografia del database (DEK).
TDE consente, come abbiamo visto, di proteggere i dati at rest, ovvero i file di dati e di log e assicura la conformità a numerose leggi, normative e linee guida stabilite in vari settori. Gli sviluppatori di software possono crittografare i dati usando gli algoritmi di crittografia AES e 3DES senza modificare le applicazioni esistenti, da qui deriva il termine Transparent.
Da notare che:
- La TDE non è disponibile per i database di sistema master, model ed msdb mentre il tempdb viene automaticamente criptato quando la TDE viene applicata a un database utente ma non può essere criptato direttamente.
- La TDE non effettua l’encryption dei dati sul canale di comunicazione.
- Progettazione di un sistema protetto.
Come lavora la TDE
Gerarchia delle chiavi nella TDE
Abilitare Transparent Data Encryption
- Creare una master key.
- Creare o ottenere un certificato protetto dalla master key.
- Creare una encryption key per il database e proteggerla mediante il certificato.
- Impostare il database per l'uso della crittografia.
USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>'; GO CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate'; GO USE AdventureWorks2022; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; GO ALTER DATABASE AdventureWorks2022 SET ENCRYPTION ON; GO
Impatto sulle Performance
L’impatto sulle performance della TDE è stimato intorno al 3-5% e può essere ulteriormente ridotto se la maggior parte dei dati a cui si effettua l'accesso è mantenuto in memoria. L’impatto sarà principalmente sulla CPU, sull’I/O sarà più basso.
Database Backups
BACKUP CERTIFICATE MyServerCert TO FILE = 'C:\temp\TDE_Cert' WITH PRIVATE KEY ( FILE = 'C:\temp\TDE_CertKey.pvk' ,ENCRYPTION BY PASSWORD = 'InsertStrongPasswordHere' )
USE MASTER GO CREATE CERTIFICATE TDECert FROM FILE = 'C:\Temp\TDE_Cert' WITH PRIVATE KEY ( FILE = 'C:\TDECert_Key.pvk' ,DECRYPTION BY PASSWORD = 'InsertStrongPasswordHere' );
A questo punto il database potrà essere ripristinato sul nuovo server senza alcun problema.
di Anna Bruno, pubblicato il 15 marzo 2024