SQL Server-Zertifikate und asymmetrische Schlüssel

Die Verschlüsselung mit öffentlichen Schlüsseln (Public Key Cryptography, PKI) 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 wird verwendet, um Daten zu verschlüsseln und der private Schlüssel wird verwendet, um Daten zu entschlüsseln. Eine mit dem öffentlichen Schlüssel verschlüsselte Nachricht kann nur mit dem korrekten privaten Schlüssel wieder entschlüsselt werden. Da es sich um zwei verschiedene Schlüssel handelt, werden diese Schlüssel als asymmetrischbezeichnet.

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 Serverenthä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 Serveraufgefü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).

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 Serveraufgefü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.

Tools

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 Serverimportieren. Die folgende Tabelle erklärt, wo diese Tools zu finden sind.

Tool Zweck
makecert Erstellt Zertifikate.
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)