Transport Layer Security (TLS) ist ein kryptografisches Protokoll, das Daten zwischen Anwendungen im Netz verschlüsselt und authentifiziert – am sichtbarsten zwischen Browsern und Websites per HTTPS.
Wie TLS funktioniert
TLS ist der Nachfolger des SSL-Protokolls von Netscape; TLS 1.0 erschien 1999, TLS 1.2 im Jahr 2008 (RFC 5246) und TLS 1.3 im Jahr 2018 (RFC 8446). Alle SSL-Versionen sowie TLS 1.0/1.1 gelten als veraltet (RFC 8996). Eine Verbindung beginnt mit einem Handshake:
- Client und Server einigen sich auf Protokollversion und Cipher Suite;
- der Server weist seine Identität mit einem digitalen Zertifikat nach, das der Client prüft;
- beide Seiten leiten Sitzungsschlüssel ab, in TLS 1.3 stets per ephemerem Diffie-Hellman, das Forward Secrecy bietet;
- anschließend werden die Anwendungsdaten mit authentifizierten Chiffren wie AES-GCM oder ChaCha20-Poly1305 verschlüsselt und gegen Manipulation geschützt.
TLS 1.3 hat veraltete Algorithmen gestrichen und den Handshake auf einen einzigen Roundtrip verkürzt.
Warum TLS wichtig ist
TLS sichert HTTPS, den E-Mail-Transport (SMTP, IMAP), VPNs, APIs und unzählige Anwendungen gegen Abhören und Manipulation. Seine Geschichte zeigt die Hauptrisiken:
- Implementierungsfehler – Heartbleed (CVE-2014-0160) in OpenSSL legte 2014 Serverspeicher samt privater Schlüssel offen.
- Protokollschwächen – BEAST (2011) und POODLE (2014) griffen ältere Versionen an; FREAK und Logjam (2015) waren Downgrade-Angriffe auf schwache Kryptografie in Export-Qualität.
- Missbrauch durch Angreifer – auch die meisten Malware- und Phishing-Seiten nutzen inzwischen TLS; Verteidiger setzen daher auf TLS-Inspektion und Fingerprinting-Verfahren wie JA3/JA4, um bösartige Verbindungen zu erkennen.
Best Practices
- Nur TLS 1.2 und 1.3 zulassen und veraltete Cipher Suites deaktivieren.
- Die Zertifikatserneuerung automatisieren und private Schlüssel schützen.
- Zertifikate in Anwendungen korrekt validieren – die Prüfung niemals im Code abschalten.
- Konfigurationen regelmäßig mit Werkzeugen wie SSL Labs oder testssl.sh testen.