Auswählen eines Verschlüsselungsalgorithmus

Gilt für: SQL Server (alle unterstützten Versionen) Azure SQL Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Die Verschlüsselung ist eine von mehreren Maßnahmen zum sicheren Schutz, die dem Administrator zur Verfügung stehen, der eine Instanz von SQL Serversichern möchte.

Mit Verschlüsselungsalgorithmen werden Datentransformationen definiert, die von unbefugten Benutzern nicht leicht umgekehrt werden können. SQL Server ermöglicht Administratoren und Entwicklern die Auswahl aus mehreren Algorithmen, einschließlich DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128-Bit-RC4, DESX, 128-Bit-AES, 192-Bit-AES und 256-Bit-AES.

Hinweis

Ab SQL Server 2016 (13.x)gelten alle anderen Algorithmen als AES_128, AES_192 und AES_256 als veraltet. Um ältere Algorithmen zu verwenden (was nicht empfohlen wird), müssen Sie den Kompatibilitätsgrad zwischen Datenbanken auf höchsten 120 festlegen.

Keiner der Algorithmen ist für alle Situationen ideal, und Richtlinien zu den Vorteilen der einzelnen Algorithmen würden den Rahmen der SQL Server -Onlinedokumentation sprengen. Es gelten jedoch die folgenden allgemeinen Prinzipien:

  • Eine starke Verschlüsselung verbraucht im Allgemeinen mehr CPU-Ressourcen als eine schwache Verschlüsselung.

  • Lange Schlüssel führen in der Regel zu einer stärkeren Verschlüsselung als kurze Schlüssel.

  • Asymmetrischer Verschlüsselung ist langsamer als symmetrische Verschlüsselung.

  • Lange, komplexe Kennwörter sind stärker als kurze Kennwörter.

  • Die symmetrische Verschlüsselung wird generell empfohlen, wenn der Schlüssel nur lokal gespeichert wird. Die asymmetrische Verschlüsselung wird empfohlen, wenn Schlüssel über ein Netzwerk verteilt werden müssen.

  • Falls Sie viele Daten verschlüsseln, sollten Sie die Daten mithilfe eines symmetrischen Schlüssels verschlüsseln und den symmetrischen Schlüssel mit einem asymmetrischen Schlüssel verschlüsseln.

  • Verschlüsselte Daten können nicht komprimiert werden, aber komprimierte Daten können verschlüsselt werden. Falls Sie die Komprimierung verwenden, sollten Sie die Daten vor dem Verschlüsseln komprimieren.

Wichtig

Der RC4-Algorithmus wird nur aus Gründen der Abwärtskompatibilität unterstützt. Neues Material kann nur mit RC4 oder RC4_128 verschlüsselt werden, wenn die Datenbank den Kompatibilitätsgrad 90 oder 100 besitzt. (Nicht empfohlen.) Verwenden Sie stattdessen einen neueren Algorithmus, z. B. einen der AES-Algorithmen. In SQL Server 2012 (11.x) und höher kann mit RC4 oder RC4_128 verschlüsseltes Material in jedem Kompatibilitätsgrad entschlüsselt werden.

Die wiederholte Verwendung der gleichen RC4- oder RC4_128-KEY_GUID für unterschiedliche Datenblocks führt zum gleichen RC4-Schlüssel, da SQL Server nicht automatisch eine Salt bereitstellt. Die wiederholte Verwendung des gleichen RC4-Schlüssels stellt einen bekannten Fehler dar, der zu einer sehr schwachen Verschlüsselung führt. Deshalb wurden das RC4-Schlüsselwort und das RC4_128-Schlüsselwort als veraltet festgelegt. Dieses Feature wird in einer künftigen Version von Microsoft SQL Server entfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden.

Weitere Informationen zu Verschlüsselungsalgorithmen und der Verschlüsselungstechnologie finden Sie unter Key Security Concepts im .NET Framework Developer's Guide auf MSDN.

Erläuterung der DES-Algorithmen:

  • DESX wurde falsch benannt. Symmetrische Schlüssel, die mit ALGORITHM = DESX erstellt sind, verwenden eigentlich die TRIPLE DES-Chiffre mit einem 192-Bit-Schlüssel. Der DESX-Algorithmus wird nicht bereitgestellt. Dieses Feature wird in einer künftigen Version von Microsoft SQL Server entfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden.

  • Symmetrische Schlüssel, die mit ALGORITHM = TRIPLE_DES_3KEY erstellt sind, verwenden die TRIPLE DES-Chiffre mit einem 192-Bit-Schlüssel.

  • Symmetrische Schlüssel, die mit ALGORITHM = TRIPLE_DES erstellt sind, verwenden die TRIPLE DES-Chiffre mit einem 128-Bit-Schlüssel.

Aufgabe type
Verschlüsseln von Daten mit einem symmetrischen Schlüssel CREATE SYMMETRIC KEY (Transact-SQL)
Verschlüsseln von Daten mit einem asymmetrischen Schlüssel CREATE ASYMMETRIC KEY (Transact-SQL)
Verschlüsseln von Daten mit einem Zertifikat CREATE CERTIFICATE (Transact-SQL)
Verschlüsseln von Datenbankdateien mit transparenter Datenverschlüsselung Transparente Datenverschlüsselung (TDE)
So verschlüsseln sie eine Tabellenspalte Verschlüsseln einer Datenspalte

Weitere Informationen

SQL Server-Verschlüsselung
Verschlüsselungshierarchie