Freigeben über


Auswählen eines Verschlüsselungsalgorithmus

Verschlüsselung ist eine von mehreren Verteidigungsmechanismen, die dem Administrator zur Verfügung stehen, der eine Instanz von SQL Server sichern möchte.

Verschlüsselungsalgorithmen definieren Datentransformationen, die nicht einfach von nicht autorisierten Benutzern rückgängig gemacht werden können. SQL Server ermöglicht Administratoren und Entwicklern die Auswahl zwischen mehreren Algorithmen, darunter DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128-Bit RC4, DESX, 128-Bit AES, 192-Bit-AES und 256-Bit-AES.

Kein einzelner Algorithmus ist ideal für alle Situationen, und eine Anleitung zu den Vor- und Nachteilen jedes einzelnen geht über den Umfang von SQL Server Books Online hinaus. Die folgenden allgemeinen Grundsätze gelten jedoch:

  • Starke Verschlüsselung verbraucht in der Regel mehr CPU-Ressourcen als schwache Verschlüsselung.

  • Lange Schlüssel liefern in der Regel eine stärkere Verschlüsselung als kurze Schlüssel.

  • Die asymmetrische Verschlüsselung ist schwächer als die symmetrische Verschlüsselung mit derselben Schlüssellänge, ist aber relativ langsam.

  • Blockchiffre mit langen Schlüsseln sind stärker als Streamchiffre.

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

  • Wenn Sie viele Daten verschlüsseln, sollten Sie die Daten mit einem symmetrischen Schlüssel 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. Wenn Sie komprimieren, sollten Sie Daten komprimieren, bevor Sie sie verschlüsseln.

Von Bedeutung

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 und höher mit RC4 oder RC4_128 verschlüsseltes Material kann in jeder Kompatibilitätsstufe entschlüsselt werden.

Die wiederholte Verwendung desselben RC4- oder RC4_128-KEY_GUID auf verschiedenen Datenblöcken führt zum gleichen RC4-Verschlüsselungsschlüssel, da SQL Server kein Salt automatisch liefert. Bei der wiederholten Verwendung desselben RC4-Schlüssels handelt es sich um einen bekannten Fehler, der zu einer sehr schwachen Verschlüsselung führt. Daher haben wir die Schlüsselwörter RC4 und RC4_128 nicht mehr unterstützt. Dieses Feature wird in einer zukünftigen Version von Microsoft SQL Server entfernt. Verwenden Sie dieses Feature nicht in neuer Entwicklungsarbeit, und ändern Sie Anwendungen, die dieses Feature derzeit so schnell wie möglich verwenden.

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

Klarstellung in Bezug auf DES-Algorithmen:

  • DESX wurde falsch benannt. Symmetrische Schlüssel, die mit ALGORITHM = DESX erstellt wurden, verwenden tatsächlich die TRIPLE DES-Chiffre mit einem 192-Bit-Schlüssel. Der DESX-Algorithmus wird nicht bereitgestellt. Dieses Feature wird in einer zukünftigen Version von Microsoft SQL Server entfernt. Vermeiden Sie die Verwendung dieses Features in neuer Entwicklungsarbeit, und planen Sie, Anwendungen zu ändern, die derzeit dieses Feature verwenden.

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

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

Verschlüsseln mithilfe eines symmetrischen Schlüssels. CREATE SYMMETRIC KEY (Transact-SQL)
Verschlüsseln mithilfe eines asymmetrischen Schlüssels. ERSTELLE ASYMMETRISCHEN SCHLÜSSEL (Transact-SQL)
Verschlüsseln mithilfe eines Zertifikats. ZERTIFIKAT ERSTELLEN (Transact-SQL)
Verschlüsseln von Datenbankdateien mit transparenter Datenverschlüsselung. Transparente Datenverschlüsselung (TDE)
So verschlüsseln Sie eine Spalte einer Tabelle. Verschlüsseln einer Datenspalte

Siehe auch

SQL Server-Verschlüsselung
Verschlüsselungshierarchie