Transparent Data Encryption
L’infrastruttura di cifratura basata su PKI è stata introdotta in SQL Server 2005 (a questo link trovate un mio articolo sull'argomento). L’implementazione, tuttavia, richiede che vengano modificate le applicazioni di accesso ai dati per far uso delle funzioni necessarie per cifrare e decifrare le informazioni oltre che aprire le chiavi simmetriche utilizzate per cifrare i dati sensibili. Tutto questo ha rappresentato un ostacolo all’implementazione della cifratura dei dati che il Transparent Data Encryption (TDE) in SQL Server 2008 si propone di superare.
Con questa feature vengono cifrate le informazioni memorizzate nelle pagine dati su disco (in RAM i dati sono in chiaro) in maniera trasparente per le applicazioni di accesso ai dati. Rispetto all’infrastruttura PKI presente anche in SQL Server 2005 la TDE cifra l’intero database e non è possibile selezionare gli attributi che meritano di essere protetti rispetto a quelli meno critici.
La TDE può essere implementata insieme alla compressione dei dati. Quando la pagina è in RAM, questa viene compressa per poi essere cifrata nel momento di essere scritta su disco; quando deve essere recuperata, la pagina viene decifrata per essere posta in RAM e da qui, eventualmente, decompressa quando viene letta dall’applicazione client. Un database in cui sia abilitata la TDE si rivela poco comprimibile in occasione di un eventuale backup compresso mentre non viene pregiudicata la possibilità di compressione dei dati.
Per poter cifrare un database è necessario definire la MASTER KEY nel master; con questa MK si genera e viene protetto un certificato digitale e questo certificato rappresenterà la protezione del nostro database. Affinchè sia possibile ripristinare il database su un’altra istanza occorre che sia presente il certificato che ha cifrato il database. Diversamente non sarà possibile ripristinare o eseguire l’attach del database.
La TDE, al pari della data compression, è utilizzabile con il database mirroring. Il traffico di mirroring non è automaticamente cifrato (la cifratura riguarda solo le pagine dati su disco). Per cifrare il traffico si utilizza la cifratura a livello di ENDPOINT.
Nella pagina contenente il materiale del workshop UGISS tenutosi a Roma lo scorso mese di maggio trovate, nelle demo, degli esempi di utilizzo della TDE; altri esempi li potete trovare in questo post e in quest'altro.