Gestion de clés extensible (EKM)

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 Cryptography (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 comprend une hiérarchie de clé de chiffrement et une sauvegarde de clé, d'être gérée 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 de modules de sécurité matériels varient selon les fournisseurs, et leur 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 de clés extensible SQL Server permet aux fournisseurs tiers EKM/HSM d’enregistrer leurs modules dans SQL Server. Une fois enregistrés, les utilisateurs de SQL Server peuvent utiliser les clés de chiffrement stockées dans les modules EKM. SQL 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é.

Quand vous exécutez SQL Server dans 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 de clés extensible n’est pas disponible dans toutes les éditions de MicrosoftSQL Server. Pour obtenir la liste des fonctionnalités prises en charge par les éditions de SQL Server, consultez Fonctionnalités prises en charge par les éditions de SQL Server 2014.

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  

Notes

Si vous utilisez la commande sp_configure pour cette option sur les éditions de SQL Server qui ne prennent pas en charge la gestion de clés extensible, vous recevrez un message d’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

SQL 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. 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 le dépannage, le support technique 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 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. 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.

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

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

Une information d’authentification peut être créée pour un fournisseur EKM et mappée à une connexion (comptes Windows et SQL Server) pour accéder à un module EKM sur la base d’une connexion individuelle. 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.

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 Server est utilisée.

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 Windows ou des combinaisons 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 clés de chiffrement de base de données (moteur de base de données).

Notes

Vous ne pouvez pas chiffrer une clé EKM avec une autre clé EKM.

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

Fournisseur EKM activé (option de configuration de serveur)

Activer TDE à l’aide d’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 (SSRS Configuration Manager)
Ajouter et supprimer des clés de chiffrement pour un déploiement évolutif (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