Gestion de clés extensible (EKM)

S’applique à :SQL Server

SQL Server fournit des fonctionnalités de chiffrement de données avec EKM (Extensible Key Management), à l’aide du fournisseur d’API de chiffrement Microsoft (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 ils doivent être exportés d'un fournisseur avant d'être stockés dans la base de données. Cette approche permet la gestion des clés qui inclut une hiérarchie de clés de chiffrement et une sauvegarde de clé, à gérer par SQL 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 ». 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 la sécurité matériels . Les périphériques HSM stockent des clés de chiffrement dans les modules matériels ou logiciels. 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.

Plusieurs fournisseurs offrent 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 offertes par un HSM. Les fournisseurs peuvent également fournir le logiciel de gestion pour HSM, la configuration de clé et l'accès aux clés.

Les implémentations HSM varient d’un fournisseur à un fournisseur et d’une utilisation avec SQL Server nécessite une interface commune. Si MSCAPI fournit cette interface, elle prend en charge uniquement un sous-ensemble des fonctionnalités HSM. 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.

La gestion extensible des clés SQL Server permet aux fournisseurs EKM/HSM tiers d’inscrire leurs modules dans SQL Server. Lorsqu’ils sont inscrits, les utilisateurs de SQL Server peuvent utiliser les clés de chiffrement stockées sur les modules EKM. Cela permet à SQL Server d’accéder aux fonctionnalités de chiffrement avancées prises en charge par ces modules, telles que le chiffrement en bloc et le déchiffrement, ainsi que les fonctions de gestion des clés telles que le vieillissement des clés et la rotation des clés.

Lors de l’exécution de SQL Server sur une machine virtuelle Azure, SQL Server peut utiliser des clés stockées dans Azure Key Vault. Pour plus d’informations, consultez Gestion de clés extensible à l’aide d’Azure Key Vault (SQL Server).

Configuration EKM

La gestion extensible des clés n’est pas disponible dans chaque édition de Microsoft SQL Server. Pour obtenir la liste des fonctionnalités prises en charge par les éditions de SQL Server, consultez Fonctionnalités prise en charge par les éditions de SQL Server 2016.

Par défaut, la gestion de clés extensible est désactivée. Pour activer cette fonctionnalité, utilisez la commande sp_configure avec l'option et la valeur suivantes, comme dans l'exemple ci-après :

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 Server qui ne prennent pas en charge EKM, vous recevrez une erreur.

Pour désactiver la fonctionnalité, affectez-lui la valeur 0. Pour plus d’informations sur la définition des options de serveur, consultez sp_configure (Transact-SQL).

Comment utiliser EKM

La gestion de clés extensible SQL Server active les clés de chiffrement qui protègent les fichiers de base de données à stocker dans un appareil distant comme une carte à puce, un périphérique USB ou un module EKM/HSM. Elle permet aussi la protection des données pour les administrateurs de base de données (sauf les membres du groupe sysadmin). 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.

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

  • Contrôle d'autorisation supplémentaire (activant la séparation des tâches).

  • Performances supérieures pour le chiffrement/déchiffrement basé sur le matériel.

  • Génération de clé de chiffrement externe.

  • Stockage de clé de chiffrement externe (séparation physique des données et des clés).

  • Récupération de clés de chiffrement.

  • Rétention de clé de chiffrement externe (permet la rotation de clé 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 résoudre les problèmes, le support technique Microsoft peut nécessiter 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 périphérique 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 si le module prend en charge les types d’authentification De base ou Autres, il expose l’un ou l’autre, mais pas les deux.

Authentification de base spécifique au périphérique EKM à l'aide du nom d'utilisateur/mot de passe

Pour ces modules EKM qui prennent en charge l’authentification de base à l’aide d’une paire nom d’utilisateur/mot de passe , SQL Server fournit une authentification transparente à l’aide d’informations d’identification. Pour plus d’informations sur les informations d’identification, consultez Informations d’identification (moteur de base de données).

Des informations d’identification peuvent être créées pour un fournisseur EKM et mappées à une connexion (comptes Windows et SQL Server) pour accéder à un module EKM par connexion. Le champ Identité des informations d’identification contient le nom d’utilisateur. Le champ Secret contient un mot de passe pour la connexion à un module EKM.

S’il n’existe aucune information d’identification mappée de connexion pour le fournisseur EKM, les informations d’identification mappées au compte de service SQL Server sont utilisées.

Une connexion peut avoir plusieurs informations d'identification mappées à elle, à condition qu'elles soient utilisées pour des fournisseurs EKM distinctifs. Il ne doit y avoir qu'une seule information d'authentification mappée par fournisseur EKM par connexion. La même information d'identification peut être mappée à d'autres connexions.

Autres types d'authentification spécifique au périphérique EKM

Pour les modules EKM qui ont une authentification autre que les combinaisons Windows ou utilisateur/mot de passe , l’authentification doit être effectuée indépendamment de SQL Server.

Chiffrement et déchiffrement par un périphérique EKM

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 :

Fonction ou fonctionnalité Informations de 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 à l'aide d'une clé sur un module EKM.

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 base de données et de serveur dans SQL Server, consultez SQL Server et les clés de chiffrement de base de données (moteur de base de données).

Note

Vous ne pouvez 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 à partir du fournisseur EKM.

Fournisseur EKM activé (option de configuration de serveur)

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)

Voir aussi

CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
sys.cryptographic_providers (Transact-SQL)
sys.dm_cryptographic_provider_sessions (Transact-SQL)
sys.dm_cryptographic_provider_properties (Transact-SQL)
sys.dm_cryptographic_provider_algorithms (Transact-SQL)
sys.dm_cryptographic_provider_keys (Transact-SQL)
sys.credentials (Transact-SQL)
CREATE CREDENTIAL (Transact-SQL)
ALTER LOGIN (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
OPEN SYMMETRIC KEY (Transact-SQL)
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)
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