Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 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 eine Schlüsselverwaltung mit einer Verschlüsselungsschlüsselhierarchie und Schlüsselsicherung durch SQL Server.
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.
Eine Reihe von Anbietern bieten HSM sowohl für die Schlüsselverwaltung als auch für die Beschleunigung der Verschlüsselung 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 jedoch häufig nur einen Teil der Funktionen an, die von einem HSM bereitgestellt werden. Anbieter können außerdem Verwaltungssoftware für HSMs, die Schlüsselkonfiguration und den Schlüsselzugriff bereitstellen.
Die HSM-Implementierungen unterscheiden sich zwischen den Herstellern, und für die Verwendung mit SQL Server ist eine gemeinsame Schnittstelle erforderlich. 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.
Durch die erweiterbare Schlüsselverwaltung in SQL Server können EKM-/HSM-Drittanbieter ihre Module bei SQL Server registrieren. Nach der Registrierung können SQL Server-Benutzer die auf den EKM-Modulen gespeicherten Verschlüsselungsschlüssel verwenden. Auf diese Weise kann SQL Server die von diesen Modulen unterstützten erweiterten Verschlüsselungsfunktionen wie die Massenverschlüsselung und -entschlüsselung und Schlüsselverwaltungsfunktionen wie die Schlüsselablaufzeit und die Schlüsselrotation nutzen.
Beim Ausführen von SQL Server in einer Azure-VM können von SQL Server Schlüssel verwendet werden, die im Azure Key Vault gespeichert sind. Weitere Informationen finden Sie im Thema Erweiterbare Schlüsselverwaltung mit Azure Key Vault (SQL Server).
EKM-Konfiguration
Die Erweiterbare Schlüsselverwaltung ist nicht in jeder Edition von Microsoft SQL Server 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 sp_configure-Befehl für diese Option in SQL Server-Editionen verwenden, die EKM nicht unterstützen, wird ein Fehler 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 EKM
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.
Extensible Key Management bietet ebenfalls die folgenden Vorteile:
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
Externe Aufbewahrung von Verschlüsselungsschlüsseln (ermöglicht die Schlüsselrotation)
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 bei EKM-Geräten
EKM-Module können mehrere Arten der Authentifizierung unterstützen. Jeder Provider stellt SQL Server nur eine Art der Authentifizierung bereit; das heißt, wenn das Modul Basic- oder andere Authentifizierung unterstützt, stellt es entweder die eine oder die andere bereit, aber nicht beide.
EKM-gerätespezifische Standardauthentifizierung mit einer Benutzername-/Kennwortkombination
Bei den EKM-Modulen, die die Standardauthentifizierung mit einem Benutzername/Kennwort-Paar unterstützen, stellt SQL Server eine transparente Authentifizierung über Anmeldeinformationen bereit. Weitere Informationen über Anmeldeinformationen finden Sie unter Anmeldeinformationen (Datenbank-Engine).
Sie können für einen EKM-Anbieter einen Identitätsnachweis (Anmeldeinformationen) erstellen und diesen einem Anmeldenamen (sowohl für Windows- als auch für SQL Server-Konten) zuordnen, sodass der Zugriff auf ein EKM-Modul über eine einzelne Anmeldung möglich ist. 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 für den EKM-Anbieter keine einem Login zugeordneten Anmeldeinformationen vorhanden sind, werden die dem SQL Server-Dienstkonto zugeordneten Anmeldeinformationen verwendet.
Einem Login können mehrere Anmeldeinformationen zugeordnet sein, solange sie für verschiedene EKM-Anbieter verwendet werden. Pro EKM-Anbieter und Anmeldung darf es jedoch nur einen zugeordneten Identitätsnachweis geben. Dieselben Anmeldeinformationen können auch anderen Logins zugeordnet werden.
Andere Arten der EKM-gerätespezifischen Authentifizierung
Bei EKM-Modulen, die eine andere Authentifizierung als die Windows-Authentifizierung oder die Kombination aus Benutzername/Kennwort verwenden, muss die Authentifizierung unabhängig von SQL Server erfolgen.
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 oder Feature | 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, '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.
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 Verschlüsselungsschlüssel für SQL Server und Datenbank (Datenbank-Engine).
Hinweis
EKM-Schlüssel können nicht mit anderen EKM-Schlüsseln verschlüsselt werden.
SQL Server unterstützt keine Signierungsmodule mit den asymmetrischen Schlüsseln, die vom EKM-Anbieter generiert werden.
Verwandte Aufgaben
Serverkonfigurationsoption für aktivierten EKM-Anbieter
Aktivieren von TDE in SQL Server mithilfe von EKM
Erweiterbare Schlüsselverwaltung mit Azure Key Vault (SQL Server)
Siehe auch
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)
Sichern und Wiederherstellen von Reporting Services-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 Skalierungsbereitstellungen (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