1. Objectifs
L’objectif de ce document est de montrer comment crypter la base de données afin d’éviter de restaurer cette dernière sur n’importe quelle autre instance sans avoir la clé de chiffrement.
2. Périmètre
Le chiffrement est un processus visant à rendre des données inintelligibles à l’aide d’une clé ou d’un mot de passe. Les données sont alors inutiles en l’absence du mot de passe ou de la clé de déchiffrement correspondante. Le chiffrement ne résout pas les problèmes de contrôle d’accès. Toutefois, il améliore la sécurité en limitant les pertes de données même si les contrôles d’accès sont contournés.
Vous pouvez utiliser le chiffrement dans SQL Server pour les connexions, les données et les procédures stockées.
SQL Server fournit les mécanismes de chiffrement suivants :
- Fonctions Transact-SQL : Il faut prévoir le développement adéquat
- Certificats : Cryptage de flux SQL Server avec SSL
- Chiffrement transparent des données (TDE) : Cryptage des fichiers data et log
Dans la suite, on ne va aborder que le TDE.
Le chiffrement transparent des données (TDE) est un cas spécial de chiffrement à l’aide d’une clé symétrique. L’ensemble de la base de données est chiffré à l’aide de cette clé symétrique, appelée clé de chiffrement de base de données. La clé de chiffrement de base de données est protégée par d’autres clés ou certificats qui sont eux-mêmes protégés par la clé principale de base de données ou par une clé asymétrique.
3. Hiérarchie de chiffrement
4. Etat de chiffrement d’une base de données
Pour retourner des informations sur l’état de chiffrement d’une base de données et de ses clés de chiffrement de base de données associées (database_id, encryption_state, etc…), exécuter la dmv suivante : sys.dm_database_encryption_keys
5. Utilisation du chiffrement transparent des données
Pour utiliser le chiffrement transparent des données, procédez comme suit :
5.1. Créer une master key
5.2. Créer ou obtenir un certificat protégé par la master key
5.3. Créer une clé de chiffrement de base de données et la protéger à l’aide du certificat
Un message Warning s’affichera si tout se déroule normalement, pour nous avertir de l’importance de ce certificat et de l’obligation de le sauvegarder (sans ce certificat, on ne pourra pas restaurer une base cryptée sur cette instance dans une autre instance).
5.4. Configurer la base de données pour qu’elle utilise le chiffrement
5.5. Sauvegarder le certificat
6. Restaurer une base de données chiffrée sur une autre instance
6.1. Créer une master key
Dans l’instance destination, il faut créer une master key si elle n’existe pas déjà, avec le même mot de passe que celui de la master key dans l’instance source.
6.2. Restaurer le certificat de l’instance source dans l’instance destination
6.3. Restaurer la base de données dans l’instance destination
7. Etat de chiffrement d’une base de données