Freigeben über


SQL Server-Zertifikate und asymmetrische Schlüssel

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL-Datenbank in Microsoft Fabric

Die Verschlüsselung mit öffentlichen Schlüsseln ist eine Form der Nachrichtenverschlüsselung, bei der ein Benutzer einen öffentlichen Schlüssel und einen privaten Schlüssel erstellt. Der private Schlüssel wird geheim gehalten, der öffentliche Schlüssel kann an andere verteilt werden. Zwar sind die Schlüssel mathematisch miteinander verknüpft, jedoch kann der private Schlüssel nicht einfach aus dem öffentlichen Schlüssel abgeleitet werden. Der öffentliche Schlüssel kann zum Verschlüsseln von Daten verwendet werden, die dann nur vom entsprechenden privaten Schlüssel wieder entschlüsselt werden können. Er kann zum Verschlüsseln von Benachrichtigungen an den Besitzer des privaten Schlüssels verwendet werden. Auf ähnliche Weise kann der Besitzer eines privaten Schlüssels Daten verschlüsseln, die nur mit dem öffentlichen Schlüssel entschlüsselt werden können. Dies bildet die Grundlage des digitalen Zertifikats, bei dem Informationen, die im Zertifikat enthalten sind, vom Besitzer des privaten Schlüssels verschlüsselt werden und dadurch der Autor der Inhalte versichert wird. Da sich die verschlüsselnden und entschlüsselnden Schlüssel unterscheiden, werden sie als asymmetrische Schlüssel bezeichnet.

Zertifikate und asymmetrische Schlüssel sind beides Möglichkeiten, asymmetrische Verschlüsselung zu verwenden. Zertifikate werden oft als Container für asymmetrische Schlüssel verwendet, da sie weitere Informationen enthalten können, beispielsweise Ablaufdaten und Zertifikatsaussteller. In Bezug auf den kryptografischen Algorithmus gibt es zwischen den beiden Mechanismen keinen Unterschied, und bei gegebener Schlüssellänge auch keinen Unterschied in der Verschlüsselungsstärke. Im Allgemeinen verwenden Sie ein Zertifikat, um andere Typen von Verschlüsselungsschlüsseln in einer Datenbank zu verschlüsseln oder um Codemodule zu signieren.

Zertifikate und asymmetrische Schlüssel können Daten entschlüsseln, die mit dem jeweils anderen Schlüssel verschlüsselt wurden. Im Allgemeinen verwenden Sie eine asymmetrische Verschlüsselung, um einen symmetrischen Schlüssel für die Speicherung in einer Datenbank zu verschlüsseln.

Ein öffentlicher Schlüssel hat kein einem Zertifikat vergleichbares bestimmtes Format, und Sie können ihn nicht in eine Datei exportieren.

Hinweis

SQL Server enthält Funktionen, mit denen Sie Zertifikate und Schlüssel zur Verwendung mit dem Server und der Datenbank erstellen und verwalten können. SQL Server kann nicht zum Erstellen und Verwalten von Zertifikaten und Schlüsseln mit anderen Anwendungen oder im Betriebssystem verwendet werden.

Zertifikate

Ein Zertifikat ist ein digital signiertes Sicherheitsobjekt, das einen öffentlichen (und optional einen privaten) Schlüssel für SQL Server enthält. Sie können extern generierte Zertifikate verwenden, aber auch SQL Server kann Zertifikate generieren.

Hinweis

SQL Server-Zertifikate entsprechen dem Zertifizierungsstandard IETF X.509v3.

Zertifikate sind nützlich, weil sie die Möglichkeit bieten, Schlüssel in X.509-Zertifikatsdateien zu exportieren und aus ihnen zu importieren. Die Syntax der Zertifikatserstellung lässt die Angabe von Optionen für Zertifikate zu, z. B. die Angabe eines Ablaufdatums.

Verwenden eines Zertifikats in SQL Server

Zertifikate können verwendet werden, um Verbindungen und Datenbankspiegelungen zu sichern, um Pakete und andere Objekte zu signieren oder um Daten und Verbindungen zu verschlüsseln. In der folgenden Tabelle werden zusätzliche Ressourcen für Zertifikate in SQL Server aufgeführt.

Thema Beschreibung
CREATE CERTIFICATE (Transact-SQL) Erklärt den Befehl zum Erstellen von Zertifikaten.
Identifizieren der Quelle von Paketen mit digitalen Signaturen Zeigt Informationen über das Verwenden von Zertifikaten zur Signierung von Softwarepaketen an.
Verwenden von Zertifikaten für einen Datenbankspiegelungs-Endpunkt (Transact-SQL) Bietet Informationen über das Verwenden von Zertifikaten bei Datenbankspiegelungen.

Asymmetrische Schlüssel

Asymmetrische Schlüssel werden zum Sichern von symmetrischen Schlüsseln verwendet. Sie können auch für eine eingeschränkte Datenverschlüsselung und die digitale Signierung von Datenbankobjekten verwendet werden. Ein asymmetrischer Schlüssel besteht aus einem privaten Schlüssel und einem entsprechenden öffentlichen Schlüssel. Weitere Informationen zu asymmetrischen Schlüsseln finden Sie unter CREATE ASYMMETRIC KEY (Transact-SQL)bezeichnet.

Asymmetrische Schlüssel können aus Schlüsseldateien mit starkem Namen importiert, jedoch nicht exportiert werden. Sie verfügen auch nicht über Ablaufoptionen. Asymmetrische Schlüssel können keine Verbindungen verschlüsseln.

Verwenden eines asymmetrischen Schlüssels in SQL Server

Asymmetrische Schlüssel können verwendet werden, um Daten zu sichern oder Nur-Text zu signieren. In der folgenden Tabelle werden zusätzliche Ressourcen für asymmetrischen Schlüssel in SQL Server aufgeführt.

Thema Beschreibung
CREATE ASYMMETRIC KEY (Transact-SQL) Erklärt den Befehl zum Erstellen von asymmetrischen Schlüsseln.
SIGNBYASYMKEY (Transact-SQL) Erläutert die Optionen zum Signieren von Objekten.

Extras

Microsoft stellt Tools und Hilfsprogramme bereit, die Zertifikate und Schlüsseldateien mit starkem Namen generieren. Mithilfe dieser Tools können Schlüssel wesentlich flexibler generiert werden, als dies mit der SQL Server-Syntax möglich ist. Sie können mit diesen Tools RSA-Schlüssel mit komplexerer Schlüssellänge erstellen und diese dann in SQL Server importieren. Die folgende Tabelle zeigt, wo diese Tools zu finden sind.

Tool Zweck
New-SelfSignedCertificate Erstellt selbstsignierte Zertifikate.
makecert Erstellt Zertifikate. Als veraltet markiert, zum Vorteil von New-SelfSignedCertificate.
sn Erstellt starke Namen für symmetrische Schlüssel.

Auswählen eines Verschlüsselungsalgorithmus

CREATE SYMMETRIC KEY (Transact-SQL)

CREATE CERTIFICATE (Transact-SQL)

Weitere Informationen

sys.certificates (Transact-SQL)
Transparente Datenverschlüsselung (TDE)