Gestion de clés extensible (EKM)

S'applique à :SQL Server

SQL 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 Cryptographic (MSCAPI) pour le chiffrement et la génération de clés. Les clés de chiffrement pour les données et le chiffrement à clé sont créés dans des conteneurs de clé transitoires, et vous devez les exporter d’un fournisseur avant de les stocker dans la base de données. Cette approche permet à SQL Server de gérer la gestion des clés, y compris une hiérarchie de clés de chiffrement et une sauvegarde des clés.

Avec la demande croissante de conformité réglementaire et les préoccupations concernant la confidentialité des données, les organisations tirent parti du chiffrement pour offrir une solution de défense en profondeur. Cette approche est souvent peu pratique car elle utilise uniquement des outils de gestion de chiffrement de base de données. 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 sécurité matériels . Les périphériques HSM stockent des clés de chiffrement dans les modules matériels ou logiciels. Cette approche est plus sécurisée car les clés de chiffrement ne résident pas avec les données chiffrées.

Plusieurs fournisseurs proposent des HSM pour la gestion des clés et l’accélération du chiffrement. Les périphériques HSM utilisent des interfaces matérielles avec un processus serveur comme intermédiaire entre une application et un HSM. Les fournisseurs implémentent également des fournisseurs MSCAPI sur leurs modules qui peuvent être matériels ou logiciels. MSCAPI offre souvent seulement un sous-ensemble des fonctionnalités qu’offre un HSM. Les fournisseurs peuvent également fournir des logiciels de gestion pour les HSM, la configuration des clés et l’accès aux clés.

Les implémentations HSM varient d’un fournisseur à l’autre, et leur utilisation avec SQL Server nécessite une interface commune. Bien que MSCAPI fournisse cette interface, elle ne prend en charge qu’un sous-ensemble des fonctionnalités HSM. Elle présente également d'autres limites, telles que l'incapacité à assurer la persistance native des clés symétriques et l'absence de prise en charge des sessions.

SQL Server Extensible Key Management permet aux fournisseurs tiers de solutions EKM et HSM d’enregistrer leurs modules dans SQL Server. Après l’enregistrement d’un module, les utilisateurs de SQL Server peuvent utiliser les clés de chiffrement stockées dessus. SQL Server peut alors accéder aux fonctionnalités avancées de chiffrement prises en charge par ces modules, telles que le chiffrement et le déchiffrement en masse, ainsi que les fonctions de gestion des clés telles que le vieillissement des clés et la rotation des clés.

Lorsque vous exécutez SQL Server dans une machine virtuelle Azure, SQL Server peut utiliser les clés stockées dans Azure Key Vault. Pour plus d’informations, voir Gestion extensible de clés utilisant Azure Key Vault (SQL Server).

Configuration de l’EKM

La gestion extensible des clés n'est pas disponible dans toutes les éditions de SQL Server. Pour une liste des fonctionnalités prises en charge par les éditions de SQL Server, voir Éditions et fonctionnalités prises en charge de SQL Server 2025.

Par défaut, la gestion de clés extensible est désactivée. Pour activer cette fonctionnalité, utilisez la procédure stockée sp_configure (Transact-SQL) avec l’option et la valeur suivantes :

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

Remarque

Si vous utilisez sp_configure pour cette option sur des éditions de SQL Server qui ne prennent pas en charge EKM, vous recevez une erreur.

Pour désactiver la fonctionnalité, réglez la valeur à 0. Pour plus d’informations sur la définition des options du serveur, consultez sp_configure (Transact-SQL).

Comment utiliser EKM

SQL Server Extensible Key Management vous permet de stocker les clés de chiffrement qui protègent les fichiers de base de données dans un appareil externe tel qu’une carte à puce, un périphérique USB ou un module EKM/HSM. Il protège également les données contre les administrateurs de bases de données, sauf pour les membres du rôle de serveur fixe sysadmin. Vous pouvez chiffrer des données en utilisant des clés de chiffrement auxquelles seul l’utilisateur de base de données peut accéder sur le module EKM/HSM externe.

La gestion de clés extensible offre aussi les avantages suivants :

  • Un contrôle d’autorisation supplémentaire, qui permet la séparation des tâches.
  • Meilleures performances pour le chiffrement et le déchiffrement matériels.
  • Génération de clé de chiffrement externe.
  • Stockage externe des clés de chiffrement, qui sépare physiquement les données et les clés.
  • Récupération de clés de chiffrement.
  • Conservation externe des clés de chiffrement, qui permet la rotation des clés de chiffrement.
  • Récupération simplifiée de clé de chiffrement.
  • Distribution gérable de clé de chiffrement.
  • Suppression de clé de chiffrement sécurisée.

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.

Attention

Pour le dépannage, le support technique de Microsoft peut requérir la clé de chiffrement du fournisseur EKM. Vous devrez peut-être aussi accéder aux outils ou aux processus du fournisseur pour aider à résoudre un problème.

Authentification avec un appareil EKM

Un module EKM peut prendre en charge plusieurs types d'authentification. Chaque fournisseur n’expose qu’un seul type d’authentification à SQL Server. C’est-à-dire que si le module supporte à la fois les types d’authentification de base et d’autres, il expose l’un ou l’autre, mais pas les deux.

Authentification de base spécifique à l’appareil EKM en utilisant un nom d’utilisateur et un mot de passe

Pour les modules EKM qui prennent en charge l’authentification de base en utilisant une paire nom d’utilisateur et mot de passe, SQL Server offre une authentification transparente en utilisant des identifiants. Pour plus d’informations sur les identifiants, consultez Identifiants (moteur de base de données).

Vous pouvez créer des informations d’identification pour un fournisseur EKM et les mapper à un nom de connexion, soit un compte Windows soit un compte SQL Server, afin d’accéder à un module EKM pour chaque nom de connexion. Le champ d’identité des informations d’identification contient le nom d’utilisateur, et le champ secret contient un mot de passe pour se connecter à un module EKM.

Si aucune information d’identification mappée à la connexion n’existe pour le fournisseur EKM, SQL Server utilise les informations d’identification mappées au compte de service.

Un identifiant peut avoir plusieurs informations d’identification mappées, à condition que chacune soit utilisée pour un fournisseur EKM distinct. Il ne doit y avoir qu'une seule information d'authentification mappée par fournisseur EKM par connexion. Vous pouvez mapper les mêmes informations d’identification à d’autres connexions.

Autres types d’authentification spécifique à l’appareil EKM

Pour les modules EKM qui utilisent une authentification autre que Windows ou des combinaisons de noms d’utilisateur et de mots de passe, vous devez effectuer l’authentification indépendamment de SQL Server.

Chiffrement et déchiffrement par un dispositif EKM

Utilisez les fonctions et fonctionnalités suivantes pour chiffrer et déchiffrer les données en utilisant des clés symétriques et asymétriques :

Fonction ou fonctionnalité Référence
Chiffrement à clé symétrique CREATE SYMMETRIC KEY (Transact-SQL)
Chiffrement à clé asymétrique CREATE ASYMMETRIC KEY (Transact-SQL)
EncryptByKey(key_guid, 'cleartext', ...) ENCRYPTBYKEY (Transact-SQL)
DecryptByKey(ciphertext, ...) DECRYPTBYKEY (Transact-SQL)
EncryptByAsmKey(key_guid, 'cleartext') ENCRYPTBYASYMKEY (Transact-SQL)
DecryptByAsmKey(ciphertext) DECRYPTBYASYMKEY (Transact-SQL)

Chiffrement de clés de base de données par les clés EKM

SQL Server peut utiliser des clés EKM pour chiffrer d’autres clés dans une base de données. Vous pouvez créer et utiliser à la fois des clés symétriques et asymétriques sur un périphérique EKM. Vous pouvez chiffrer des clés symétriques natives (non-EKM) avec des clés asymétriques EKM.

L’exemple suivant crée une clé symétrique de base de données et la chiffre en utilisant une clé sur un module EKM.

CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO

-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;

Pour plus d’informations sur les clés de base de données et de serveur dans SQL Server, voir SQL Server et clés de chiffrement de base de données (moteur de base de données).

Remarque

On ne peut pas chiffrer une clé EKM avec une autre clé EKM.

SQL Server ne prend pas en charge la signature de modules avec des clés asymétriques générées par un fournisseur EKM.