Partager via


Clés sql Server et chiffrement de base de données (moteur de base de données)

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 les données. Les clés asymétriques utilisent un mot de passe pour chiffrer les données (appelée clé publique ) et une autre pour déchiffrer les données (appelée 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 publiques et privées sont créées par le système d’exploitation et sont utilisées pour 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 sql Server et clés 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.

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. Le SMK est chiffré à l’aide de la clé d’ordinateur locale à 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 du service ne peut être déchiffrée que 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 de base de données est une clé symétrique utilisée pour 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é symétrique.

Quand elle est créée, la clé principale est chiffrée à l’aide de l’algorithme Triple DES et d’un mot de passe fourni par l’utilisateur. Pour activer le déchiffrement automatique de la clé principale, une copie de la clé est chiffrée à l’aide de la clé SMK. Il est stocké à la fois dans la base de données où il est utilisé et dans la master base de données système.

La copie du DMK stocké dans la master base de données système est mise à jour en mode silencieux chaque fois que le DMK est modifié. Toutefois, cette valeur par défaut peut être modifiée à l’aide de l’option DROP ENCRYPTION BY SERVICE MASTER KEY de l’instruction ALTER MASTER KEY . Un DMK qui n’est pas chiffré par la clé principale du service doit être ouvert à 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 des clés de base de données, à créer une sauvegarde du serveur et des clés de base de données, et à savoir quand et comment restaurer, supprimer ou 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 :

  • Sauvegardez une copie des clés de serveur et de base de données pour pouvoir les utiliser pour récupérer une installation du serveur ou dans le cadre d’une migration planifiée.

  • Restaurez 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.

  • Supprimez les données chiffrées dans une base de données dans l’événement peu probable où vous ne pouvez plus accéder aux données chiffrées.

  • Recréez des clés et rechiffrez les données dans l’événement peu probable où la clé est compromise. En guise de bonne pratique de sécurité, vous devez recréer régulièrement les clés (par exemple, tous les quelques mois) pour protéger le serveur contre les attaques qui tentent de déchiffrer les clés.

  • Ajoutez ou supprimez une instance de serveur d’un déploiement avec montée en puissance parallèle du serveur où 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é

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 lié au système où 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 perdez l’accès à la clé principale du service. Si vous perdez l’accès à la clé principale de service sans l’un de ces deux éléments, vous ne pouvez pas déchiffrer les données et les objets chiffrés à l’aide de 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 du service.

L’accès aux objets et aux données sécurisés avec la clé principale de base de données nécessite uniquement le mot de passe utilisé pour sécuriser la clé.

Avertissement

Si vous perdez tout accès aux clés décrites précédemment, vous perdrez l’accès aux objets, connexions et données sécurisés par ces clés. Vous pouvez restaurer la clé principale du service, comme décrit dans les liens affichés ici, ou revenir au système de chiffrement d’origine pour récupérer l’accès. Il n’y a pas de « porte arrière » pour récupérer l’accès.

Dans cette section

Clé principale du service
Fournit une brève explication de la clé principale de service et de ses meilleures pratiques.

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é principale 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

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

Activer TDE à l’aide d’EKM

CREATE MASTER KEY (Transact-SQL)

ALTÉRER LA CLÉ DE SERVICE MAÎTRE (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 SSRS)
Ajouter et supprimer des clés de chiffrement pour le déploiement de Scale-Out (Gestionnaire de configuration SSRS)
Chiffrement transparent des données (TDE)