Auswählen eines Verschlüsselungsalgorithmus

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

Verschlüsselungsalgorithmen definieren Datentransformationen, die von nicht autorisierten Benutzern nicht einfach 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.

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.

  • Eine asymmetrische Verschlüsselung ist schwächer als eine symmetrische Verschlüsselung, wenn beide die gleiche Schlüssellänge verwenden. Dabei ist eine asymmetrische Verschlüsselung relativ langsam.

  • Blockchiffren mit langen Schlüsseln sind stärker als Datenstromchiffren.

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

  • 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.

Wichtiger HinweisWichtig

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 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. Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie so bald wie möglich das Ändern von Anwendungen, in denen es zurzeit verwendet wird.

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

Klarstellung hinsichtlich der DES-Algorithmen:

  • DESX wurde falsch benannt. Symmetrische Schlüssel, die mit ALGORITHM = DESX erstellt sind, verwenden eigentlich die TRIPLE DES-Verschlüsselung mit einem 192-Bit-Schlüssel. Der DESX-Algorithmus wird nicht bereitgestellt. Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.

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

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

Verwandte Tasks

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

Siehe auch

Konzepte

SQL Server-Verschlüsselung

Verschlüsselungshierarchie