SQL Server et clés de chiffrement de base de données (moteur de base de données)SQL Server and Database Encryption Keys (Database Engine)

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

SQL ServerSQL Server utilise des clés de chiffrement pour mieux sécuriser les données, les informations d’identification et les informations de connexion qui sont stockées dans une base de données du serveur.uses encryption keys to help secure data, credentials, and connection information that is stored in a server database. SQL ServerSQL Server a deux types de clés : des clés symétriques et asymétriques.has two kinds of keys: symmetric and asymmetric. Les clés symétriques utilisent le même mot de passe pour chiffrer et déchiffrer des données.Symmetric keys use the same password to encrypt and decrypt data. 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 ).Asymmetric keys use one password to encrypt data (called the public key) and another to decrypt data (called the private key).

Dans SQL ServerSQL Server, les clés de chiffrement incluent une combinaison d'une clé publique, d'une clé privée et d'une clé symétrique, dont le but est de protéger les données sensibles.In SQL ServerSQL Server, encryption keys include a combination of public, private, and symmetric keys that are used to protect sensitive data. La clé symétrique est créée pendant l'initialisation de SQL ServerSQL Server , lorsque vous démarrez pour la première fois l'instance de SQL ServerSQL Server .The symmetric key is created during SQL ServerSQL Server initialization when you first start the SQL ServerSQL Server instance. Cette clé est utilisée par SQL ServerSQL Server pour chiffrer les données sensibles stockées dans SQL ServerSQL Server.The key is used by SQL ServerSQL Server to encrypt sensitive data that is stored in SQL ServerSQL 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.Public and private keys are created by the operating system and they are used to protect the symmetric key. Une paire de clés privée et publique est créée pour chaque instance de SQL ServerSQL Server qui stocke des données sensibles dans une base de données.A public and private key pair is created for each SQL ServerSQL Server instance that stores sensitive data in a database.

Applications pour les clés SQL Server et de base de donnéesApplications for SQL Server and Database Keys

SQL ServerSQL Server a deux applications principales pour les clés : une clé principale de service (SMK) générée sur et pour une instance de SQL ServerSQL Server , et une clé principale de base de données (DMK) utilisée pour une base de données.has two primary applications for keys: a service master key (SMK) generated on and for a SQL ServerSQL Server instance, and a database master key (DMK) used for a database.

Clé principale du serviceService master key

La clé principale du service représente la racine de la hiérarchie de chiffrement SQL Server.The Service Master Key is the root of the SQL Server encryption hierarchy. La clé SMK est générée automatiquement la première fois que l’instance de SQL ServerSQL 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.The SMK is automatically generated the first time the SQL ServerSQL Server instance is started and is used to encrypt a linked server password, credentials, and the database master key. 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).The SMK is encrypted by using the local machine key using the Windows Data Protection API (DPAPI). L’interface DPAPI utilise une clé dérivée des informations d’identification Windows du compte de service SQL ServerSQL Server et des informations d’identification de l’ordinateur.The DPAPI uses a key that is derived from the Windows credentials of the SQL ServerSQL Server service account and the computer's credentials. 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.The service master key can only be decrypted by the service account under which it was created or by a principal that has access to the machine's credentials.

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.The Service Master Key can only be opened by the Windows service account under which it was created or by a principal with access to both the service account name and its password.

SQL ServerSQL 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).uses the AES encryption algorithm to protect the service master key (SMK) and the database master key (DMK). AES est un algorithme de chiffrement plus récent que 3DES, qui était utilisé dans les versions antérieures.AES is a newer encryption algorithm than 3DES used in earlier versions. Au terme de la mise à niveau d'une instance du Moteur de base de donnéesDatabase Engine vers SQL ServerSQL Server, les clés SMK et DMK doivent être régénérées pour mettre à niveau les clés principales vers AES.After upgrading an instance of the Moteur de base de donnéesDatabase Engine to SQL ServerSQL Server the SMK and DMK should be regenerated in order to upgrade the master keys to 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).For more information about regenerating the SMK, see ALTER SERVICE MASTER KEY (Transact-SQL) and ALTER MASTER KEY (Transact-SQL).

Clé principale de base de donnéesDatabase master key

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.The database master key is a symmetric key that is used to protect the private keys of certificates and asymmetric keys that are present in the database. Elle peut également être utilisée pour chiffrer des données, mais elle présente des limitations de longueur qui la rendent moins pratique pour les données que l'utilisation d'une clé symétrique.It can also be used to encrypt data, but it has length limitations that make it less practical for data than using a symmetric key. 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.To enable the automatic decryption of the database master key, a copy of the key is encrypted by using the 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 .It is stored in both the database where it is used and in the master system database.

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.The copy of the DMK stored in the master system database is silently updated whenever the DMK is changed. 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 .However, this default can be changed by using the DROP ENCRYPTION BY SERVICE MASTER KEY option of the ALTER MASTER KEY statement. 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.A DMK that is not encrypted by the service master key must be opened by using the OPEN MASTER KEY statement and a password.

Gestion des clés SQL Server et de base de donnéesManaging SQL Server and Database Keys

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.Managing encryption keys consists of creating new database keys, creating a backup of the server and database keys, and knowing when and how to restore, delete, or change the keys.

Pour gérer des clés symétriques, vous pouvez utiliser les outils inclus dans SQL ServerSQL Server pour effectuer les opérations suivantes :To manage symmetric keys, you can use the tools included in SQL ServerSQL Server to do the following:

  • 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.Back up a copy of the server and database keys so that you can use them to recover a server installation, or as part of a planned migration.

  • Restauration d'une clé précédemment enregistrée dans une base de données.Restore a previously saved key to a database. Cela permet à une nouvelle instance de serveur d'accéder aux données existantes qu'elle n'a pas chiffrées à l'origine.This enables a new server instance to access existing data that it did not originally encrypt.

  • 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.Delete the encrypted data in a database in the unlikely event that you can no longer access encrypted data.

  • Recréation de clés et nouveau chiffrement des données dans le cas improbable où la sécurité de la clé serait compromise.Re-create keys and re-encrypt data in the unlikely event that the key is compromised. 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.As a security best practice, you should re-create the keys periodically (for example, every few months) to protect the server from attacks that try to decipher the keys.

  • 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.Add or remove a server instance from a server scale-out deployment where multiple servers share both a single database and the key that provides reversible encryption for that database.

Informations de sécurité importantesImportant Security Information

L'accès aux objets sécurisés par la clé principale du service requiert le compte de service SQL ServerSQL Server qui a permis de créer la clé ou le compte d'ordinateur (machine).Accessing objects secured by the service master key requires either the SQL ServerSQL Server Service account that was used to create the key or the computer (machine) account. Autrement dit, l'ordinateur est attaché au système dans lequel la clé a été créée.That is, the computer is tied to the system where the key was created. Vous pouvez modifier le compte de service SQL ServerSQL Server ou le compte d’ordinateur sans perdre l’accès à la clé.You can change the SQL ServerSQL Server Service account or the computer account without losing access to the key. Toutefois, si vous modifiez les deux, vous perdrez l'accès à la clé principale de service.However, if you change both, you will lose access to the service master key. 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.If you lose access to the service master key without one of these two elements, you be unable to decrypt data and objects encrypted by using the original key.

Les connexions sécurisées avec la clé principale de service ne peuvent pas être restaurées sans la clé principale de service.Connections secured with the service master key cannot be restored without the service master key.

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é.Access to objects and data secured with the database master key require only the password that is used to help secure the key.

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.If you lose all access to the keys described earlier, you will lose access to the objects, connections, and data secured by those keys. 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.You can restore the service master key, as described in the links that are shown here, or you can go back to the original encrypting system to recover the access. Il n'existe aucune « porte dérobée » pour récupérer l'accès.There is no "back-door" to recover the access.

Dans cette sectionIn This Section

Service Master KeyService Master Key
Fournit une brève explication pour la clé principale de service et les meilleures pratiques associées.Provides a brief explanation for the service master key and its best practices.

Gestion de clés extensible (EKM)Extensible Key Management (EKM)
Explique comment utiliser des systèmes de gestion de clés tiers avec SQL ServerSQL Server.Explains how to use third-party key management systems with SQL ServerSQL Server.

Sauvegarder la clé principale du serviceBack Up the Service Master Key

Restaurer la clé principale du serviceRestore the Service Master Key

Créer une clé principale de base de donnéesCreate a Database Master Key

Sauvegarder une clé primaire de base de donnéesBack Up a Database Master Key

Restaurer une clé principale de base de donnéesRestore a Database Master Key

Créer des clés symétriques identiques sur deux serveursCreate Identical Symmetric Keys on Two Servers

Activer le chiffrement transparent des données à l’aide de la gestion de clés extensible (EKM)Enable TDE on SQL Server Using EKM

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

Chiffrer une colonne de donnéesEncrypt a Column of Data

CREATE MASTER KEY (Transact-SQL)CREATE MASTER KEY (Transact-SQL)

ALTER SERVICE MASTER KEY (Transact-SQL)ALTER SERVICE MASTER KEY (Transact-SQL)

Restaurer une clé principale de base de donnéesRestore a Database Master Key

Voir aussiSee Also

Sauvegarder et restaurer les clés de chiffrement Reporting Services Back Up and Restore Reporting Services Encryption Keys
Supprimer et recréer des clés de chiffrement (Gestionnaire de configuration de SSRS) Delete and Re-create Encryption Keys (SSRS Configuration Manager)
Ajouter et supprimer des clés de chiffrement pour un déploiement évolutif (Gestionnaire de configuration de SSRS) Add and Remove Encryption Keys for Scale-Out Deployment (SSRS Configuration Manager)
Chiffrement transparent des données (TDE)Transparent Data Encryption (TDE)