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

Gilt für:SQL Server

SQL Server verwendet Verschlüsselungsschlüssel, um Daten, Anmeldeinformationen und Verbindungsinformationen zu sichern, die in einer Serverdatenbank gespeichert sind. SQL Server verfügt über zwei Arten von Schlüsseln: symmetrisch und asymmetrisch. 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 enthalten Verschlüsselungsschlü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 vertrauliche Daten zu verschlüsseln, die in SQL Server gespeichert sind. Öffentliche und private Schlüssel werden vom Betriebssystem erstellt und zum Schutz des symmetrischen Schlüssels verwendet. Für jede SQL Server-Instanz, die vertrauliche Daten in einer Datenbank speichert, wird ein öffentliches und privates Schlüsselpaar erstellt.

Anwendungen für SQL Server- und Datenbankschlüssel

SQL Server verfügt über zwei primäre Anwendungen für Schlüssel: einen Für eine SQL Server-Instanz generierten Dienstmasterschlüssel (Service Master Key , SMK) und einen datenbankmaster key (DMK), der für eine Datenbank verwendet wird.

Diensthauptschlüssel

Der Diensthauptschlüssel ist der Stamm der SQL Server -Verschlüsselungshierarchie. Die SMK wird automatisch generiert, wenn die SQL Server-Instanz zum ersten Mal gestartet wird und zum Verschlüsseln eines verknüpften Serverkennworts, anmeldeinformationen und des Datenbankmasterschlüssels in jeder Datenbank verwendet wird. 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 wird. 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 verwendet den AES-Verschlüsselungsalgorithmus, um den Dienstmasterschlüssel (SMK) und den Datenbankmasterschlüssel (DMK) zu schützen. AES ist ein neuerer Verschlüsselungsalgorithmus als der in früheren Versionen verwendete 3DES-Algorithmus. Nach dem Upgrade einer Instanz des Datenbankmoduls auf SQL Server sollten SMK und DMK neu generiert werden, um die Hauptschlüssel auf AES zu aktualisieren. Weitere Informationen zum Generieren von 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. Sie kann auch zum Verschlüsseln von Daten verwendet werden, hat jedoch Längenbeschränkungen, die es für Daten weniger praktisch machen als die Verwendung eines asymmetrischen Schlüssels. 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 enthaltenen Tools verwenden, um Folgendes auszuführen:

  • 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

Für den Zugriff auf durch den Dienstmasterschlüssel gesicherte Objekte ist entweder das SQL Server-Dienstkonto erforderlich, das zum Erstellen des Schlüssels oder des Computerkontos (Computer) verwendet wurde. Dies bedeutet: Das Computerkonto ist an das System gebunden, auf dem der Schlüssel erstellt wurde. Sie können das SQL Server Service-Konto 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)
Erläutert, wie Schlüsselverwaltungssysteme von Drittanbietern 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)