Introduction
Disponible depuis SQL Server 2008 Enterprise TDE permet de chiffrer un base de données de manière totalement transparente pour les application qui s’en appuient. A l’aide de TDM, les fichier .mdf et .ldf ainsi que les sauvegardes sont chiffrées avec les standards AES ou 3DES.
Le chiffrement est réalisé au niveau de la page. La donnée est chiffrée lors de son écriture sur le disque et déchiffrée lors de sa lecture, chiffrer et déchiffrer l’information au niveau de la page permet aux applications clientes de ne pas nécessiter de prérequis.
Dans le cas où la base de donnée est utilisée dans un mode de réplication (AlwaysOn, Mirroring ou Log Shipping), toutes les bases participant à la réplication seront chiffrées.
Attention, TDM chiffre la donnée au niveau de son support physique ce qui permet de la protéger en d’accès au disque contenant la base de donnée, les communications (client/server) ne sont elles pas chiffrées, une connexion SSL client/server doit être utilisée dans ce cas.
Prérequis et commandes utilisées
- CONTROL DATABASE sur la base de données master
- CREATE CERTIFICATE sur la base de données master
- CONTROL DATABASE sur la base de données chiffrée et l’autorisation VIEW DEFINITION
- CREATE MASTER KEY (Transact-SQL)
- CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
- ALTER DATABASE SET Options (Transact-SQL)
- CREATE CERTIFICATE (Transact-SQL)
Réalisation
1.Créer la “Master Key” de la base de donnée
USE Master; |
Afin d’activer TDE, il est nécessaire de créer une master key. La master key doit être créée depuis la base master.
Microsoft recommande de la clé principale à l’aide de l’instruction BACKUP MASTER KEY et stocker la sauvegarde en lieu sûr.
2. Créer un certificat pour proteger “Master Key” créé précédemment
CREATE CERTIFICATE MyCert |
Créer un certificat appelé “MyDatabase” dans l’exemple plus haut.
3. Créer la “Database Encryption Key”
USE MyDatabase |
Se positionner sur la base à chiffrer.
Créer la clé utilisée pour protéger la base de donnée, cette clé est appelée DEK (Database Encryption Key), cette clé est sécurisée à l’aide du certificat créé précédemment.
Les algorithmes de chiffrement suivant sont proposés :
- AES_128
- AES_192
- AES_256
- TRIPLE_DES_3KEY
4. Activer le chiffrement au niveau de la base à chiffrer
ALTER DATABASE MyDatabase |
Durant le chiffrement la base est toujours accessible le processus de chiffrement étant réalisé en arrière-plan, cependant, des dégradation des performances sont à prévoir.
Vérification
La commande suivante permet de vérifier la progression du chiffrement :
SELECT db_name(database_id),encryption_state,percent_complete, key_algorithm,key_length FROM sys.dm_database_encryption_keys |
Exploitation
En plus des tâches de sauvegarde usuelles, l’utilisation de TDM impose la sauvegarde du certificat utilisé pour le chiffrement de la base. Sans ce certificat, il est impossible d’accéder aux données chiffrée, même depuis une sauvegarde (le chiffrement s’appliquant au niveau de la page).
Le script suivant est un exemple qui présente comment sauvegarder le certificat ainsi que la clé privée (inutile de préciser l’emplacement entre parenthèses dans le switch “WITH PRIVATE KEY” si l’on souhaite exporter le certificat avec sa clé privée) utilisés pour le chiffrement :
— Use master car la master key est stockée dans la base master USE Master GO BACKUP CERTIFICATE MyCert |
0 commentaires