Share via


Procédure : activer le chiffrement transparent des données à l'aide de la gestion de clés extensible (EKM)

Le chiffrement transparent des données chiffre le stockage d'une base de données entière. Les données sont chiffrées à l'aide d'une clé symétrique, appelée la clé de chiffrement de base de données. Cette rubrique décrit comment protéger la clé de chiffrement de base de données en utilisant une clé asymétrique stockée dans un module de gestion de clés extensible (EKM, Extensible Key Management).

La clé de chiffrement de base de données peut également être protégée à l'aide d'un certificat qui est lui-même protégé par la clé principale de base de données de la base de données MASTER Pour plus d'informations sur la protection de la clé de chiffrement de base de données à l'aide de la clé principale de base de données, consultez Présentation du chiffrement transparent des données (TDE).

Les étapes de base suivantes sont requises pour activer le chiffrement transparent des données à l'aide de la gestion de clés extensible :

  1. Installez un fournisseur EKM. Les procédures de cette étape varient en fonction des spécifications du fournisseur EKM, mais peuvent inclure l'installation d'un certificat émanant du fournisseur EKM dans le magasin de certificats local et la copie des fichiers DLL EKM sur l'ordinateur SQL Server.

  2. Configurez SQL Server pour utiliser le fournisseur EKM.

  3. Si le module EKM utilise l'authentification de base, créez des informations d'identification et ajoutez-les à l'utilisateur.

  4. Créez une clé asymétrique protégée par le fournisseur EKM.

  5. Si le module EKM utilise l'authentification de base, créez des informations d'identification protégées par la clé asymétrique qui seront utilisées par le moteur de base de données.

  6. Créez une clé de chiffrement de base de données symétrique.

  7. Activez le chiffrement transparent des données à l'aide de la clé de chiffrement de base de données.

Pour réaliser les procédures de cette rubrique, connectez-vous à SQL Server à partir d'une fenêtre de l'éditeur de requête dans SQL Server Management Studio.

Pour installer et configurer le fournisseur de chiffrement

  1. Copiez les fichiers fournis par le fournisseur EKM à un emplacement approprié sur l'ordinateur SQL Server. Dans cet exemple, le dossier C:\EKM est utilisé.

  2. Installez les certificats requis par votre fournisseur EKM sur votre ordinateur.

    [!REMARQUE]

    SQL Server ne propose pas de fournisseur EKM. Chaque fournisseur EKM peut utiliser des procédures différentes pour l'installation, la configuration et l'autorisation des utilisateurs. Consultez la documentation de votre fournisseur EKM pour effectuer cette étape.

Pour configurer SQL Server pour utiliser un fournisseur EKM et créer le fournisseur dans SQL Server.

  1. L'activation d'un fournisseur EKM fait partie des options avancées. Commencez par exécuter les instructions suivantes pour afficher les options avancées.

    sp_configure 'show advanced options', 1 ;
    GO
    RECONFIGURE ;
    GO
    
  2. Exécutez l'instruction suivante pour activer les fournisseurs EKM :

    sp_configure 'EKM provider enabled', 1 ;
    GO
    RECONFIGURE ;
    GO
    
  3. Exécutez l'instruction suivante pour créer un fournisseur de chiffrement, que nous avons choisi d'appeler EKM_Prov :

    CREATE CRYPTOGRAPHIC PROVIDER EKM_Prov 
    FROM FILE = 'C:\EKM_Files\KeyProvFile.dll' ;
    GO
    

    [!REMARQUE]

    La DLL EKM doit être signée numériquement.

Créer les informations d'identification utilisées pour chiffrer la base de données

Vous devez être un utilisateur doté de privilèges élevés (comme un administrateur système) pour créer une clé de chiffrement de base de données et chiffrer une base de données. Cet utilisateur doit pouvoir être authentifié par le module EKM. La procédure qui suit crée des informations d'identification qui utilisent l'identité EKM et ajoute ces informations à un utilisateur doté de privilèges élevés. Les procédures suivantes supposent que le module EKM peut authentifier un utilisateur nommé « Identity1 ». Les astérisques doivent être remplacées par un mot de passe. Ces étapes sont requises lorsque le fournisseur EKM utilise l'authentification de base, mais elles peuvent être ignorées lorsque le module EKM utilise un autre mode d'authentification.

Pour créer des informations d'identification et les ajouter au nom de connexion d'un utilisateur doté de privilèges élevés.

  1. Exécutez l'instruction suivante pour créer des informations d'identification qui seront utilisées par les administrateurs système :

    CREATE CREDENTIAL sa_ekm_tde_cred 
    WITH IDENTITY = 'Identity1', 
    SECRET = '*************' 
    FOR CRYPTOGRAPHIC PROVIDER EKM_Prov ;
    GO
    
  2. Exécutez l'instruction suivante pour ajouter les informations d'identification de l'administrateur système à un utilisateur doté de privilèges élevés, comme votre propre nom de connexion au domaine, au format [DOMAIN\login] :

    ALTER LOGIN [DOMAIN\login]
    ADD CREDENTIAL sa_ekm_tde_cred ;
    GO
    

Créer une clé asymétrique

Créez une clé asymétrique pour protéger l'accès à la clé de chiffrement de base de données. Cette clé est utilisée par SQL Server pour accéder à la clé de chiffrement de base de données.

Pour créer une clé de chiffrement de base de données

  • Exécutez l'instruction suivante pour créer une clé asymétrique stockée au sein du fournisseur EKM. Dans cet exemple, SQL Server identifiera la clé par le nom ekm_login_key. Au sein du périphérique EKM, la clé portera le nom SQL_Server_Key.

    [!REMARQUE]

    Les options et paramètres requis par votre fournisseur EKM peuvent être différents de cette instruction. Pour plus d'informations, consultez votre fournisseur EKM.

    USE master ;
    GO
    CREATE ASYMMETRIC KEY ekm_login_key 
    FROM PROVIDER [EKM_Prov]
    WITH ALGORITHM = RSA_512,
    PROVIDER_KEY_NAME = 'SQL_Server_Key' ;
    GO
    

    [!REMARQUE]

    En cas de perte de la clé asymétrique stockée dans le module EKM, la base de données ne peut pas être ouverte par SQL Server. Si le fournisseur EKM vous permet de sauvegarder la clé asymétrique, vous devez créer une sauvegarde et la stocker dans un endroit sûr.

Créer des informations d'identification pour le moteur de base de données

Au démarrage, le moteur de base de données doit ouvrir la base de données. La procédure suivante crée des informations d'identification qui doivent être authentifiées par la gestion de clés étendues et les ajoute à un nom de connexion reposant sur une clé asymétrique. Les utilisateurs ne peuvent pas se connecter à l'aide de ce nom de connexion, mais le moteur de base de données sera en mesure de s'authentifier auprès du périphérique EKM. Les procédures suivantes supposent que le module EKM peut authentifier un utilisateur nommé « Identity2 ». Les astérisques doivent être remplacées par un mot de passe. Ces étapes sont requises lorsque le fournisseur EKM utilise l'authentification de base, mais elles peuvent être ignorées lorsque le module EKM utilise un autre mode d'authentification.

Pour créer des informations d'identification et les ajouter aux noms de connexion

  1. Exécutez l'instruction suivante pour créer des informations d'identification qui seront utilisées par le moteur de base de données :

    CREATE CREDENTIAL ekm_tde_cred 
    WITH IDENTITY = 'Identity2' 
    , SECRET = '*************' 
    FOR CRYPTOGRAPHIC PROVIDER EKM_Prov ;
    
  2. Exécutez l'instruction suivante pour ajouter un nom de connexion utilisé par le chiffrement transparent des données et ajoutez les nouvelles informations d'identification au nom de connexion :

    CREATE LOGIN EKM_Login 
    FROM ASYMMETRIC KEY ekm_login_key ;
    GO
    
    ALTER LOGIN EKM_Login 
    ADD CREDENTIAL ekm_tde_cred ;
    GO
    

Créer la clé de chiffrement de base de données

La clé de chiffrement de base de données est une clé symétrique. Créez la clé de chiffrement de base de données dans la base de données MASTER.

Pour créer une clé de chiffrement de base de données

  1. Passez sur la base de données à chiffrer :

    USE AdventureWorks ;
    GO
    
  2. Exécutez le code suivant pour créer la clé de chiffrement de base de données qui sera utilisée pour le chiffrement transparent des données :

    CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM  = AES_128
    ENCRYPTION BY SERVER ASYMMETRIC KEY ekm_login_key ;
    GO
    
  3. Exécutez le code suivant pour modifier la base de données et activer le chiffrement transparent des données :

    ALTER DATABASE AdventureWorks 
    SET ENCRYPTION ON ;
    GO
    

    La base de données est désormais stockée dans un format chiffré.

Sécurité

Cette rubrique utilise les autorisations suivantes :

  • Pour modifier une option de configuration et exécuter l'instruction RECONFIGURE, vous devez disposer de l'autorisation de niveau serveur ALTER SETTINGS. L'autorisation ALTER SETTINGS est implicitement détenue par les rôles de serveur fixes sysadmin et serveradmin.

  • Requiert l'autorisation ALTER ANY CREDENTIAL.

  • Requiert l'autorisation ALTER ANY LOGIN.

  • Requiert l'autorisation CREATE ASYMMETRIC KEY.

  • Requiert l'autorisation CONTROL sur la base de données pour chiffrer la base de données.