Die Spezifikation besteht aus einem oder mehreren Chiffre-Mnemonics, die durch einen Doppelpunkt (:) getrennt sind.
Ein Chiffre-Mnemonic kann folgende Formen annehmen:
Ein Chiffre-Mnemonic kann aus einer einzelnen Verschlüsselungs-Suite wie z.B. DHE-RSA-AES256-SHA bestehen.
Ein Chiffre-Mnemonic kann repräsentieren:
Liste von Verschlüsselungs-Suites, die einen bestimmten Algorithmus enthalten
Verschlüsselungs-Suites eines bestimmten Typs
Beispielsweise repräsentiert SHA1 alle Verschlüsselungs-Suiten, die den Digest-Algorithmus SHA1 benutzen und SSLv3 repräsentiert alle SSL-Version 3-Algorithmen.
Listen von Verschlüsselungs-Suiten können mithilfe des „+“-Zeichens zu einem einzelnen Chiffre-Mnemonic kombiniert werden. Dies wird dann als logische UND-Operation interpretiert. So repräsentiert SHA1+DES alle Verschlüsselungs-Suiten, die die SHA1- und DES-Algorithmen enthalten.
Jedem Chiffre-Mnemonic kann optional eines der Zeichen „!“, „-“ oder „+“ vorangestellt werden:
Bei Voranstellen von „!“ werden die betreffenden Verschlüsselungs-Suiten dauerhaft aus der Vorzugsliste gelöscht. Sie erscheinen auch dann nicht wieder in der Vorzugsliste, wenn sie explizit angegeben werden.
Bei Voranstellen von „-“ werden die betreffenden Verschlüsselungs-Suiten aus der Vorzugsliste gelöscht, aber einige von ihnen oder alle können durch nachfolgende Optionen wieder hinzugefügt werden.
Bei Voranstellen von „+“ werden die betreffenden Verschlüsselungs-Suiten an das Ende der Vorzugsliste verschoben. Hiermit werden keine Verschlüsselungs-Suiten zur Vorzugsliste hinzugefügt, sondern nur existierende verschoben.
Wenn keines der drei Zeichen „!“, „-“ oder „+“ vorangestellt ist, wird der Chiffre-Mnemonic als eine Liste von Verschlüsselungs-Suiten interpretiert, die an die aktuelle Vorzugsliste angehängt wird. Wenn dies eine Verschlüsselungs-Suite einschließt, die schon in der aktuellen Vorzugsliste enthalten ist, dann wird diese ignoriert, sie wird nicht an das Ende der Vorzugsliste verschoben.
Der Chiffre-Mnemonic @STRENGTH kann an beliebiger Stelle eingefügt werden, um die aktuelle Vorzugsliste nach der Länge der Verschlüsselungsschlüssel zu sortieren.
Zulässige Chiffre-Mnemonics
Nachfolgend sind die zulässigen Chiffre-Mnemonics beschrieben.
ALL
Alle Verschlüsselungs-Suiten mit Ausnahme der eNULL-Chiffren. Letztere müssen explizit aktiviert werden.
HIGH
Verschlüsselungs-Suiten mit Schlüssellängen größer 128 Bit.
MEDIUM
Verschlüsselungs-Suiten mit Schlüssellänge 128 Bit oder aus anderen Gründen heruntergestufte Verschlüsselungs-Suiten.
LOW
Verschlüsselungs-Suiten mit 64 oder 56 Bit Schlüssellänge, ausgenommen Export-Verschlüsselungs-Suiten.
EXP, EXPORT
Export-Verschlüsselungs-Algorithmen einschließlich 40- und 56-Bit-Algorithmen.
EXPORT40
40-Bit-Export-Verschlüsselungs-Algorithmen.
EXPORT56
56-Bit-Export-Verschlüsselungs-Algorithmen.
eNULL, NULL
„NULL“-Verschlüsselungs-Algorithmen, d.h. solche ohne Verschlüsselung. Da diese keine Verschlüsselung bieten und damit ein Sicherheitsrisiko sind, werden sie standardmäßig deaktiviert und müssen gegebenenfalls explizit angegeben werden.
aNULL
Verschlüsselungs-Suiten ohne Authentifizierung. Dies sind im Augenblick die anonymen Diffie-Hellman-Algorithmen. Diese Algorithmen sind anfällig für „Man-in-the-Middle“-Angriffe, so dass von ihrer Benutzung abgeraten wird.
kRSA, RSA
Verschlüsselungs-Suiten mit RSA-Schlüsselaustausch.
aRSA
Verschlüsselungs-Suiten mit RSA-Authentifizierung, d.h. die Zertifikate enthalten RSA-Schlüssel.
aDSS, DSS
Verschlüsselungs-Suiten mit DSS-Authentifizierung, d.h. die Zertifikate enthalten DSS-Schlüssel.
TLSv1.2, TLSv1.0, SSLv3
TLSv1.2, TLSv1.0 bzw. SSLv3-Verschlüsselungs-Suiten.
Hinweis: Es gibt keine TLSv1.1-spezifischen Verschlüsselungs-Suiten.
DH
Verschlüsselungs-Suiten mit Diffie-Hellman-Schlüsselaustausch, einschließlich anonymem Austausch.
ADH
Verschlüsselungs-Suiten mit anonymem Diffie-Hellman-Schlüsselaustausch.
kEDH, kDHE
Verschlüsselungs-Suiten mit kurzlebiger (ephemeral) Diffie-Hellman-Schlüsselvereinbarung, einschließlich anonymen Suiten.
kEECDH, kECDHE
Verschlüsselungs-Suiten mit kurzlebiger (ephemeral) Elliptic Curve Diffie-Hellman-Schlüsselvereinbarung, einschließlich anonymen Suiten.
EECDH, ECDHE
Verschlüsselungs-Suiten mit kurzlebiger (ephemeral) Elliptic Curve Diffie-Hellman-Schlüsselvereinbarung, ohne anonyme Suiten.
AECDH
Anonyme Verschlüsselungs-Suiten mit Elliptic Curve Diffie-Hellman-Schlüsselvereinbarung.
ECDH
Verschlüsselungs-Suiten mit Elliptic Curve Diffie-Hellman-Schlüsselvereinbarung, einschließlich anonymem, kurzlebigem und fixiertem ECDH.
aECDSA
Verschlüsselungs-Suiten, die ECDSA-Authentifizierung verwenden, d.h. die Zertifikate beinhalten ECDSA-Schlüssel.
AES128, AES256, AES
Verschlüsselungs-Suiten, die 128-Bit AES, 256-Bit AES oder eins von beiden verwenden.
AESCCM
Verschlüsselungs-Suiten, die AES im "Counter with CBC-MAC (CCM)"-Modus verwenden. Diese Verschlüsselungs-Suiten werden nur durch TLSv1.2 unterstützt.
AESGCM
Verschlüsselungs-Suiten, die AES im "Galois Counter Mode (GCM)" verwenden. Diese Verschlüsselungs-Suiten werden nur durch TLSv1.2 unterstützt.
CHACHA20
Verschlüsselungs-Suiten mit ChaCha20-Verschlüsselung.
ARIA
Verschlüsselungs-Suiten mit ARIA-Verschlüsselung.
CAMELLIA128, CAMELLIA256, CAMELLIA
Verschlüsselungs-Suiten, die 128-Bit Camellia, 256-Bit Camellia oder eins von beiden verwenden.
SEED
Verschlüsselungs-Suiten mit SEED-Verschlüsselung.
3DES
Verschlüsselungs-Suiten mit Triple-DES-Verschlüsselung.
DES
Verschlüsselungs-Suiten mit DES-Verschlüsselung (kein Triple-DES).
RC4
Verschlüsselungs-Suiten mit RC4-Verschlüsselung.
RC2
Verschlüsselungs-Suiten mit RC2-Verschlüsselung.
MD5
Verschlüsselungs-Suiten mit MD5-Hash-Funktion.
SHA1, SHA
Verschlüsselungs-Suiten mit SHA1-Hash-Funktion.
Da praktikable Angriffe auf SHA1 immer näher rücken, sollte so schnell wie möglich auf Verschlüsselungs-Suiten gewechselt werden, die z.B. die Hash-Funktionen SHA256 bzw. SHA384 verwenden. Dies impliziert aber in der Regel auch den Wechsel auf TLS-Protokollversion 1.2.
SHA256, SHA384
Verschlüsselungs-Suiten, die die SHA256- bzw. SHA384-Hash-Funktion für die MAC-(Message Authentication Code)-Berechnung verwenden. Bei Verschlüsselungs-Suiten, die AESGCM und damit AEAD (Authenticated Encryption with Associated Data) als MAC-Methode verwenden, hat das SHA256 bzw. SHA384 im Namen eine andere Bedeutung.
Die Auswahlwirkung einer Vorzugslistenspezifikation kann mit der Prozedur SHOW.CIPHERLIST (siehe "Prozedur SHOW.CIPHERLIST") überprüft werden.
In der nachfolgenden Tabelle sind die bei TLS 1.2 verfügbaren Verschlüsselungs-Suiten zusammengefasst (wobei Suiten mit den Verschlüsselungsverfahren ARIA, Camellia und SEED und Suiten ohne Authentifizierung oder ohne Verschlüsselung weggelassen wurden, da sie in der Praxis eine geringe Rolle spielen).
Name | ID | Version | Schlüssel- | Authenti- | Verschlüsselung | Digest |
ECDHE-ECDSA-AES256-GCM-SHA384 | 0xC0,0x2C | TLSv1.2 | ECDH | ECDSA | AESGCM(256) | AEAD |
ECDHE-RSA-AES256-GCM-SHA384 | 0xC0,0x30 | TLSv1.2 | ECDH | RSA | AESGCM(256) | AEAD |
DHE-DSS-AES256-GCM-SHA384 | 0x00,0xA3 | TLSv1.2 | DH | DSS | AESGCM(256) | AEAD |
DHE-RSA-AES256-GCM-SHA384 | 0x00,0x9F | TLSv1.2 | DH | RSA | AESGCM(256) | AEAD |
ECDHE-ECDSA-CHACHA20-POLY1305 | 0xCC,0xA9 | TLSv1.2 | ECDH | ECDSA | CHACHA20/ | AEAD |
ECDHE-RSA-CHACHA20-POLY1305 | 0xCC,0xA8 | TLSv1.2 | ECDH | RSA | CHACHA20/ | AEAD |
DHE-RSA-CHACHA20-POLY1305 | 0xCC,0xAA | TLSv1.2 | DH | RSA | CHACHA20/ | AEAD |
ECDHE-ECDSA-AES256-CCM8 | 0xC0,0xAF | TLSv1.2 | ECDH | ECDSA | AESCCM8(256) | AEAD |
ECDHE-ECDSA-AES256-CCM | 0xC0,0xAD | TLSv1.2 | ECDH | ECDSA | AESCCM(256) | AEAD |
DHE-RSA-AES256-CCM8 | 0xC0,0xA3 | TLSv1.2 | DH | RSA | AESCCM8(256) | AEAD |
DHE-RSA-AES256-CCM | 0xC0,0x9F | TLSv1.2 | DH | RSA | AESCCM(256) | AEAD |
ECDHE-ECDSA-AES128-GCM-SHA256 | 0xC0,0x2B | TLSv1.2 | ECDH | ECDSA | AESGCM(128) | AEAD |
ECDHE-RSA-AES128-GCM-SHA256 | 0xC0,0x2F | TLSv1.2 | ECDH | RSA | AESGCM(128) | AEAD |
DHE-DSS-AES128-GCM-SHA256 | 0x00,0xA2 | TLSv1.2 | DH | DSS | AESGCM(128) | AEAD |
DHE-RSA-AES128-GCM-SHA256 | 0x00,0x9E | TLSv1.2 | DH | RSA | AESGCM(128) | AEAD |
ECDHE-ECDSA-AES128-CCM8 | 0xC0,0xAE | TLSv1.2 | ECDH | ECDSA | AESCCM8(128) | AEAD |
ECDHE-ECDSA-AES128-CCM | 0xC0,0xAC | TLSv1.2 | ECDH | ECDSA | AESCCM(128) | AEAD |
DHE-RSA-AES128-CCM8 | 0xC0,0xA2 | TLSv1.2 | DH | RSA | AESCCM8(128) | AEAD |
DHE-RSA-AES128-CCM | 0xC0,0x9E | TLSv1.2 | DH | RSA | AESCCM(128) | AEAD |
ECDHE-ECDSA-AES256-SHA384 | 0xC0,0x24 | TLSv1.2 | ECDH | ECDSA | AES(256) | SHA384 |
ECDHE-RSA-AES256-SHA384 | 0xC0,0x28 | TLSv1.2 | ECDH | RSA | AES(256) | SHA384 |
DHE-RSA-AES256-SHA256 | 0x00,0x6B | TLSv1.2 | DH | RSA | AES(256) | SHA256 |
DHE-DSS-AES256-SHA256 | 0x00,0x6A | TLSv1.2 | DH | DSS | AES(256) | SHA256 |
ECDHE-ECDSA-AES128-SHA256 | 0xC0,0x23 | TLSv1.2 | ECDH | ECDSA | AES(128) | SHA256 |
ECDHE-RSA-AES128-SHA256 | 0xC0,0x27 | TLSv1.2 | ECDH | RSA | AES(128) | SHA256 |
DHE-RSA-AES128-SHA256 | 0x00,0x67 | TLSv1.2 | DH | RSA | AES(128) | SHA256 |
DHE-DSS-AES128-SHA256 | 0x00,0x40 | TLSv1.2 | DH | DSS | AES(128) | SHA256 |
ECDHE-ECDSA-AES256-SHA | 0xC0,0x0A | TLSv1 | ECDH | ECDSA | AES(256) | SHA1 |
ECDHE-RSA-AES256-SHA | 0xC0,0x14 | TLSv1 | ECDH | RSA | AES(256) | SHA1 |
DHE-RSA-AES256-SHA | 0x00,0x39 | SSLv3 | DH | RSA | AES(256) | SHA1 |
DHE-DSS-AES256-SHA | 0x00,0x38 | SSLv3 | DH | DSS | AES(256) | SHA1 |
ECDHE-ECDSA-AES128-SHA | 0xC0,0x09 | TLSv1 | ECDH | ECDSA | AES(128) | SHA1 |
ECDHE-RSA-AES128-SHA | 0xC0,0x13 | TLSv1 | ECDH | RSA | AES(128) | SHA1 |
DHE-RSA-AES128-SHA | 0x00,0x33 | SSLv3 | DH | RSA | AES(128) | SHA1 |
DHE-DSS-AES128-SHA | 0x00,0x32 | SSLv3 | DH | DSS | AES(128) | SHA1 |
AES256-GCM-SHA384 | 0x00,0x9D | TLSv1.2 | RSA | RSA | AESGCM(256) | AEAD |
AES256-CCM8 | 0xC0,0xA1 | TLSv1.2 | RSA | RSA | AESCCM8(256) | AEAD |
AES256-CCM | 0xC0,0x9D | TLSv1.2 | RSA | RSA | AESCCM(256) | AEAD |
AES128-GCM-SHA256 | 0x00,0x9C | TLSv1.2 | RSA | RSA | AESGCM(128) | AEAD |
AES128-CCM8 | 0xC0,0xA0 | TLSv1.2 | RSA | RSA | AESCCM8(128) | AEAD |
AES128-CCM | 0xC0,0x9C | TLSv1.2 | RSA | RSA | AESCCM(128) | AEAD |
AES256-SHA256 | 0x00,0x3D | TLSv1.2 | RSA | RSA | AES(256) | SHA256 |
AES128-SHA256 | 0x00,0x3C | TLSv1.2 | RSA | RSA | AES(128) | SHA256 |
AES256-SHA | 0x00,0x35 | SSLv3 | RSA | RSA | AES(256) | SHA1 |
AES128-SHA | 0x00,0x2F | SSLv3 | RSA | RSA | AES(128) | SHA1 |