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 sécuriser les données, les informations d’identification et les informations de connexion stockées dans une base de données 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 incluent une combinaison de clés publiques, privées et symétriques utilisées pour protéger les données sensibles. La clé symétrique est créée lors de l’initialisation de SQL Server lorsque vous démarrez d’abord l’instance SQL Server. La clé est utilisée par SQL Server pour chiffrer les données sensibles 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 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 a deux applications principales pour les clés : une clé principale de service (SMK) générée 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. Le SMK est généré automatiquement la première fois que l’instance SQL Server est démarrée et utilisée pour chiffrer un mot de passe de serveur lié, des informations d’identification et la 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). DpAPI utilise une clé dérivée des informations d’identification Windows du compte de service SQL Server et des informations d’identification 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 du 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. Après la mise à niveau d’une instance du moteur de base de données vers SQL Server, le SMK et le DMK doivent être régénérés afin de mettre à niveau les clés principales vers AES. Pour plus d’informations sur la régénération du 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. Il peut également être utilisé pour chiffrer des données, mais il a des limitations de longueur qui le rendent moins pratique pour les données que 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 nécessite le compte de service SQL Server utilisé pour 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.

Contenu de la 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 de gestion 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)