Ciphersuites sind essenzielle Bestandteile moderner Kryptografie und spielen eine zentrale Rolle bei der Sicherstellung sicherer Kommunikationskanäle im Internet. Sie definieren die Kombination von Algorithmen, die verwendet werden, um die Vertraulichkeit, Integrität und Authentizität von Daten während der Übertragung zu gewährleisten. Dieser Beitrag beleuchtet die grundlegende Bedeutung von Ciphersuites, ihren Aufbau und die Bedeutung der einzelnen Komponenten.
Bedeutung von Ciphersuites
Ciphersuites legen fest, welche kryptografischen Algorithmen für die folgenden Zwecke verwendet werden:
- Verschlüsselung (Encryption): Schutz der Vertraulichkeit der übertragenen Daten.
- Schlüsselvereinbarung (Key Exchange): Sicherer Austausch von Schlüsseln zwischen den Kommunikationspartnern.
- Authentifizierung (Authentication): Überprüfung der Identität der Kommunikationspartner.
- Integrität (Integrity): Sicherstellung, dass die Daten während der Übertragung nicht verändert wurden.
Aufbau und Syntax von Ciphersuites
Die Syntax einer Ciphersuite folgt einem standardisierten Format, das von der IANA (Internet Assigned Numbers Authority) definiert wird. Eine typische Ciphersuite hat das folgende Format:
TLS_<Schlüsselaustauschalgorithmus>_WITH_<Verschlüsselungsalgorithmus>_<MAC-Algorithmus>Komponenten einer Ciphersuite
- Schlüsselaustauschalgorithmus (Key Exchange Algorithm):
- Verantwortlich für den sicheren Austausch der kryptografischen Schlüssel zwischen den Kommunikationspartnern.
- Beispiele:
RSA,DH,DHE,ECDH,ECDHE.
- Verschlüsselungsalgorithmus (Encryption Algorithm):
- Definiert den symmetrischen Verschlüsselungsalgorithmus, der zur Sicherung der Datenübertragung verwendet wird.
- Beispiele:
AES,CHACHA20,CAMELLIA.
- MAC-Algorithmus (Message Authentication Code Algorithm):
- Sorgt für die Integrität und Authentizität der Nachrichten, indem ein kryptografischer Hash verwendet wird.
- Beispiele:
SHA256,SHA384,POLY1305.
Beispiele für Ciphersuites
Hier sind einige Beispiele für Ciphersuites nach IANA-Konventionen:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256- Schlüsselaustausch: ECDHE (Elliptic Curve Diffie-Hellman Ephemeral)
- Authentifizierung: RSA
- Verschlüsselung: AES (Advanced Encryption Standard) mit 128-Bit-Schlüssellänge im GCM-Modus (Galois/Counter Mode)
- MAC: SHA256 (Secure Hash Algorithm 256)
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256- Schlüsselaustausch: DHE (Diffie-Hellman Ephemeral)
- Authentifizierung: RSA
- Verschlüsselung: CHACHA20
- MAC: POLY1305 mit SHA256
TLS_RSA_WITH_AES_256_CBC_SHA- Schlüsselaustausch: RSA
- Verschlüsselung: AES mit 256-Bit-Schlüssellänge im CBC-Modus (Cipher Block Chaining)
- MAC: SHA (Secure Hash Algorithm)
Bedeutung der einzelnen Komponenten
- ECDHE/DHE (Elliptic Curve Diffie-Hellman Ephemeral/Diffie-Hellman Ephemeral):
- Diese Algorithmen bieten Perfect Forward Secrecy (PFS), was bedeutet, dass der Verlust eines einzelnen Schlüssels nicht die Sicherheit vergangener Sitzungen beeinträchtigt.
- RSA (Rivest-Shamir-Adleman):
- Ein weit verbreiteter Algorithmus für die Authentifizierung und den Schlüsselaustausch, der auf der Schwierigkeit basiert, große Zahlen in ihre Primfaktoren zu zerlegen.
- AES (Advanced Encryption Standard):
- Ein symmetrischer Verschlüsselungsstandard, der sowohl in 128-Bit als auch 256-Bit Schlüssellängen verfügbar ist. Der GCM-Modus bietet sowohl Verschlüsselung als auch Integritätsschutz.
- CHACHA20:
- Ein Hochgeschwindigkeits-Stream-Cipher, der oft als Alternative zu AES verwendet wird, insbesondere in mobilen und ressourcenbeschränkten Umgebungen.
- SHA (Secure Hash Algorithm):
- Ein Satz kryptografischer Hash-Funktionen, die zur Berechnung von MACs verwendet werden. SHA256 und SHA384 bieten unterschiedliche Sicherheitsstufen basierend auf ihrer Hash-Länge.
- POLY1305:
- Ein Algorithmus zur Erzeugung eines Authentifizierungscodes, der zusammen mit dem CHACHA20-Verschlüsselungsalgorithmus verwendet wird, um eine hohe Performance und Sicherheit zu gewährleisten.
Eingesetzte Ciphersuites
Sämtliche Services im CenturionNet werden grundsätzlich mit den stärksten Ciphersuites verfügbar abgesichert. Dabei werden, bis auf wenige Ausnahmen, keinerlei Kompromisse eingegangen, um Rückwärtkompatibilität zu gewährleisten. Ausschließliche TLS-Protokollversionen sind TLS-1.2 und TLS-1.3.
Bei den meisten Serivces im CenturionNet werden einzig die folgenden vier Ciphers eingesetzt:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256Bei den in eigener Autorität betriebenen Mailservern wird folgendes Set an Ciphers angeboten:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256Die reduntanten DNS-Server nutzen im DNS-over-HTTPS Modus das erstgenannte Set an Ciphers:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256Abweichend davon erfolgt die Auslieferung mittels DNS-over-TLS, je nach Konfiguration des Clients mit einer der folgenden Ciphers:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256