Fonctionnement de la 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 API (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é du matériel (HSM, Hardware Security Modules). 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 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 2008 permet aux fournisseurs tiers EKM/HSM d'enregistrer leurs modules dans SQL Server. Une fois enregistrés, les utilisateurs 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 rotation de clé.

Configuration EKM

La gestion de clés extensible est uniquement disponible dans les éditions Enterprise, Developer et Evaluation de SQL Server.

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

[!REMARQUE]

Si vous utilisez la procédure stockée sp_configure pour cette option sur des éditions autres que Enterprise, Developer ou Evaluation, 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

La gestion de clés extensible SQL Server 2008 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.

AttentionAttention

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 Identify de l'information 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'authentification 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é

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

[!REMARQUE]

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

Voir aussi

Tâches

Référence

Concepts