Erweiterbare Schlüsselverwaltung (Extensible Key Management, EKM)

Gilt für:SQL Server

SQL Server bietet Datenverschlüsselungsfunktionen zusammen mit extensible Key Management (EKM) mithilfe des Microsoft Cryptographic API (MSCAPI)-Anbieters für Verschlüsselung und Schlüsselgenerierung. Verschlüsselungsschlüssel für die Daten- und Schlüsselverschlüsselung werden in temporären Schlüsselcontainern erstellt und müssen vom Anbieter exportiert werden, bevor sie in der Datenbank gespeichert werden. Dieser Ansatz ermöglicht die Schlüsselverwaltung, die eine Verschlüsselungsschlüsselhierarchie und eine Schlüsselsicherung umfasst, die von SQL Server verarbeitet werden kann.

Da die Einhaltung behördlicher Bestimmungen und der Datenschutz immer wichtiger werden, nutzen Organisationen die Verschlüsselung als Lösung für eine "tiefgreifende Verteidigung". Dieser Lösungsansatz ist jedoch häufig mit den Verwaltungstools für die Datenbankverschlüsselung alleine nicht durchführbar. Hardwarehersteller bieten Produkte an, die die Schlüsselverwaltung in Unternehmen mittels Hardwaresicherheitsmodulen (HSM) umsetzen. HSM-Geräte speichern die Verschlüsselungsschlüssel auf Hardware- oder Softwaremodulen. Dies ist eine sicherere Lösung, da die Verschlüsselungsschlüssel von den Verschlüsselungsdaten getrennt werden.

Etliche Anbieter liefern Hardwaresicherheitsmodule für die Schlüsselverwaltung und die Verschlüsselungsbeschleunigung. HSM-Geräte verwenden Hardwareschnittstellen, bei denen ein Serverprozess als Mittler zwischen einer Anwendung und einem HSM fungiert. Darüber hinaus implementieren die Hersteller MSCAPI-Anbieter mit ihren Modulen, wobei es sich um Hardware oder Software handeln kann. MSCAPI bietet jedoch häufig nur einen Teil der Funktionen an, die von einem HSM bereitgestellt werden. Die Hersteller können außerdem Verwaltungssoftware für Hardwaresicherheitsmodule, Schlüsselkonfiguration und Schlüsselzugriff bereitstellen.

HSM-Implementierungen variieren von Anbieter zu Anbieter und zur Verwendung mit SQL Server erfordert eine gemeinsame Schnittstelle. Diese Schnittstelle wird zwar von der MSCAPI bereitgestellt, sie unterstützt allerdings nur einen Teil 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.

Mit der SQL Server Extensible Key Management können Drittanbieter EKM/HSM ihre Module in SQL Server registrieren. Bei der Registrierung können SQL Server-Benutzer die auf EKM-Modulen gespeicherten Verschlüsselungsschlüssel verwenden. Dadurch kann SQL Server auf die erweiterten Verschlüsselungsfeatures zugreifen, die diese Module unterstützen, z. B. Massenverschlüsselung und Entschlüsselung sowie Schlüsselverwaltungsfunktionen wie Schlüsselalterung und Schlüsseldrehung.

Wenn SQL Server in einer Azure-VM ausgeführt wird, kann SQL Server Schlüssel verwenden, die im Azure Key Vault gespeichert sind. Weitere Informationen finden Sie im Thema Erweiterbare Schlüsselverwaltung mit Azure Key Vault (SQL Server).

EKM-Konfiguration

Extensible Key Management ist in jeder Edition von Microsoft SQL Server nicht verfügbar. Eine Liste der Funktionen, die von den SQL Server-Editionen unterstützt werden, finden Sie unter Von den SQL Server 2016-Editionen unterstützte Funktionen.

Standardmäßig ist die EKM deaktiviert. Wenn Sie die Funktion aktivieren möchten, verwenden Sie wie im folgenden Beispiel dargestellt den sp_configure-Befehl, der über folgende Option und folgenden Wert verfügt:

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

Hinweis

Wenn Sie den Befehl sp_configure für diese Option in Editionen von SQL Server verwenden, die EKM nicht unterstützen, wird eine Fehlermeldung angezeigt.

Wenn Sie die Funktion deaktivieren möchten, legen Sie den Wert auf 0fest. Weitere Informationen zum Festlegen von Serveroptionen finden Sie unter sp_configure (Transact-SQL).

So verwenden Sie die erweiterbare Schlüsselverwaltung

Mit der erweiterbaren Schlüsselverwaltung (Extensible Key Management, EKM) von SQL Server können die Verschlüsselungsschlüssel, mit denen die Datenbankdateien geschützt werden, auf einem externen Gerät gespeichert werden. Beispiele hierfür sind eine Smartcard, ein USB-Gerät oder ein EKM/HSM-Modul. Hiermit wird auch der Schutz von Daten durch Datenbankadministratoren ermöglicht (mit Ausnahme von Mitgliedern der sysadmin-Gruppe). Daten können mit Verschlüsselungsschlüsseln verschlüsselt werden, auf die nur der Datenbankbenutzer auf dem externen EKM/HSM-Modul Zugriff hat.

EKM hat außerdem folgende Vorzüge:

  • Zusätzliche Autorisierungsprüfung (ermöglicht die Aufgabentrennung)

  • Bessere Leistung bei der hardwarebasierten Verschlüsselung und Entschlüsselung

  • Externe Generierung von Verschlüsselungsschlüsseln

  • Externe Speicherung von Verschlüsselungsschlüsseln (physische Trennung von Daten und Schlüsseln)

  • Abruf der Verschlüsselungsschlüssel

  • Extern gesteuerte Laufzeit der Verschlüsselungsschlüssel (ermöglicht die Rotation der Verschlüsselungsschlüssel)

  • 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 möglicherweise den Verschlüsselungsschlüssel vom EKM-Anbieter. Außerdem kann es sein, dass Sie für die Lösung eines Problems auf Tools und Prozesse des Herstellers zugreifen müssen.

Authentifizierung bei EKM-Geräten

EKM-Module können mehrere Arten der Authentifizierung unterstützen. Jeder Anbieter macht nur einen Authentifizierungstyp für SQL Server verfügbar, d. h. wenn das Modul standard- oder andere Authentifizierungstypen unterstützt, stellt er einen oder den anderen offen, aber nicht beide.

EKM-gerätespezifische Standardauthentifizierung mit einer Benutzername-/Kennwortkombination

Für diese EKM-Module, die die Standardauthentifizierung mithilfe eines Benutzernamen- /Kennwortpaars unterstützen, stellt SQL Server mithilfe von Anmeldeinformationen eine transparente Authentifizierung bereit. Weitere Informationen zu Anmeldeinformationen finden Sie unter Anmeldeinformationen (Datenbankmodul).

Für einen EKM-Anbieter kann eine Anmeldeinformation erstellt und einer Anmeldung (sowohl Windows- als auch SQL Server-Konten) zugeordnet werden, um auf ein EKM-Modul pro Anmeldung zuzugreifen. Das Feld Identität der Anmeldeinformationen enthält den Benutzernamen, und das Feld Geheimnis enthält ein Kennwort zum Herstellen einer Verbindung mit einem EKM-Modul.

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

Einem Anmeldenamen können mehrere Anmeldeinformationen zugeordnet werden, solange sie für unterschiedliche EKM-Anbieter verwendet werden. Pro EKM-Anbieter und Anmeldung darf es jedoch nur einen zugeordneten Identitätsnachweis geben. Die gleichen Anmeldeinformationen können jedoch auch anderen Anmeldenamen zugeordnet werden.

Andere Arten der EKM-gerätespezifischen Authentifizierung

Bei EKM-Modulen mit einer anderen Authentifizierung als Windows oder Benutzer-/Kennwortkombinationen muss die Authentifizierung unabhängig von SQL Server ausgeführt werden.

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

Sie können die folgenden Funktionen verwenden, um Daten mithilfe von symmetrischen und asymmetrischen Schlüsseln zu verschlüsseln und zu entschlüsseln:

Funktion Verweis
Verschlüsselung mit symmetrischen Schlüsseln CREATE SYMMETRIC KEY (Transact-SQL)
Verschlüsselung mit asymmetrischen Schlüsseln CREATE ASYMMETRIC KEY (Transact-SQL)
EncryptByKey(key_guid, 'cleartext', ...) ENCRYPTBYKEY (Transact-SQL)
DecryptByKey(ciphertext, ...) DECRYPTBYKEY (Transact-SQL)
EncryptByAsmKey(key_guid, 'Klartext') ENCRYPTBYASYMKEY (Transact-SQL)
DecryptByAsmKey(ciphertext) DECRYPTBYASYMKEY (Transact-SQL)

Datenbankschlüsselverschlüsselung mit EKM-Schlüsseln

SQL Server kann EKM-Schlüssel verwenden, um andere Schlüssel in einer Datenbank zu 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.

Im folgenden Beispiel wird ein symmetrischer Datenbankschlüssel erstellt und mit einem Schlüssel auf einem EKM-Modul verschlüsselt.

CREATE SYMMETRIC KEY Key1  
WITH ALGORITHM = AES_256  
ENCRYPTION BY EKM_AKey1;  
GO  
--Open 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 (Datenbankmodul).

Hinweis

EKM-Schlüssel können nicht mit anderen EKM-Schlüsseln verschlüsselt werden.

SQL Server unterstützt das Signieren von Modulen mit asymmetrischen Schlüsseln, die vom EKM-Anbieter generiert werden, nicht.

EKM provider enabled (Serverkonfigurationsoption)

Aktivieren von TDE in SQL Server mithilfe von EKM

Erweiterbare Schlüsselverwaltung mit Azure Key Vault (SQL Server)

Weitere Informationen

CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
sys.cryptographic_providers (Transact-SQL)
sys.dm_cryptographic_provider_sessions (Transact-SQL)
sys.dm_cryptographic_provider_properties (Transact-SQL)
sys.dm_cryptographic_provider_algorithms (Transact-SQL)
sys.dm_cryptographic_provider_keys (Transact-SQL)
sys.credentials (Transact-SQL)
CREATE CREDENTIAL (Transact-SQL)
ALTER LOGIN (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
OPEN SYMMETRIC KEY (Transact-SQL)
Verschlüsselungsschlüssel für SSRS: Sichern und Wiederherstellen von Verschlüsselungsschlüsseln
Löschen und erneutes Erstellen von Verschlüsselungsschlüsseln (SSRS-Konfigurations-Manager)
Hinzufügen und Entfernen von Verschlüsselungsschlüsseln für die Bereitstellung für die horizontale Skalierung (SSRS-Konfigurations-Manager)
Sichern des Diensthauptschlüssels
Wiederherstellen des Diensthauptschlüssels
Erstellen eines Datenbank-Hauptschlüssels
Sichern eines Datenbank-Hauptschlüssels
Wiederherstellen eines Datenbank-Hauptschlüssels
Erstellen identischer symmetrischer Schlüssel auf zwei Servern