Cipher
Cipher bezeichnet ein Verschlüsselungsverfahren — die Vorschrift, nach der aus Klartext mit einem Schlüssel ein Geheimtext wird und umgekehrt. Im Deutschen entspricht ihm das Wort Chiffre.
Im Netzwerkumfeld begegnet der Begriff meist nicht allein, sondern als Bestandteil der Zeichenketten, die TLS-Verbindungen beschreiben. Deshalb lohnt es sich, beide Ebenen auseinanderzuhalten: das einzelne Verfahren und die Zusammenstellung, in der es verwendet wird.
Arten von Ciphers
Die erste Unterscheidung betrifft den Schlüssel:
Symmetrisch — beide Seiten verwenden denselben Schlüssel. Diese Verfahren sind schnell und übernehmen die eigentliche Datenverschlüsselung. AES und ChaCha20 sind die heute gebräuchlichen.
Asymmetrisch — ein öffentlicher und ein privater Schlüssel gehören zusammen. Diese Verfahren sind erheblich langsamer und werden deshalb nicht für Nutzdaten verwendet, sondern für den Schlüsselaustausch und für Signaturen. RSA und die Verfahren auf elliptischen Kurven gehören hierher.
Die zweite Unterscheidung betrifft die Arbeitsweise der symmetrischen Verfahren:
| Blockchiffre | Stromchiffre | |
|---|---|---|
| Arbeitet auf | Blöcken fester Größe, bei AES 128 Bit | einzelnen Bits oder Bytes |
| Braucht | eine Betriebsart und meist Auffüllung | keine Blockaufteilung |
| Beispiele | AES, 3DES, Blowfish | ChaCha20, RC4 (veraltet) |
Eine Blockchiffre allein genügt nicht — sie verschlüsselt genau einen Block. Wie aus ihr ein Verfahren für beliebig lange Daten wird, legt die Betriebsart fest: CBC, CTR, GCM und weitere. Die Wahl der Betriebsart entscheidet dabei mindestens so viel über die Sicherheit wie die Chiffre selbst. Die Betriebsart ECB etwa verschlüsselt jeden Block gleich und lässt dadurch Muster der Daten im Geheimtext erkennbar.
Cipher Suites: wie der Begriff in TLS auftaucht
Eine Cipher Suite ist die Zusammenstellung der Verfahren, auf die sich zwei Seiten beim Verbindungsaufbau einigen. In TLS 1.2 benennt sie vier Dinge auf einmal:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
│ │ │ │ │
│ │ │ │ └── Hashfunktion
│ │ │ └──────── Betriebsart
│ │ └──────────────── symmetrische Chiffre
│ └───────────────────────── Signatur zur Authentifizierung
└─────────────────────────────── SchlüsselaustauschIn TLS 1.3 wurde das aufgeräumt: Die Suite benennt nur noch Chiffre und Hashfunktion, während Schlüsselaustausch und Signatur getrennt ausgehandelt werden. Die Namen sind entsprechend kurz, etwa TLS_AES_128_GCM_SHA256. Außerdem wurde die Liste der zulässigen Verfahren drastisch gekürzt — alles, was als angreifbar galt, fiel heraus.
Für den Betrieb heißt das: Die Reihenfolge der angebotenen Suites entscheidet darüber, was tatsächlich verwendet wird. Ein Server, der aus Rücksicht auf alte Clients schwache Verfahren weiter anbietet, wird genau damit angegriffen — eine Verbindung ist nur so gut wie das schwächste Verfahren, auf das sie sich herabhandeln lässt. Die Empfehlungen des BSI und die Prüfwerkzeuge für TLS-Konfigurationen setzen an dieser Stelle an.
Worauf bei der Auswahl zu achten ist
Verfahren mit Authentifizierung bevorzugen. GCM und ChaCha20-Poly1305 verschlüsseln und sichern die Unversehrtheit in einem Schritt. Ältere Kombinationen aus Verschlüsselung und getrennter Prüfsumme waren wiederholt Ziel erfolgreicher Angriffe.
Forward Secrecy verlangen. Nur Suiten mit kurzlebigem Schlüsselaustausch — erkennbar an ECDHE oder DHE — schützen vergangene Verbindungen, wenn der Serverschlüssel später bekannt wird.
Überholtes abschalten. RC4, 3DES, Verfahren mit MD5 oder SHA-1 und alles, was ohne Authentifizierung auskommt, gehören nicht mehr in eine Konfiguration.
Das Wort allein sagt wenig. „AES-verschlüsselt" ohne Angabe von Schlüssellänge und Betriebsart ist keine Aussage über Sicherheit. Dieselbe Chiffre kann in einer Umsetzung tauglich und in einer anderen wertlos sein.
Abgrenzung
Chiffre ist das deutsche Wort für dasselbe.
Code bezeichnet in der Kryptografie die Ersetzung ganzer Wörter oder Wendungen nach einem Buch, nicht die Umrechnung einzelner Zeichen. Umgangssprachlich wird beides vermischt.
Hashfunktion bildet Daten auf einen Prüfwert ab und ist nicht umkehrbar. Sie verschlüsselt nicht.
Cipher Suite ist die Zusammenstellung mehrerer Verfahren, nicht ein einzelnes.
Kodierung wie Base64 macht Daten übertragbar, nicht geheim — eine Verwechslung, die in Fehlerberichten häufig vorkommt.
Quellen
- NIST FIPS 197: Advanced Encryption Standard (AES)
- NIST SP 800-38A und SP 800-38D: Betriebsarten für Blockchiffren
- BSI TR-02102-2: Kryptographische Verfahren — Verwendung von TLS