Partager via


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. La clé est utilisée par SQL Server pour chiffrer les données sensibles qui sont stockées dans SQL Server. Les clés publique et privée sont créées par le système d'exploitation et servent à protéger 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 du service représente la racine de la hiérarchie de chiffrement SQL Server. La SMK est générée automatiquement lors du premier démarrage de l’instance de SQL Server. Elle est ensuite utilisée pour chiffrer un mot de passe de serveur lié, des identifiants et une clé principale de base de données dans chaque base de données. La clé SMK est chiffrée en utilisant la clé de l’ordinateur local à l’aide de l’API de protection des données Windows (DPAPI). L’interface DPAPI utilise une clé dérivée des identifiants Windows du compte de service SQL Server et des identifiants de l’ordinateur. La clé principale de service peut être déchiffrée uniquement par le compte de service sous lequel elle a été créée ou par un principal qui a accès aux informations d'identification de l'ordinateur.

La clé principale du service ne peut être ouverte que par le compte de service Windows sous lequel elle a été créée ou par un principal ayant accès au nom du compte de service et à son mot de passe.

SQL Server utilise l’algorithme de chiffrement AES pour protéger la clé principale de service (SMK) et la clé principale de base de données (DMK). AES est un algorithme de chiffrement plus récent que 3DES, qui était utilisé dans les versions antérieures. Au terme de la mise à niveau d’une instance du Moteur de base de données vers SQL Server, les clés SMK et DMK doivent être régénérées pour mettre à niveau les clés principales vers AES. Pour plus d’informations sur la régénération de la clé SMK, consultez ALTER SERVICE MASTER KEY (Transact-SQL) et ALTER MASTER KEY (Transact-SQL).

Clé principale de base de données

La clé principale de base de données est une clé symétrique qui permet de protéger les clés privées des certificats et des clés asymétriques présentes dans la base de données. Elle peut également être utilisée pour chiffrer des données. Toutefois, elle présente des limitations de longueur qui la rendent moins pratique pour les données par rapport à l’utilisation d’une clé asymétrique. Pour activer le déchiffrement automatique de la clé principale de base de données, une copie de la clé est chiffrée au moyen de la clé SMK. Elle est stockée à la fois dans la base de données où elle est utilisée et dans la base de données système master .

La copie de la clé DMK stockée dans la base de données système master est mise à jour silencieusement chaque fois que la clé DMK est modifiée. Toutefois, vous pouvez modifier ce comportement par défaut à l’aide de l’option DROP ENCRYPTION BY SERVICE MASTER KEY de l’instruction ALTER MASTER KEY . Une DMK qui n’est pas chiffrée par la clé principale de service doit être ouverte à l’aide de l’instruction OPEN MASTER KEY et d’un mot de passe.

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

La gestion des clés de chiffrement consiste à créer de nouvelles clés de base de données, à créer une sauvegarde des clés de serveur et de base de données et à savoir quand et comment restaurer, supprimer et modifier les clés.

Pour gérer des clés symétriques, vous pouvez utiliser les outils inclus dans SQL Server pour effectuer les opérations suivantes :

  • Sauvegarde d'une copie des clés de serveur et de base de données permettant de les utiliser pour récupérer une installation de 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. Cela permet à une nouvelle instance de serveur d'accéder aux données existantes qu'elle n'a pas chiffrées à l'origine.

  • 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éation de clés et nouveau chiffrement des données dans le cas improbable où la sécurité de la clé serait compromise. Comme meilleure pratique de sécurité, vous devez recréer les clés périodiquement (par exemple, tous les deux ou trois mois) pour protéger le serveur contre des attaques visant à 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 de sécurité importantes

L’accès aux objets sécurisés par la clé principale du service requiert le compte de service SQL Server qui a permis de créer la clé ou le compte d’ordinateur (machine). Autrement dit, l'ordinateur est attaché au système dans lequel la clé a été créée. Vous pouvez modifier le compte de service SQL Server ou le compte d’ordinateur sans perdre l’accès à la clé. Toutefois, si vous modifiez les deux, vous perdrez l'accès à la clé principale de service. Si vous perdez l’accès à la clé principale de service sans un de ces deux éléments, vous ne pouvez pas déchiffrer les données et les objets chiffrés en utilisant la clé d’origine.

Les connexions sécurisées avec la clé principale de service ne peuvent pas être restaurées sans la clé principale de service.

L'accès à des objets et données sécurisés avec la clé principale de base de données requiert uniquement le mot de passe utilisé pour sécuriser la clé.

Attention

Si vous perdez tout accès aux clés décrites précédemment, vous perdez l'accès aux objets, connexions et données sécurisés par ces clés. Vous pouvez restaurer la clé principale de service, comme décrit dans les liens répertoriés ici, ou vous pouvez revenir au système de chiffrement d'origine pour récupérer l'accès. Il n'existe aucune « porte dérobée » pour récupérer l'accès.

Dans cette section

Clé principale du service
Fournit une brève explication pour la clé principale de service et les meilleures pratiques associées.

Gestion de clés extensible (EKM)
Explique comment utiliser des systèmes d’administration de clés tiers avec SQL Server.

Sauvegarder la clé principale du service

Restaurer la clé principale du service

Créer une clé principale de base de données

Sauvegarder une clé primaire de base de données

Restaurer une clé principale de base de données

Créer des clés symétriques identiques sur deux serveurs

Activer le chiffrement transparent des données à l’aide de la gestion de clés extensible (EKM)

Gestion de clés extensible à l’aide d’Azure Key Vault (SQL Server)

Chiffrer une colonne de données

CREATE MASTER KEY (Transact-SQL)

ALTER SERVICE MASTER KEY (Transact-SQL)

Restaurer une clé principale de base de données

Voir aussi

Sauvegarder et restaurer les clés de chiffrement Reporting Services
Supprimer et recréer des clés de chiffrement (Gestionnaire de configuration de SSRS)
Ajouter et supprimer des clés de chiffrement pour un déploiement avec montée en puissance parallèle (Gestionnaire de configuration de SSRS)
Chiffrement transparent des données (TDE)