SQL Server et clés de chiffrement de base de données (Moteur de base de données)

S'applique à :SQL Server

SQL Server utilise des clés de chiffrement pour mieux sécuriser les données, les identifiants et les informations de connexion stockées dans une base de données du serveur. SQL Server a deux types de clés : symétriques et asymétriques. Les clés symétriques utilisent le même mot de passe pour chiffrer et déchiffrer des données. Les clés asymétriques utilisent un premier mot de passe pour chiffrer des données (appelé clé publique ) et un second mot de passe pour déchiffrer les données (appelé clé privée ).

Dans SQL Server, les clés de chiffrement comprennent une combinaison de clés publiques, privées et symétriques qui sont utilisées pour protéger les données sensibles. La clé symétrique est créée pendant l’initialisation de SQL Server, lorsque vous démarrez pour la première fois l’instance de SQL Server. SQL Server utilise la clé pour chiffrer les données sensibles stockées dans SQL Server. Le système d’exploitation crée les clés publique et privée, et elles protègent la clé symétrique. Une paire de clés publique et privée est créée pour chaque instance de SQL Server qui stocke des données sensibles dans une base de données.

Applications pour les clés SQL Server et de base de données

SQL Server dispose de deux applications principales pour les clés : une clé principale de service (SMK) générée sur et pour une instance SQL Server, et une clé principale de base de données (DMK) utilisée pour une base de données.

Clé principale du service

La clé principale de service représente la racine de la hiérarchie de chiffrement SQL Server . SQL Server génère le SMK dès le premier démarrage de l’instance, et l’utilise pour chiffrer les mots de passe des serveurs liés, les identifiants et la clé maîtresse de chaque base de données.

Le SMK est chiffré en utilisant la clé machine locale ou l’API de protection des données Windows (DPAPI). DPAPI utilise une clé dérivée des identifiants Windows du compte de service SQL Server. Parce que la clé est protégée de deux façons, la clé maîtresse du service peut être ouverte par le compte de service sous lequel elle a été créée, ou par un principal ayant accès aux identifiants de la machine.

SQL Server utilise l’algorithme de chiffrement AES pour protéger la clé maîtresse du service et la clé maîtresse de la base de données. AES a remplacé l’algorithme 3DES utilisé dans les versions antérieures à SQL Server 2012 (11.x). Après avoir mis à jour une instance du Moteur de base de données depuis l’une de ces versions antérieures, régénérez le SMK et le DMK pour mettre à niveau les clés maîtresses afin d’utiliser AES. Pour plus d’informations sur la régénération du SMK, consultez ALTER SERVICEALTER SERVICE MASTER KEY (Transact-SQL) et ALTER MASTER KEY (Transact-SQL).

Clé principale de base de données

La clé maîtresse de la base de données est une clé symétrique qui protège les clés privées des certificats et des clés asymétriques présentes dans la base de données. Elle peut aussi chiffrer des données, mais elle présente des limitations de longueur qui la rendent moins pratique qu’une clé asymétrique pour les données. Pour permettre le décryptage automatique de la clé maîtresse de la base de données, une copie de la clé est chiffrée à l’aide du SMK. SQL Server stocke cette copie à la fois dans la base de données où la clé est utilisée et dans la master base de données système.

La copie du DMK stockée dans la master base de données système est mise à jour silencieusement chaque fois que le DMK change. Vous pouvez modifier cette valeur par défaut en utilisant l’option DROP ENCRYPTION BY SERVICE MASTER KEY de ALTER MASTER KEY (Transact-SQL). Une clé DMK qui n’est pas chiffrée par la clé principale du service doit être ouverte en utilisant OPEN MASTER KEY (Transact-SQL) et un mot de passe.

Gestion de SQL Server et des clés de base de données

La gestion des clés de chiffrement implique la création de nouvelles clés de base de données, la sauvegarde des clés serveur et de base de données, et la connaissance du moment et de la manière de restaurer, supprimer ou modifier les clés.

Pour gérer les clés symétriques, utilisez les outils inclus dans SQL Server pour effectuer les tâches suivantes :

  • Sauvegardez une copie des clés serveur et de base de données afin de pouvoir les utiliser pour récupérer une installation serveur ou dans le cadre d’une migration planifiée.
  • Restauration d'une clé précédemment enregistrée dans une base de données. Restaurer la clé permet à une nouvelle instance serveur d’accéder à des données existantes qu’elle n’avait pas initialement chiffrées.
  • Suppression des données chiffrées d'une base de données au cas improbable où l'accès à ces données chiffrées se révélerait impossible.
  • Recréer les clés et rechiffrer les données dans l’éventualité peu probable où la clé serait compromise. En tant que bonne pratique en matière de sécurité, recréez périodiquement les clés, par exemple tous les quelques mois, afin de protéger le serveur contre les attaques qui tentent de déchiffrer les clés.
  • Ajout ou suppression d'une instance de serveur à partir d'un déploiement évolutif de serveur dans lequel plusieurs serveurs partagent une base de données unique et la clé qui fournit un chiffrement réversible pour cette base de données.

Informations importantes sur la sécurité

Pour accéder aux objets sécurisés par la clé maîtresse de service, vous devez utiliser soit le compte de service SQL Server que vous avez utilisé pour créer la clé, soit le compte d’ordinateur (machine) lié au système où vous avez créé la clé. Vous pouvez changer le compte de service SQL Server ou le compte ordinateur sans perdre l’accès à la clé. Cependant, si vous changez les deux comptes, vous perdez l’accès à la clé maîtresse du service. Si vous perdez l’accès à la clé maîtresse de service sans l’un de ces deux éléments, vous ne pouvez pas déchiffrer les données et objets que la clé originale a chiffrés.

Vous ne pouvez pas restaurer les connexions sécurisées avec la clé maîtresse de service à moins de posséder cette clé.

Pour accéder aux objets et aux données sécurisés avec la clé maîtresse de la base de données, il suffit du mot de passe qui aide à sécuriser la clé.

Attention

Si vous perdez tout accès aux clés décrites dans cet article, vous perdez l’accès aux objets, connexions et données sécurisés par ces clés. Vous pouvez restaurer la clé maîtresse de service comme décrit dans Restaurer la clé maîtresse de service, ou retourner au système de chiffrement d’origine pour récupérer l’accès. Il n’y a pas de porte dérobée pour rétablir l’accès.