Verschlüsselungsschlüssel für SQL Server und SQL-Datenbank (Datenbank-Engine)

Gilt für: SQL Server

SQL Server verwendet Verschlüsselungsschlüssel, um Anmeldeinformationen und Verbindungsinformationen zu schützen, die in einer Serverdatenbank gespeichert werden. SQL Server besitzt zwei Arten von Schlüsseln: symmetrische und asymmetrische. Symmetrische Schlüssel verwenden das gleiche Kennwort, um Daten zu verschlüsseln und zu entschlüsseln. Asymmetrische Schlüssel verwenden ein Kennwort zum Verschlüsseln der Daten (den öffentlichen Schlüssel) und ein weiteres zum Entschlüsseln der Daten (den privaten Schlüssel).

In SQL Server umfassen die Kodierungsschlüssel eine Kombination aus öffentlichen, privaten und symmetrischen Schlüsseln, die zum Schutz vertraulicher Daten verwendet werden. Der symmetrische Schlüssel wird während der SQL Server-Initialisierung erstellt, wenn Sie die SQL Server-Instanz zum ersten Mal starten. Der Schlüssel wird von SQL Server verwendet, um sensible Daten zu verschlüsseln, die in SQL Server gespeichert werden. Öffentliche und private Schlüssel werden vom Betriebssystem erstellt und zum Schutz des symmetrischen Schlüssels verwendet. Ein Paar aus einem privaten und einem öffentlichen Schlüssel wird für jede SQL Server-Instanz erstellt, die sensible Daten in einer Datenbank speichert.

Anwendungen für SQL Server- und Datenbankschlüssel

SQL Server hat zwei primäre Anwendungen für Schlüssel: einen Diensthauptschlüssel (Service Master Key; SMK), der auf einer und für eine SQL Server -Instanz generiert wurde, sowie einen Datenbank-Hauptschlüssel (Database Master Key; DMK), der für eine Datenbank verwendet wurde.

Diensthauptschlüssel

Der Diensthauptschlüssel ist der Stamm der SQL Server -Verschlüsselungshierarchie. Der Diensthauptschlüssel wird automatisch generiert, wenn die SQL Server-Instanz zum ersten Mal gestartet wird. Er wird in jeder Datenbank verwendet, um ein Kennwort für einen Verbindungsserver, Anmeldeinformationen und den Datenbank-Hauptschlüssel zu verschlüsseln. Der Diensthauptschlüssel wird mithilfe des auf dem lokalen Computer verwendeten Computerschlüssels unter Verwendung der Windows-Datenschutz-API (DPAPI) verschlüsselt. Die DPAPI verwendet einen Schlüssel, der von den Windows-Anmeldeinformationen des SQL Server-Dienstkontos und den Anmeldeinformationen des Computers abgeleitet ist. Der Diensthauptschlüssel kann nur von dem Dienstkonto entschlüsselt werden, unter dem er erstellt wurde, oder von einem Prinzipal, der auf die Anmeldeinformationen des Computers zugreifen kann.

Der Diensthauptschlüssel kann nur durch das Windows-Dienstkonto geöffnet werden, unter dem er erstellt wurde, oder durch einen Prinzipal mit Zugriff auf den Namen des Dienstkontos und sein Kennwort.

SQL Server schützt den Diensthauptschlüssel (Service Master Key, SMK) und den Datenbank-Hauptschlüssel (Database Master Key, DMK) mithilfe des AES-Verschlüsselungsalgorithmus. AES ist ein neuerer Verschlüsselungsalgorithmus als der in früheren Versionen verwendete 3DES-Algorithmus. Nach dem Aktualisieren einer Instanz von Datenbank-Engine auf SQL Server sollten SMK und DMK erneut generiert werden, um die Hauptschlüssel auf AES zu aktualisieren. Weitere Informationen zum Neugenerieren des SMK finden Sie unter ALTER SERVICE MASTER KEY (Transact-SQL) und ALTER MASTER KEY (Transact-SQL).

Datenbank-Hauptschlüssel

Der Datenbank-Hauptschlüssel ist ein symmetrischer Schlüssel, der zum Schützen von privaten Schlüsseln der in der Datenbank vorhandenen Zertifikate und asymmetrischen Schlüssel verwendet wird. Er kann auch zum Verschlüsseln von Daten verwendet werden. Allerdings gelten für diesen Schlüssel Längenbeschränkungen, durch die er für Daten weniger praktisch ist, als ein symmetrischer Schlüssel. Um die automatische Entschlüsselung des Datenbank-Hauptschlüssels zu ermöglichen, wird eine Kopie des Schlüssels mit dem Diensthauptschlüssel verschlüsselt. Er wird sowohl in der Datenbank gespeichert, in der er verwendet wird, als auch in der master -Systemdatenbank.

Die in der master -Systemdatenbank gespeicherte Kopie des Datenbank-Hauptschlüssels wird im Hintergrund aktualisiert, sobald der Datenbank-Hauptschlüssel geändert wird. Diese Standardeinstellung kann jedoch mit der DROP ENCRYPTION BY SERVICE MASTER KEY -Option der ALTER MASTER KEY -Anweisung geändert werden. Ein Datenbank-Hauptschlüssel, der nicht mit dem Diensthauptschlüssel verschlüsselt ist, muss mithilfe der OPEN MASTER KEY -Anweisung und eines Kennworts geöffnet werden.

Verwalten von SQL Server- und Datenbankschlüsseln

Zur Verwaltung der Verschlüsselungsschlüssel gehört das Erstellen neuer Datenbankschlüssel, das Erstellen einer Sicherung der Server- und Datenbankschlüssel und das Wissen darüber, wann und wie die Schlüssel wiederhergestellt, gelöscht oder geändert werden müssen.

Zum Verwalten symmetrischer Schlüssel können Sie die in SQL Server bereitgestellten Tools für folgende Aufgaben verwenden:

  • Erstellen einer Sicherungskopie der Server- und Datenbankschlüssel, sodass sie zum Wiederherstellen einer Serverinstallation oder im Rahmen einer geplanten Migration verwendet werden können.

  • Wiederherstellen eines zuvor gespeicherten Schlüssels in einer Datenbank. Dadurch kann eine neue Serverinstanz auf vorhandene Daten zugreifen, die sie ursprünglich nicht verschlüsselt hat.

  • Löschen der verschlüsselten Daten in einer Datenbank in dem unwahrscheinlichen Fall, dass Sie nicht mehr auf die verschlüsselten Daten zugreifen können.

  • Erneutes Erstellen von Schlüsseln und erneutes Verschlüsseln von Daten in dem unwahrscheinlichen Fall, dass der Schlüssel nicht mehr sicher ist. Eine bewährte Sicherheitsmethode ist die regelmäßige Neuerstellung der Schlüssel (z. B. alle paar Monate), um den Server vor Angriffen zu schützen, bei denen versucht wird, die Schlüssel zu entschlüsseln.

  • Hinzufügen oder Entfernen einer Serverinstanz aus einer Serverbereitstellung für horizontales Skalieren, bei der mehrere Server eine einzige Datenbank und den Schlüssel, der für diese Datenbank die umkehrbare Verschlüsselung bereitstellt, gemeinsam nutzen.

Wichtige Sicherheitsinformationen

Der Zugriff auf Objekte, die durch den Diensthauptschlüssel gesichert sind, erfordert entweder das SQL Server-Dienstkonto, das zum Erstellen des Schlüssels verwendet wurde, oder das Computerkonto. Dies bedeutet: Das Computerkonto ist an das System gebunden, auf dem der Schlüssel erstellt wurde. Sie können das SQL Server-Dienstkonto oder das Computerkonto ändern, ohne den Zugriff auf den Schlüssel zu verlieren. Wenn Sie jedoch beides ändern, verlieren Sie den Zugriff auf den Diensthauptschlüssel. Wenn Sie den Zugriff auf den Diensthauptschlüssel ohne eines der beiden Elemente verlieren, können Sie keine Daten und Objekte mehr entschlüsseln, die mit dem ursprünglichen Schlüssel verschlüsselt wurden.

Verbindungen, die mit dem Diensthauptschlüssel gesichert wurden, können nicht ohne den Diensthauptschlüssel wiederhergestellt werden.

Für den Zugriff auf Objekte und Daten, die mit dem Datenbank-Hauptschlüssel gesichert wurden, ist nur das Kennwort erforderlich, das zum Sichern des Schlüssels verwendet wird.

Achtung

Wenn Sie den gesamten Zugriff auf die oben beschriebenen Schlüssel verlieren, verlieren Sie den Zugriff auf die Objekte, Verbindungen und Daten, die mit diesen Schlüsseln gesichert wurden. Sie können den Diensthauptschlüssel wie unter den hier angegebenen Links beschrieben wiederherstellen, oder Sie können den Zugriff mit dem ursprünglichen Verschlüsselungssystem wiederherstellen. Es gibt keine "Hintertür" zum Wiederherstellen des Zugriffs.

In diesem Abschnitt

Diensthauptschlüssel
Bietet eine kurze Erklärung zum Diensthauptschlüssel und den Best Practices.

Erweiterbare Schlüsselverwaltung (Extensible Key Management, EKM)
Erklärt, wie Schlüsselverwaltungssysteme eines Drittanbieters mit SQL Server verwendet werden.

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

Aktivieren von TDE in SQL Server mithilfe von EKM

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

Verschlüsseln einer Datenspalte

CREATE MASTER KEY (Transact-SQL)

ALTER SERVICE MASTER KEY (Transact-SQL)

Wiederherstellen eines Datenbank-Hauptschlüssels

Weitere Informationen

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)
Transparente Datenverschlüsselung (TDE)