Mettez DuoKey SQL EKM en service et chiffrez votre première base de données
Ce guide de démarrage rapide vous accompagne dans le chiffrement de votre première base de données SQL Server avec DuoKey EKM. À la fin, vous disposerez de :
Application SQL EKM configurée dans la plateforme DuoKey
Fournisseur cryptographique installé sur SQL Server
SQL Server configuré avec l'authentification DuoKey
Base de données de test chiffrée avec TDE
Accédez à la plateforme cloud DuoKey et connectez-vous avec vos identifiants.
Accédez à Apps → Create New APP → Sélectionnez DuoKey for SQL → Cliquez sur Install Now
Téléchargez le fichier d'installation et notez de manière sécurisée :
Extrayez le fichier ZIP d'installation téléchargé vers un emplacement temporaire.
Cliquez avec le bouton droit sur setup.exe → Run as Administrator
Vérifiez que ces fichiers DLL existent dans C:\Windows\System32 :
DuoKeyCryptoProvider.dlllibcurl.dllzlib1.dllfmt.dll-- Verify DLL is accessible by SQL Server
EXEC xp_fileexist 'C:\Windows\System32\DuoKeyCryptoProvider.dll';
GOOuvrez SQL Server Management Studio (SSMS), connectez-vous à votre instance et exécutez le script de configuration suivant. Remplacez tous les espaces réservés par vos valeurs réelles.
-- =============================================
-- DuoKey SQL EKM Configuration Script
-- Replace <placeholders> with your values
-- =============================================
-- Step 1: Enable EKM
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
-- Step 2: Create Cryptographic Provider
CREATE CRYPTOGRAPHIC PROVIDER DuoKeyProvider
FROM FILE = 'C:\Windows\System32\DuoKeyCryptoProvider.dll';
GO
-- Step 3: Create Credentials
-- Format: client_secret<!COCKPITPW!>password<!COCKPITPW!>CockpitIntrospectPwd
CREATE CREDENTIAL DuoKeyCredential
WITH IDENTITY = '<your_client_id>',
SECRET = '<your_client_secret><!COCKPITPW!><your_password><!COCKPITPW!>CockpitIntrospectPwd'
FOR CRYPTOGRAPHIC PROVIDER DuoKeyProvider;
GO
-- Step 4: Map Credential to Login
ALTER LOGIN [sa]
ADD CREDENTIAL DuoKeyCredential;
GO
-- Step 5: Create Asymmetric Key
USE master;
GO
CREATE ASYMMETRIC KEY SQL_EKM_Key
FROM PROVIDER DuoKeyProvider
WITH ALGORITHM = RSA_2048,
PROVIDER_KEY_NAME = 'SQL_EKM_Key',
CREATION_DISPOSITION = CREATE_NEW;
GO
-- Step 6: Create Key Credentials
CREATE CREDENTIAL SQL_EKM_Key_Cred
WITH IDENTITY = '<your_client_id>',
SECRET = '<your_client_secret><!COCKPITPW!><your_password><!COCKPITPW!>CockpitIntrospectPwd'
FOR CRYPTOGRAPHIC PROVIDER DuoKeyProvider;
GO
-- Step 7: Create Key Login
CREATE LOGIN SQL_EKM_Key_Login
FROM ASYMMETRIC KEY SQL_EKM_Key;
GO
ALTER LOGIN SQL_EKM_Key_Login
ADD CREDENTIAL SQL_EKM_Key_Cred;
GO
PRINT 'Configuration complete. Enable Encrypt operation in DuoKey Cockpit.';
GOAvant de passer à la phase 4, vous devez activer l'opération de chiffrement dans DuoKey :
SQL_EKM_KeyCréons maintenant une base de données de test et chiffrons-la à l'aide de TDE avec DuoKey EKM.
-- Create test database
CREATE DATABASE TestEncryptedDB;
GO
-- Create Database Encryption Key
USE TestEncryptedDB;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER ASYMMETRIC KEY SQL_EKM_Key;
GO
-- Enable encryption
ALTER DATABASE TestEncryptedDB
SET ENCRYPTION ON;
GO
-- Verify encryption status
SELECT
DB_NAME(database_id) AS [Database],
CASE encryption_state
WHEN 0 THEN 'No encryption key'
WHEN 1 THEN 'Unencrypted'
WHEN 2 THEN 'Encryption in progress'
WHEN 3 THEN 'Encrypted'
WHEN 4 THEN 'Key change in progress'
WHEN 5 THEN 'Decryption in progress'
END AS [Status],
percent_complete AS [Progress %]
FROM sys.dm_database_encryption_keys
WHERE DB_NAME(database_id) = 'TestEncryptedDB';
GO3 signifie que la base de données est entièrement chiffrée. L'état 2 signifie que le chiffrement est encore en cours : attendez qu'il se termine avant de continuer.Exécutez ces requêtes pour vérifier que votre configuration complète fonctionne correctement :
-- 1. EKM Provider Status
SELECT name, guid, version
FROM sys.cryptographic_providers;
GO
-- 2. Credentials Created
SELECT name, credential_identity, create_date
FROM sys.credentials
WHERE name LIKE '%DuoKey%' OR name LIKE '%EKM%';
GO
-- 3. Asymmetric Keys
SELECT name, algorithm_desc, key_length, thumbprint
FROM sys.asymmetric_keys;
GO
-- 4. Encrypted Databases
SELECT
d.name AS DatabaseName,
d.is_encrypted,
dek.encryption_state
FROM sys.databases d
LEFT JOIN sys.dm_database_encryption_keys dek
ON d.database_id = dek.database_id
WHERE d.is_encrypted = 1;
GO| Problème | Cause | Solution |
|---|---|---|
| EKM non activé | Édition ou configuration de SQL Server | Vérifiez l'édition ; exécutez les commandes sp_configure |
| Impossible de créer le fournisseur | DLL introuvable | Vérifiez la présence de DuoKeyCryptoProvider.dll dans System32 |
| Erreur de format des identifiants | Format SECRET invalide | Vérifiez les délimiteurs <!COCKPITPW!> |
| La création de la clé échoue | Chiffrement non activé | Activez l'opération de chiffrement dans DuoKey Cockpit |
| Délai de connexion dépassé | Problème réseau | Vérifiez l'accès HTTPS 443 à la plateforme DuoKey |
Félicitations ! Vous avez configuré DuoKey SQL EKM et chiffré votre première base de données avec succès. Voici ce qu'il reste à explorer :
Appliquez TDE à vos bases de données de production selon les bonnes pratiques
Configurez la restauration multi-serveurs pour les bases de données chiffrées
Mettez en place un calendrier de rotation des clés pour la conformité
Configurez des alertes et une surveillance de l'état du chiffrement