Erweiterbare Schlüsselverwaltung (Extensible Key Management, EKM)

Gilt für:SQL Server

SQL Server stellt Funktionen zur Datenverschlüsselung zusammen mit der erweiterbaren Schlüsselverwaltung (Extensible Key Management, EKM) bereit. Dabei wird der Anbieter Microsoft Cryptographic API (MSCAPI) zur Verschlüsselung und Schlüsselgenerierung verwendet. Verschlüsselungsschlüssel für Daten und Schlüsselverschlüsselung werden in transienten Schlüsselcontainern erstellt, und Sie müssen sie von einem Anbieter exportieren, bevor Sie sie in der Datenbank speichern. Dieser Ansatz ermöglicht es SQL Server, die Schlüsselverwaltung zu übernehmen, einschließlich einer Verschlüsselungsschlüsselhierarchie und Schlüsselsicherung.

Mit der wachsenden Nachfrage nach der Einhaltung gesetzlicher Vorschriften und den Bedenken hinsichtlich des Datenschutzes nutzen Organisationen die Verschlüsselung als Möglichkeit, eine mehrschichtige Sicherheitslösung bereitzustellen. Dieser Lösungsansatz ist jedoch häufig mit den Verwaltungstools für die Datenbankverschlüsselung alleine nicht durchführbar. Hardwarehersteller bieten Produkte an, die das Management von Unternehmensschlüsseln mithilfe von Hardware-Sicherheitsmodulen (HSMs) abdecken. HSM-Geräte speichern die Verschlüsselungsschlüssel auf Hardware- oder Softwaremodulen. Dieser Ansatz ist sicherer, weil die Verschlüsselungsschlüssel nicht bei den verschlüsselten Daten liegen.

Mehrere Anbieter bieten HSMs sowohl für Schlüsselverwaltung als auch für Verschlüsselungsbeschleunigung an. HSM-Geräte verwenden Hardwareschnittstellen, bei denen ein Serverprozess als Mittler zwischen einer Anwendung und einem HSM fungiert. Außerdem implementieren die Hersteller MSCAPI-Provider für ihre Module, bei denen es sich um Hardware oder Software handeln kann. MSCAPI bietet oft nur einen Teil der Funktionalität an, die ein HSM bietet. Anbieter können außerdem Verwaltungssoftware für HSMs, Schlüsselkonfiguration und Schlüsselzugriff bereitstellen.

HSM-Implementierungen variieren von Anbieter zu Anbieter, und deren Nutzung mit SQL Server erfordert eine gemeinsame Schnittstelle. Obwohl MSCAPI diese Schnittstelle bereitstellt, unterstützt MSCAPI nur eine Teilmenge der HSM-Funktionen. Darüber hinaus gibt es noch weitere Einschränkungen: Symmetrische Schlüssel können beispielsweise nicht durch das System selbst persistent gemacht werden, und es fehlt eine sitzungsgerichtete Unterstützung.

SQL Server Extensible Key Management ermöglicht es Drittanbietern von EKM und HSM, ihre Module in SQL Server zu registrieren. Nachdem ein Modul registriert wurde, können SQL Server-Nutzer die darauf gespeicherten Verschlüsselungsschlüssel verwenden. Der SQL Server kann dann auf die fortschrittlichen Verschlüsselungsfunktionen zugreifen, die von diesen Modulen unterstützt werden, wie Massenverschlüsselung und Entschlüsselung sowie Schlüsselverwaltungsfunktionen wie Schlüsselalterung und Schlüsselrotation.

Wenn Sie den SQL Server in einer Azure-VM ausführen, kann SQL Server Schlüssel verwenden, die in Azure Key Vault gespeichert sind. Weitere Informationen finden Sie unter Extensible Key Management using Azure Key Vault (SQL Server).

EKM-Konfiguration

Extensible Key Management ist nicht in jeder Version von SQL Server verfügbar. Eine Liste der von den Editionen in SQL Server unterstützten Funktionen finden Sie unter Editions und unterstützte Funktionen von SQL Server 2025.

Standardmäßig ist die EKM deaktiviert. Um diese Funktion zu aktivieren, verwenden Sie die sp_configure (Transact-SQL) gespeicherte Prozedur mit folgender Option und Wert:

sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO

Hinweis

Wenn du diese Option sp_configure bei Editionen von SQL Server nutzt, die kein EKM unterstützen, erhältst du einen Fehler.

Um die Funktion zu deaktivieren, setze den Wert auf 0. Weitere Informationen zum Festlegen von Serveroptionen finden Sie unter sp_configure (Transact-SQL).

Wie man EKM verwendet

SQL Server Extensible Key Management ermöglicht es Ihnen, die Verschlüsselungsschlüssel, die die Datenbankdateien schützen, auf einem externen Gerät wie einer Smartcard, einem USB-Gerät oder einem EKM/HSM-Modul zu speichern. Sie schützt auch Daten vor Datenbankadministratoren, mit Ausnahme von Mitgliedern der sysadmin-festen Serverrolle. Man kann Daten mit Verschlüsselungsschlüsseln verschlüsseln, auf die nur der Datenbankbenutzer im externen EKM/HSM-Modul zugreifen kann.

Extensible Key Management bietet ebenfalls die folgenden Vorteile:

  • Eine zusätzliche Autorisierungsprüfung, die eine Trennung der Aufgaben ermöglicht.
  • Höhere Leistung für hardwarebasierte Verschlüsselung und Entschlüsselung.
  • Externe Generierung von Verschlüsselungsschlüsseln
  • Speicherung externer Verschlüsselungsschlüssel, die Daten und Schlüssel physisch trennt.
  • Abruf der Verschlüsselungsschlüssel
  • Externe Aufbewahrung von Verschlüsselungsschlüsseln, die eine Schlüsselrotation ermöglicht.
  • Leichtere Wiederherstellung der Verschlüsselungsschlüssel
  • Kontrollierbare Verteilung der Verschlüsselungsschlüssel
  • Sichere Beseitigung der Verschlüsselungsschlüssel

Sie können die erweiterbare Schlüsselverwaltung für eine Kombination aus Benutzername und Kennwort oder andere Methoden verwenden, die vom EKM-Treiber definiert werden.

Achtung

Für die Problembehandlung benötigt der technische Support von Microsoft eventuell den Verschlüsselungsschlüssel des EKM-Anbieters. Außerdem kann es sein, dass Sie für die Lösung eines Problems auf Tools und Prozesse des Herstellers zugreifen müssen.

Authentifizierung mit einem EKM-Gerät

EKM-Module können mehrere Arten der Authentifizierung unterstützen. Jeder Anbieter stellt SQL Server nur eine Art der Authentifizierung gegenüber zur Verfügung. Das heißt, wenn das Modul sowohl grundlegende als auch andere Authentifizierungsarten unterstützt, bietet es den einen oder den anderen Typ an, aber nicht beide.

Gerätespezifische grundlegende Authentifizierung mit Benutzernamen und Passwort

Für EKM-Module, die eine Standardauthentifizierung durch Benutzername und Passwort unterstützen, bietet SQL Server eine transparente Authentifizierung durch Zugangsdaten. Weitere Informationen über Anmeldeinformationen finden Sie unter Anmeldeinformationen (Datenbank-Engine).

Sie können Anmeldeinformationen für einen EKM-Anbieter erstellen und sie einem Login zuordnen, entweder einem Windows- oder einem SQL Server-Konto, um auf ein EKM-Modul pro Login zuzugreifen. Das Identität-Feld der Zugangsdaten enthält den Benutzernamen, und das Secret-Feld enthält ein Passwort, um sich mit einem EKM-Modul zu verbinden.

Wenn für den EKM-Anbieter keine anmeldezugeordneten Anmeldeinformationen vorhanden sind, verwendet SQL Server die Anmeldeinformationen, die dem Servicekonto zugeordnet sind.

Ein Login kann mehrere Zugangsdaten zugeordnet haben, solange jede für einen eigenen EKM-Anbieter verwendet wird. Pro EKM-Anbieter und Anmeldung darf es jedoch nur einen zugeordneten Identitätsnachweis geben. Du kannst dieselben Zugangsdaten anderen Logins zuordnen.

Andere Arten von EKM-gerätespezifischer Authentifizierung

Für EKM-Module, die eine andere Authentifizierung als Windows oder Benutzernamen- und Kennwortkombinationen verwenden, müssen Sie die Authentifizierung unabhängig von SQL Server durchführen.

Verschlüsselung und Entschlüsselung durch ein EKM-Gerät

Verwenden Sie die folgenden Funktionen und Funktionen, um Daten mit symmetrischen und asymmetrischen Schlüsseln zu verschlüsseln und zu entschlüsseln:

Funktion oder Feature Verweis
Verschlüsselung mit symmetrischen Schlüsseln CREATE SYMMETRIC KEY (Transact-SQL)
Asymmetrische Verschlüsselung 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)

Datenbankschlüsselverschlüsselung mit EKM-Schlüsseln

SQL Server kann mithilfe von EKM-Schlüsseln andere Schlüssel in einer Datenbank verschlüsseln. Sie können sowohl symmetrische als auch asymmetrische Schlüssel auf einem EKM-Gerät erstellen und verwenden. Sie können systemeigene (nicht-EKM) symmetrische Schlüssel mit asymmetrischen EKM-Schlüsseln verschlüsseln.

Das folgende Beispiel erstellt einen Datenbank-symmetrischen Schlüssel und verschlüsselt ihn, indem ein Schlüssel auf einem EKM-Modul verwendet wird.

CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO

-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;

Weitere Informationen zu Datenbank- und Serverschlüsseln in SQL Server finden Sie unter SQL Server- und Datenbankverschlüsselungsschlüssel (Datenbank-Engine).

Hinweis

Du kannst keinen EKM-Schlüssel mit einem anderen EKM-Schlüssel verschlüsseln.

SQL Server unterstützt keine Signing-Module mit asymmetrischen Schlüsseln, die von einem EKM-Anbieter generiert werden.