SQL Server-Zertifikate und asymmetrische SchlüsselSQL Server Certificates and Asymmetric Keys

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.Public Key Cryptography (PKI) is a form of message secrecy in which a user creates a public key and a private key. Der private Schlüssel wird geheim gehalten, der öffentliche Schlüssel kann an andere verteilt werden.The private key is kept secret, whereas the public key can be distributed to others. Zwar sind die Schlüssel mathematisch miteinander verknüpft, jedoch kann der private Schlüssel nicht einfach aus dem öffentlichen Schlüssel abgeleitet werden.Although the keys are mathematically related, the private key cannot be easily derived by using the public key. Der öffentliche Schlüssel wird verwendet, um Daten zu verschlüsseln und der private Schlüssel wird verwendet, um Daten zu entschlüsseln.The public key is used to encrypt data and the private key is used to decrypt data. Eine mit dem öffentlichen Schlüssel verschlüsselte Nachricht kann nur mit dem korrekten privaten Schlüssel wieder entschlüsselt werden.A message that is encrypted by using the public key can only be decrypted by using the correct private key. Da es sich um zwei verschiedene Schlüssel handelt, werden diese Schlüssel als asymmetrischbezeichnet.Since there are two different keys, these keys are asymmetric.

Zertifikate und asymmetrische Schlüssel sind beides Möglichkeiten, asymmetrische Verschlüsselung zu verwenden.Certificates and asymmetric keys are both ways to use asymmetric encryption. Zertifikate werden oft als Container für asymmetrische Schlüssel verwendet, da sie weitere Informationen enthalten können, beispielsweise Ablaufdaten und Zertifikatsaussteller.Certificates are often used as containers for asymmetric keys because they can contain more information such as expiry dates and issuers. 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.There is no difference between the two mechanisms for the cryptographic algorithm, and no difference in strength given the same key length. Im Allgemeinen verwenden Sie ein Zertifikat, um andere Typen von Verschlüsselungsschlüsseln in einer Datenbank zu verschlüsseln oder um Codemodule zu signieren.Generally, you use a certificate to encrypt other types of encryption keys in a database, or to sign code modules.

Zertifikate und asymmetrische Schlüssel können Daten entschlüsseln, die mit dem jeweils anderen Schlüssel verschlüsselt wurden.Certificates and asymmetric keys can decrypt data that the other encrypts. Im Allgemeinen verwenden Sie eine asymmetrische Verschlüsselung, um einen symmetrischen Schlüssel für die Speicherung in einer Datenbank zu verschlüsseln.Generally, you use asymmetric encryption to encrypt a symmetric key for storage in a database.

Ein öffentlicher Schlüssel hat kein einem Zertifikat vergleichbares bestimmtes Format, und Sie können ihn nicht in eine Datei exportieren.A public key does not have a particular format like a certificate would have, and you cannot export it to a file.

Hinweis

SQL ServerSQL 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 ServerSQL Server contains features that enable you to create and manage certificates and keys for use with the server and database. SQL ServerSQL Server kann nicht zum Erstellen und Verwalten von Zertifikaten und Schlüsseln mit anderen Anwendungen oder im Betriebssystem verwendet werden. cannot be used to create and manage certificates and keys with other applications or in the operating system.

ZertifikateCertificates

Ein Zertifikat ist ein digital signiertes Sicherheitsobjekt, das einen öffentlichen (und optional einen privaten) Schlüssel für SQL ServerSQL Serverenthält.A certificate is a digitally signed security object that contains a public (and optionally a private) key for SQL ServerSQL Server. Sie können extern generierte Zertifikate verwenden, aber auch SQL ServerSQL Server kann Zertifikate generieren.You can use externally generated certificates or SQL ServerSQL Server can generate certificates.

Hinweis

SQL ServerSQL Server Zertifikate entsprechen dem Zertifizierungsstandard IETF X.509v3. SQL ServerSQL Server certificates comply with the IETF X.509v3 certificate standard.

Zertifikate sind nützlich, weil sie die Möglichkeit bieten, Schlüssel in X.509-Zertifikatsdateien zu exportieren und aus ihnen zu importieren.Certificates are useful because of the option of both exporting and importing keys to X.509 certificate files. Die Syntax der Zertifikatserstellung lässt die Angabe von Optionen für Zertifikate zu, z. B. die Angabe eines Ablaufdatums.The syntax for creating certificates allows for creation options for certificates such as an expiry date.

Verwenden eines Zertifikats in SQL ServerUsing a Certificate 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.Certificates can be used to help secure connections, in database mirroring, to sign packages and other objects, or to encrypt data or connections. In der folgenden Tabelle werden zusätzliche Ressourcen für Zertifikate in SQL ServerSQL Serveraufgeführt.The following table lists additional resources for certificates in SQL ServerSQL Server.

ThemaTopic BeschreibungDescription
CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL) Erklärt den Befehl zum Erstellen von Zertifikaten.Explains the command for creating certificates.
Identifizieren der Quelle von Paketen mit digitalen SignaturenIdentify the Source of Packages with Digital Signatures Zeigt Informationen über das Verwenden von Zertifikaten zur Signierung von Softwarepaketen an.Shows information about how to use certificates to sign software packages.
Verwenden von Zertifikaten für einen Datenbankspiegelungs-Endpunkt (Transact-SQL)Use Certificates for a Database Mirroring Endpoint (Transact-SQL) Bietet Informationen über das Verwenden von Zertifikaten bei Datenbankspiegelungen.Covers information about how to use certificates with Database Mirroring.

Asymmetrische SchlüsselAsymmetric Keys

Asymmetrische Schlüssel werden zum Sichern von symmetrischen Schlüsseln verwendet.Asymmetric keys are used for securing symmetric keys. Sie können auch für eine eingeschränkte Datenverschlüsselung und die digitale Signierung von Datenbankobjekten verwendet werden.They can also be used for limited data encryption and to digitally sign database objects. Ein asymmetrischer Schlüssel besteht aus einem privaten Schlüssel und einem entsprechenden öffentlichen Schlüssel.An asymmetric key consists of a private key and a corresponding public key. Weitere Informationen zu asymmetrischen Schlüsseln finden Sie unter CREATE ASYMMETRIC KEY (Transact-SQL)bezeichnet.For more information about asymmetric keys, see CREATE ASYMMETRIC KEY (Transact-SQL).

Asymmetrische Schlüssel können aus Schlüsseldateien mit starkem Namen importiert, jedoch nicht exportiert werden.Asymmetric keys can be imported from strong name key files, but they cannot be exported. Sie verfügen auch nicht über Ablaufoptionen.They also do not have expiry options. Asymmetrische Schlüssel können keine Verbindungen verschlüsseln.Asymmetric keys cannot encrypt connections.

Verwenden eines asymmetrischen Schlüssels in SQL ServerUsing an Asymmetric Key in SQL Server

Asymmetrische Schlüssel können verwendet werden, um Daten zu sichern oder Nur-Text zu signieren.Asymmetric keys can be used to help secure data or sign plaintext. In der folgenden Tabelle werden zusätzliche Ressourcen für asymmetrischen Schlüssel in SQL ServerSQL Serveraufgeführt.The following table lists additional resources for asymmetric keys in SQL ServerSQL Server.

ThemaTopic BeschreibungDescription
CREATE ASYMMETRIC KEY (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL) Erklärt den Befehl zum Erstellen von asymmetrischen Schlüsseln.Explains the command for creating asymmetric keys.
SIGNBYASYMKEY (Transact-SQL)SIGNBYASYMKEY (Transact-SQL) Erläutert die Optionen zum Signieren von Objekten.Displays the options for signing objects.

ToolsTools

MicrosoftMicrosoft stellt Tools und Hilfsprogramme bereit, die Zertifikate und Schlüsseldateien mit starkem Namen generieren. provides tools and utilities that will generate certificates and strong name key files. Mithilfe dieser Tools können Schlüssel wesentlich flexibler generiert werden, als dies mit der SQL ServerSQL Server -Syntax möglich ist.These tools offer a richer amount of flexibility in the key generation process than the SQL ServerSQL Server syntax. Sie können mit diesen Tools RSA-Schlüssel mit komplexerer Schlüssellänge erstellen und diese dann in SQL ServerSQL Serverimportieren.You can use these tools to create RSA keys with more complex key lengths and then import them into SQL ServerSQL Server. Die folgende Tabelle erklärt, wo diese Tools zu finden sind.The following table explains shows where to find these tools.

ToolTool ZweckPurpose
makecertmakecert Erstellt Zertifikate.Creates certificates.
snsn Erstellt starke Namen für symmetrische Schlüssel.Creates strong names for symmetric keys.

Verwandte AufgabenRelated Tasks

Auswählen eines VerschlüsselungsalgorithmusChoose an Encryption Algorithm

CREATE SYMMETRIC KEY (Transact-SQL)CREATE SYMMETRIC KEY (Transact-SQL)

CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL)

Siehe auchSee Also

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