Bringen Sie DuoKey SQL EKM zum Laufen und verschlüsseln Sie Ihre erste Datenbank
Diese Schnellstart-Anleitung führt Sie durch die Verschlüsselung Ihrer ersten SQL Server-Datenbank mit DuoKey EKM. Am Ende verfügen Sie über:
SQL EKM-App, konfiguriert in der DuoKey-Plattform
Kryptografischer Anbieter, installiert auf dem SQL Server
SQL Server, konfiguriert mit DuoKey-Authentifizierung
Testdatenbank, verschlüsselt mit TDE
Navigieren Sie zur DuoKey-Cloud-Plattform und melden Sie sich mit Ihren Anmeldedaten an.
Gehen Sie zu Apps → Create New APP → Wählen Sie DuoKey for SQL → Klicken Sie auf Install Now
Laden Sie die Setup-Datei herunter und notieren Sie sicher:
Extrahieren Sie die heruntergeladene Setup-ZIP-Datei an einen temporären Speicherort.
Klicken Sie mit der rechten Maustaste auf setup.exe → Run as Administrator
Bestätigen Sie, dass diese DLL-Dateien in C:\Windows\System32 vorhanden sind:
DuoKeyCryptoProvider.dlllibcurl.dllzlib1.dllfmt.dll-- Verify DLL is accessible by SQL Server
EXEC xp_fileexist 'C:\Windows\System32\DuoKeyCryptoProvider.dll';
GOÖffnen Sie SQL Server Management Studio (SSMS), stellen Sie eine Verbindung zu Ihrer Instanz her und führen Sie das folgende Konfigurationsskript aus. Ersetzen Sie alle Platzhalter durch Ihre tatsächlichen Werte.
-- =============================================
-- 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.';
GOBevor Sie mit Phase 4 fortfahren, müssen Sie den Verschlüsselungsvorgang (Encrypt) in DuoKey aktivieren:
SQL_EKM_KeyErstellen wir nun eine Testdatenbank und verschlüsseln sie mit TDE und 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 bedeutet, dass die Datenbank vollständig verschlüsselt ist. Der Status 2 bedeutet, dass die Verschlüsselung noch läuft - warten Sie auf deren Abschluss, bevor Sie fortfahren.Führen Sie diese Abfragen aus, um zu überprüfen, ob Ihre vollständige Einrichtung korrekt funktioniert:
-- 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| Problem | Ursache | Lösung |
|---|---|---|
| EKM nicht aktiviert | SQL Server-Edition oder -Konfiguration | Überprüfen Sie die Edition; führen Sie sp_configure-Befehle aus |
| Anbieter kann nicht erstellt werden | DLL nicht gefunden | Überprüfen Sie DuoKeyCryptoProvider.dll in System32 |
| Formatfehler bei den Anmeldedaten | Ungültiges SECRET-Format | Überprüfen Sie die <!COCKPITPW!>-Trennzeichen |
| Schlüsselerstellung schlägt fehl | Encrypt nicht aktiviert | Aktivieren Sie den Verschlüsselungsvorgang im DuoKey Cockpit |
| Verbindungszeitüberschreitung | Netzwerkproblem | Überprüfen Sie den HTTPS-443-Zugriff auf die DuoKey-Plattform |
Herzlichen Glückwunsch! Sie haben DuoKey SQL EKM erfolgreich eingerichtet und Ihre erste Datenbank verschlüsselt. Hier erfahren Sie, was Sie als Nächstes erkunden können:
Wenden Sie TDE mit bewährten Verfahren auf Ihre Produktionsdatenbanken an
Konfigurieren Sie die serverübergreifende Wiederherstellung für verschlüsselte DBs
Implementieren Sie einen Zeitplan für die Schlüsselrotation zur Einhaltung von Compliance-Vorgaben
Richten Sie Warnmeldungen und Überwachung für den Verschlüsselungsstatus ein