TDE (Transparent Data Encryption) è il meccanismo che  fornisce un modo per proteggere il contenuto dei file di dati di database illeggibili senza l’appropriata chiavi di decrittazione. Aggiunge un ulteriore livello di protezione all’infrastruttura del database crittografando i dati file e transaction log senza la necessità di riconfigurare applicazioni client o per ulteriore sviluppo sforzo. Questo perché l’istanza di SQL Server stessa esegue i lavori di crittografia e decrittografia dati, quindi il processo è trasparente per le applicazioni e utenti. Quando SQL Server scrive le pagine di dati in disco, sono crittografati; quando vengono letti memoria, vengono decifrati.
TDE utilizza la seguente gerarchia di chiavi per crittografare e decrittografare i dati:
  • Chiave principale del servizio (SMK Service Master Key). L’SMK viene creato al momento dell’installazione dell’istanza di SQL Server istanza SMK crittografa e protegge la chiave master del database per il database master. L’SMK è esso stesso crittografato dall’applicazione di protezione dei dati del sistema operativo Windows Interfaccia di programmazione (DPAPI).
  • Chiave master del database (DMK Database Master Key). Il DMK per il database principale viene utilizzato per generare un certificato nrl database master. SQL Server utilizza SMK e una password specificata per generare il DMK, e lo memorizza nel database principale (database master).
  • Certificato del server. Un certificato del server viene generato nel database principale e viene utilizzato per crittografare una chiave di criptazione in ogni database abilitato per TDE.
  • Chiave di crittografia del database (DEK). Una DEK nel database utente viene utilizzata per crittografare l’intero database

Abilitazione della Criptazione Trasparente dei dati

Occorre seguire la seguente procedura

  • Creare una chiave master del servizio nel database master.
  • Creare un certificato del server nel database principale.
  • Creare una chiave di crittografia del database nel database utente che si desidera crittografare.
  •  Abilitare la crittografia per il database utente

La TDE risulta efficace nel caso si desideri spostare un database da un’istanza SQL Server sorgente ad una di destinazione

Il motivo principale per crittografare un database è impedire l’accesso non autorizzato ai dati in esso contenuti in caso di compromissione dei file di dati. Per questo motivo non è possibile allegare i file da un file database crittografato su un altro server e leggerlo dati senza una dettagliata procedura da seguire. Se è necessario spostare un database crittografato in un altro server, è necessario spostare anche il certificato e la relativa chiave di criptazione. L’elenco seguente descrive i passaggi di alto livello per lo spostamento di database con la funzione TDE abilitata:

  • Sul server di origine, scollegare (Detach) il database che si desidera spostare;
  • Copiare o spostare i file del database nella stessa posizione sul server di destinazione;
  • Creare una chiave master del servizio nel database master (SMK Service Master Key) sul server di destinazione;
  • Utilizzare un’istruzione Transact-SQL CREATE CERTIFICATE per generare un certificato del server nella destinazione server dal backup del certificato del server originale e della relativa chiave privata;
  • Collegare il database al server di destinazione (Attach database)