Gestion de clés extensible (EKM)Extensible Key Management (EKM)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server fournit des fonctions de chiffrement de données en même temps que la gestion de clés extensible (EKM, Extensible Key Management) à l’aide du fournisseur de l’API Microsoft Cryptography (MSCAPI) pour le chiffrement et la génération de clés.provides data encryption capabilities together with Extensible Key Management (EKM), using the Microsoft Cryptographic API (MSCAPI) provider for encryption and key generation. Les clés de chiffrement pour les données et le chiffrement à clé sont créés dans des conteneurs de clé transitoires, et ils doivent être exportés d'un fournisseur avant d'être stockés dans la base de données.Encryption keys for data and key encryption are created in transient key containers, and they must be exported from a provider before they are stored in the database. Cette approche permet à la gestion des clés, qui comprend une hiérarchie de clé de chiffrement et une sauvegarde de clé, d'être gérée par SQL ServerSQL Server.This approach enables key management that includes an encryption key hierarchy and key backup, to be handled by SQL ServerSQL Server.

Face à la demande croissante de conformité aux normes et aux problèmes liés à la confidentialité des données, les organisations font appel au chiffrement afin d'apporter une solution de « défense en profondeur ».With the growing demand for regulatory compliance and concern for data privacy, organizations are taking advantage of encryption as a way to provide a "defense in depth" solution. Cette approche est souvent peu pratique car elle utilise uniquement des outils de gestion de chiffrement de base de données.This approach is often impractical using only database encryption management tools. Les fabricants de matériel fournissent des produits qui prennent en charge la gestion des clés dans l’entreprise à l’aide des modules de la sécurité matériels .Hardware vendors provide products that address enterprise key management by using Hardware Security Modules (HSM). Les périphériques HSM stockent des clés de chiffrement dans les modules matériels ou logiciels.HSM devices store encryption keys on hardware or software modules. Il s'agit d'une solution plus sécurisée parce que les clés de chiffrement ne résident pas avec les données de chiffrement.This is a more secure solution because the encryption keys do not reside with encryption data.

Plusieurs fournisseurs offrent HSM pour la gestion des clés et l'accélération du chiffrement.A number of vendors offer HSM for both key management and encryption acceleration. Les périphériques HSM utilisent des interfaces matérielles avec un processus serveur comme intermédiaire entre une application et un HSM.HSM devices use hardware interfaces with a server process as an intermediary between an application and an HSM. Les fournisseurs implémentent également des fournisseurs MSCAPI sur leurs modules qui peuvent être matériels ou logiciels.Vendors also implement MSCAPI providers over their modules, which might be hardware or software. MSCAPI offre souvent seulement un sous-ensemble des fonctionnalités offertes par un HSM.MSCAPI often offers only a subset of the functionality that is offered by an HSM. Les fournisseurs peuvent également fournir le logiciel de gestion pour HSM, la configuration de clé et l'accès aux clés.Vendors can also provide management software for HSM, key configuration, and key access.

Les implémentations de modules de sécurité matériels varient selon les fournisseurs, et leur utilisation avec SQL ServerSQL Server nécessite une interface commune.HSM implementations vary from vendor to vendor, and to use them with SQL ServerSQL Server requires a common interface. Si MSCAPI fournit cette interface, elle prend en charge uniquement un sous-ensemble des fonctionnalités HSM.Although the MSCAPI provides this interface, it supports only a subset of the HSM features. Elle connaît aussi d'autres limitations, telles que l'incapacité à rendre persistantes en mode natif des clés symétriques et une absence de prise en charge orientée session.It also has other limitations, such as the inability to natively persist symmetric keys, and a lack of session-oriented support.

La gestion de clés extensible SQL ServerSQL Server permet aux fournisseurs tiers EKM/HSM d’enregistrer leurs modules dans SQL ServerSQL Server.The SQL ServerSQL Server Extensible Key Management enables third-party EKM/HSM vendors to register their modules in SQL ServerSQL Server. Une fois enregistrés, les utilisateurs de SQL ServerSQL Server peuvent utiliser les clés de chiffrement stockées dans les modules EKM.When registered, SQL ServerSQL Server users can use the encryption keys stored on EKM modules. SQL ServerSQL Server peut ainsi accéder aux fonctionnalités de chiffrement avancées offertes par ces modules, telles que le chiffrement et le déchiffrement en bloc, et les fonctions de gestion de clés, telles que le vieillissement de clé et la permutation de clé.This enables SQL ServerSQL Server to access the advanced encryption features these modules support such as bulk encryption and decryption, and key management functions such as key aging and key rotation.

Quand vous exécutez SQL ServerSQL Server dans une machine virtuelle Azure, SQL ServerSQL Server peut utiliser des clés stockées dans Azure Key Vault.When running SQL ServerSQL Server in an Azure VM, SQL ServerSQL Server can use keys stored in the Azure Key Vault. Pour plus d’informations, consultez Gestion de clés extensible à l’aide d’Azure Key Vault (SQL Server).For more information, see Extensible Key Management Using Azure Key Vault (SQL Server).

Configuration EKMEKM Configuration

La gestion de clés extensible n’est pas disponible dans toutes les éditions de MicrosoftMicrosoft SQL ServerSQL Server.Extensible Key Management is not available in every edition of MicrosoftMicrosoft SQL ServerSQL Server. Pour obtenir la liste des fonctionnalités prises en charge par les éditions de SQL ServerSQL Server, consultez Fonctionnalités prises en charge par les éditions de SQL Server 2016.For a list of features that are supported by the editions of SQL ServerSQL Server, see Features Supported by the Editions of SQL Server 2016.

Par défaut, la gestion de clés extensible est désactivée.By default, Extensible Key Management is off. Pour activer cette fonctionnalité, utilisez la commande sp_configure avec l'option et la valeur suivantes, comme dans l'exemple ci-après :To enable this feature, use the sp_configure command that has the following option and value, as in the following example:

sp_configure 'show advanced', 1  
GO  
RECONFIGURE  
GO  
sp_configure 'EKM provider enabled', 1  
GO  
RECONFIGURE  
GO  

Note

Si vous utilisez la commande sp_configure pour cette option sur les éditions de SQL ServerSQL Server qui ne prennent pas en charge la gestion de clés extensible, vous recevrez un message d’erreur.If you use the sp_configure command for this option on editions of SQL ServerSQL Server that do not support EKM, you will receive an error.

Pour désactiver la fonctionnalité, affectez-lui la valeur 0.To disable the feature, set the value to 0. Pour plus d’informations sur la définition des options de serveur, consultez sp_configure (Transact-SQL).For more information about how to set server options, see sp_configure (Transact-SQL).

Comment utiliser EKMHow to Use EKM

SQL ServerSQL Server La gestion de clés extensible active les clés de chiffrement qui protègent les fichiers de base de données à stocker dans un périphérique off-box tel qu’une carte à puce, un périphérique USB ou un module EKM/HSM.Extensible Key Management enables the encryption keys that protect the database files to be stored in an off-box device such as a smartcard, USB device, or EKM/HSM module. Elle permet aussi la protection des données pour les administrateurs de base de données (sauf les membres du groupe sysadmin).This also enables data protection from database administrators (except members of the sysadmin group). Les données peuvent être chiffrées à l'aide des clés de chiffrement auxquelles seul l'utilisateur de base de données peut accéder sur le module EKM/HSM externe.Data can be encrypted by using encryption keys that only the database user has access to on the external EKM/HSM module.

La gestion de clés extensible offre aussi les avantages suivants :Extensible Key Management also provides the following benefits:

  • Contrôle d'autorisation supplémentaire (activant la séparation des tâches).Additional authorization check (enabling separation of duties).

  • Performances supérieures pour le chiffrement/déchiffrement basé sur le matériel.Higher performance for hardware-based encryption/decryption.

  • Génération de clé de chiffrement externe.External encryption key generation.

  • Stockage de clé de chiffrement externe (séparation physique des données et des clés).External encryption key storage (physical separation of data and keys).

  • Récupération de clés de chiffrement.Encryption key retrieval.

  • Rétention de clé de chiffrement externe (permet la rotation de clé de chiffrement).External encryption key retention (enables encryption key rotation).

  • Récupération simplifiée de clé de chiffrement.Easier encryption key recovery.

  • Distribution gérable de clé de chiffrement.Manageable encryption key distribution.

  • Suppression de clé de chiffrement sécurisée.Secure encryption key disposal.

    Vous pouvez utiliser la gestion de clés extensible pour une combinaison de nom d’utilisateur et de mot de passe ou d’autres méthodes définies par le pilote EKM.You can use Extensible Key Management for a username and password combination or other methods defined by the EKM driver.

Attention

Pour le dépannage, le support technique MicrosoftMicrosoft peut requérir la clé de chiffrement du fournisseur EKM.For troubleshooting, MicrosoftMicrosoft technical support might require the encryption key from the EKM provider. Vous devrez peut-être aussi accéder aux outils ou aux processus du fournisseur pour aider à résoudre un problème.You might also need to access vendor tools or processes to help resolve an issue.

Authentification avec un périphérique EKMAuthentication with an EKM Device

Un module EKM peut prendre en charge plusieurs types d'authentification.An EKM module can support more than one type of authentication. Chaque fournisseur n’expose qu’un seul type d’authentification à SQL ServerSQL Server. Autrement dit, si le module prend en charge l’authentification de base et l’authentification Windows, il expose l’une ou l’autre, mais pas les deux.Each provider exposes only one type of authentication to SQL ServerSQL Server, that is if the module supports Basic or Other authentication types, it exposes one or the other, but not both.

Authentification de base spécifique au périphérique EKM à l'aide du nom d'utilisateur/mot de passeEKM Device-Specific Basic Authentication Using username/password

Pour les modules EKM qui prennent en charge l’authentification de base à l’aide d’une paire nom d’utilisateur/mot de passe, SQL ServerSQL Server fournit l’authentification transparente à l’aide des informations d’identification.For those EKM modules that support Basic authentication using a username/password pair, SQL ServerSQL Server provides transparent authentication using credentials. Pour plus d’informations sur les informations d’identification, consultez Informations d’identification (moteur de base de données).For more information about credentials, see Credentials (Database Engine).

Une information d’authentification peut être créée pour un fournisseur EKM et mappée à une connexion (comptes Windows et SQL ServerSQL Server) pour accéder à un module EKM sur la base d’une connexion individuelle.A credential can be created for an EKM provider and mapped to a login (both Windows and SQL ServerSQL Server accounts) to access an EKM module on per-login basis. Le champ Identifier des informations d’identification contient le nom d’utilisateur. Le champ Secret contient un mot de passe pour la connexion à un module EKM.The Identify field of the credential contains the username; the secret field contains a password to connect to an EKM module.

En l’absence d’une information d’identification mappée à une connexion pour le fournisseur EKM, l’information d’authentification mappée au compte de service SQL ServerSQL Server est utilisée.If there is no login mapped credential for the EKM provider, the credential mapped to the SQL ServerSQL Server service account is used.

Une connexion peut avoir plusieurs informations d'identification mappées à elle, à condition qu'elles soient utilisées pour des fournisseurs EKM distinctifs.A login can have multiple credentials mapped to it, as long as they are used for distinctive EKM providers. Il ne doit y avoir qu'une seule information d'authentification mappée par fournisseur EKM par connexion.There must be only one mapped credential per EKM provider per login. La même information d'identification peut être mappée à d'autres connexions.The same credential can be mapped to other logins.

Autres types d'authentification spécifique au périphérique EKMOther Types of EKM Device-Specific Authentication

Pour les modules EKM qui ont une authentification autre que Windows ou des combinaisons utilisateur/mot de passe , l’authentification doit être effectuée indépendamment de SQL ServerSQL Server.For EKM modules that have authentication other than Windows or user/password combinations, authentication must be performed independently from SQL ServerSQL Server.

Chiffrement et déchiffrement par un périphérique EKMEncryption and Decryption by an EKM Device

Vous pouvez utiliser les fonctions et fonctionnalités suivantes pour chiffrer et déchiffrer des données à l'aide des clés symétriques et asymétriques :You can use the following functions and features to encrypt and decrypt data by using symmetric and asymmetric keys:

Fonction ou fonctionnalitéFunction or feature RéférenceReference
Chiffrement à clé symétriqueSymmetric key encryption CREATE SYMMETRIC KEY (Transact-SQL)CREATE SYMMETRIC KEY (Transact-SQL)
Chiffrement à clé asymétriqueAsymmetric Key encryption CREATE ASYMMETRIC KEY (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL)
EncryptByKey(key_guid, 'cleartext', …)EncryptByKey(key_guid, 'cleartext', …) ENCRYPTBYKEY (Transact-SQL)ENCRYPTBYKEY (Transact-SQL)
DecryptByKey(ciphertext, …)DecryptByKey(ciphertext, …) DECRYPTBYKEY (Transact-SQL)DECRYPTBYKEY (Transact-SQL)
EncryptByAsmKey(key_guid, 'cleartext')EncryptByAsmKey(key_guid, 'cleartext') ENCRYPTBYASYMKEY (Transact-SQL)ENCRYPTBYASYMKEY (Transact-SQL)
DecryptByAsmKey(ciphertext)DecryptByAsmKey(ciphertext) DECRYPTBYASYMKEY (Transact-SQL)DECRYPTBYASYMKEY (Transact-SQL)

Chiffrement de clés de base de données par les clés EKMDatabase Keys Encryption by EKM Keys

SQL ServerSQL Server peut utiliser des clés EKM pour chiffrer d’autres clés dans une base de données.can use EKM keys to encrypt other keys in a database. Vous pouvez créer et utiliser à la fois des clés symétriques et asymétriques sur un périphérique EKM.You can create and use both symmetric and asymmetric keys on an EKM device. Vous pouvez chiffrer des clés symétriques natives (non-EKM) avec des clés asymétriques EKM.You can encrypt native (non-EKM) symmetric keys with EKM asymmetric keys.

L'exemple suivant crée une clé symétrique de base de données et la chiffre à l'aide d'une clé sur un module EKM.The following example creates a database symmetric key and encrypts it using a key on an EKM module.

CREATE SYMMETRIC KEY Key1  
WITH ALGORITHM = AES_256  
ENCRYPTION BY EKM_AKey1;  
GO  
--Open database key  
OPEN SYMMETRIC KEY Key1  
DECRYPTION BY EKM_AKey1  

Pour plus d’informations sur les clés de serveur et de base de données dans SQL ServerSQL Server, consultez SQL Server et clés de chiffrement de base de données (moteur de base de données).For more information about Database and Server Keys in SQL ServerSQL Server, see SQL Server and Database Encryption Keys (Database Engine).

Note

Vous ne pouvez pas chiffrer une clé EKM avec une autre clé EKM.You cannot encrypt one EKM key with another EKM key.

SQL ServerSQL Server ne prend pas en charge la signature des modules avec les clés asymétriques générées par un fournisseur EKM.does not support signing modules with asymmetric keys generated from EKM provider.

Fournisseur EKM activé (option de configuration de serveur)EKM provider enabled Server Configuration Option

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)

Voir aussiSee Also

CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL) CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL) DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL) ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
sys.cryptographic_providers (Transact-SQL) sys.cryptographic_providers (Transact-SQL)
sys.dm_cryptographic_provider_sessions (Transact-SQL) sys.dm_cryptographic_provider_sessions (Transact-SQL)
sys.dm_cryptographic_provider_properties (Transact-SQL) sys.dm_cryptographic_provider_properties (Transact-SQL)
sys.dm_cryptographic_provider_algorithms (Transact-SQL) sys.dm_cryptographic_provider_algorithms (Transact-SQL)
sys.dm_cryptographic_provider_keys (Transact-SQL) sys.dm_cryptographic_provider_keys (Transact-SQL)
sys.credentials (Transact-SQL) sys.credentials (Transact-SQL)
CREATE CREDENTIAL (Transact-SQL) CREATE CREDENTIAL (Transact-SQL)
ALTER LOGIN (Transact-SQL) ALTER LOGIN (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL) CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL) ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL) DROP ASYMMETRIC KEY (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL) CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL) ALTER SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL) DROP SYMMETRIC KEY (Transact-SQL)
OPEN SYMMETRIC KEY (Transact-SQL) OPEN SYMMETRIC KEY (Transact-SQL)
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)
Sauvegarder la clé principale du service Back Up the Service Master Key
Restaurer la clé principale du service Restore the Service Master Key
Créer une clé principale de base de données Create a Database Master Key
Sauvegarder une clé primaire de base de données Back Up a Database Master Key
Restaurer une clé principale de base de données Restore a Database Master Key
Créer des clés symétriques identiques sur deux serveursCreate Identical Symmetric Keys on Two Servers