Transport Layer Security (TLS) – Protokoll für sichere verschlüsselte TCP/IP‑Kommunikation
Übersicht zu Transport Layer Security (TLS): Funktionsweise, Handshake, Cipher Suites, X.509‑Zertifikate, Forward Secrecy und Versionsempfehlungen (TLS 1.2/1.3) für sichere verschlüsselte TCP/IP‑Kommunikation
Das Transport Layer Security (TLS)‑Protokoll und sein Vorgänger, Secure Sockets Layer (SSL), sind kryptographische Protokolle, die Sicherheit und Datenintegrität für die Kommunikation über TCP/IP‑Netzwerke wie das Internet bereitstellen. TLS wird in vielen Anwendungen eingesetzt, unter anderem beim Web‑Browsing, in der elektronischen Post, beim Internet‑Fax, bei Instant Messaging und bei Voice-over-IP (VoIP).
Bildergalerie
1 BildÜberblick und Funktion
TLS stellt einen verschlüsselten Kanal zwischen zwei Endpunkten her und gliedert sich konzeptionell in mehrere Schichten:
- Record‑Protokoll: Zerlegt Anwendungsdaten in Frames, optional mit Kompression, Verschlüsselung und Integritätsprüfungen.
- Handshake‑Protokoll: Aushandlung von Version, Cipher Suite und Schlüsselaustausch; Authentifizierung der Gegenstelle mittels Zertifikaten.
- Alert‑Protokoll: Übermittelt Fehler- und Warnmeldungen zwischen den Endpunkten.
Wichtige Begriffe
- Cipher Suite: Kombination aus Verschlüsselungsalgorithmus, Schlüsselaustauschverfahren und Hash/MAC‑Funktion.
- Forward Secrecy: Eigenschaft, dass frühere Sitzungen nicht nachträglich entschlüsselt werden können, selbst wenn langfristige Schlüssel kompromittiert werden.
- X.509‑Zertifikate: Struktur zur Bindung eines öffentlichen Schlüssels an eine Identität, ausgestellt von einer Zertifizierungsstelle (CA).
- Perfect Forward Secrecy (PFS): üblicherweise durch temporäre Schlüssel (z. B. ECDHE) realisiert.
Handshake — Ablauf vereinfacht
Der TLS‑Handshake etabliert die Parameter einer sicheren Verbindung. Typische Schritte sind:
- ClientHello: Client schlägt TLS‑Version und Cipher Suites vor; sendet Zufallsdaten.
- ServerHello: Server wählt Version und Suite; sendet eigenes Zufallsmaterial.
- Server‑Zertifikat: Server übermittelt sein X.509‑Zertifikat zur Authentifizierung.
- Schlüsselaustausch: Durchführung von (E)DH/(E)CDH oder RSA‑basiertem Austausch, häufig mit Ephemeral‑Schlüsseln für PFS.
- Schlussnachrichten: Beide Seiten bestätigen per MAC/HMAC, dass Handshake und Schlüsselvereinbarung erfolgreich waren.
Versionen und Empfehlungen
- TLS 1.0 / 1.1: Veraltet; sollten in modernen Umgebungen deaktiviert werden.
- TLS 1.2: Langjähriger Standard mit Unterstützung für AEAD‑Cipher (z. B. AES‑GCM) und ECDHE; weiterhin weit verbreitet.
- TLS 1.3: Vereinfacht den Handshake, verbessert Privacy und Performance (weniger Round‑Trips), schließt unsichere Algorithmen aus.
Empfehlung: Server und Clients sollten TLS 1.2 (mit sicheren Cipher Suites) und TLS 1.3 unterstützen und alte Versionen deaktivieren.
Sicherheitsaspekte und bekannte Schwachstellen
TLS hat sich über Jahre weiterentwickelt, weil praktische Angriffe und Implementierungsfehler Probleme offenbarten. Beispiele und Gegenmaßnahmen:
- Protokollangriffe wie BEAST oder POODLE — meist durch Abschalten veralteter Versionen und unsicherer Cipher mitigierbar.
- Implementierungsfehler und Bibliothekslücken (z. B. Heartbleed) — regelmäßige Updates und Code‑Audits erforderlich.
- Fehlerhafte Zertifikatsprüfung — strikte Verifikation, OCSP/OCSP‑Stapling und Automatisierung der Zertifikatverwaltung empfohlen.
- 0‑RTT in TLS 1.3 bietet Performancevorteile, birgt aber Wiederholungsangriffsrisiken und erfordert sorgfältige Einsatzregeln.
Einsatzgebiete und Praxis
TLS wird in sehr vielen Protokollen und Diensten genutzt. Typische Einsatzfelder:
- HTTPS für sichere Webseiten
- S/MIME und STARTTLS für E‑Mail‑Sicherheit
- TLS über SIP/VoIP‑Stack für Sprachübertragung
- VPNs, Messaging‑Dienste und API‑Kommunikation
Bereitstellung und Best Practices
- Aktuelle TLS‑Versionen (1.2/1.3) konfigurieren; veraltete Versionen deaktivieren.
- Sichere Cipher Suites bevorzugen: ECDHE‑basierte Austausche und AEAD‑Algorithmen (z. B. AES‑GCM, ChaCha20‑Poly1305).
- Zertifikatsverwaltung automatisieren (z. B. durch ACME‑Clients wie Let’s Encrypt) und OCSP‑Stapling aktivieren.
- Session‑Resumption (Session Tickets) und TLS‑1.3 Features nutzen, um Latenz zu reduzieren.
- Regelmäßige Sicherheitsprüfungen, Härtung von Cipher‑Listen und Monitoring auf missbräuchliche Zertifikate.
Zukunft und verwandte Entwicklungen
Protokolle wie QUIC integrieren TLS‑ähnliche Mechanismen direkt in neue Transportprotokolle und bringen zusätzliche Performance‑ und Multiplexingvorteile. Forschung und Standardisierung konzentrieren sich auf:
- Verbesserte Privatsphäre und geringere Latenz
- Bessere Automatisierung der Schlüssel- und Zertifikatsverwaltung
- Robustheit gegenüber neuen Angriffsformen und bessere Berechenbarkeit von Implementierungen
Zusammenfassung
TLS ist das zentrale Protokoll zur Absicherung von Daten‑ und Kommunikationskanälen im Internet. Seine Sicherheit hängt neben dem Protokolldesign auch stark von korrekter Implementierung, aktueller Konfiguration und verantwortungsbewusster Zertifikatsverwaltung ab. Durch die Nutzung moderner Versionen (vor allem TLS 1.3) und sicherer Cipher‑Kombinationen lassen sich Vertraulichkeit, Integrität und Authentizität in vielen Anwendungen zuverlässig gewährleisten.
Beschreibung
Das TLS-Protokoll ermöglicht es Anwendungen, über ein Netzwerk so zu kommunizieren, dass Abhören, Manipulation und Nachrichtenfälschung verhindert werden. TLS bietet Endpunkt-Authentifizierung und Vertraulichkeit der Kommunikation über das Internet durch Kryptographie. Meistens wird nur der Server authentifiziert (d.h. seine Identität wird sichergestellt), während der Client nicht authentifiziert bleibt; dies bedeutet, dass der Endbenutzer (sei es eine Einzelperson oder eine Anwendung, wie z.B. ein Webbrowser) sicher sein kann, mit wem er kommuniziert. Die nächste Sicherheitsstufe ist die so genannte gegenseitige Authentisierung. Gegenseitige Authentifizierung erfordert die Bereitstellung einer Infrastruktur mit öffentlichem Schlüssel (Public Key Infrastructure, PKI) für Clients, es sei denn, es werden TLS-PSK oder das Secure Remote Password (SRP)-Protokoll verwendet, die eine starke gegenseitige Authentifizierung bieten, ohne dass eine PKI bereitgestellt werden muss.
Verwendung
SSL und TLS wurden in mehreren Open-Source-Software-Projekten umfassend eingesetzt. Programmierer können die OpenSSL-, NSS- oder GnuTLS-Bibliotheken für die SSL/TLS-Funktionalität verwenden. Microsoft Windows schließt die Verwendung von SSL und TLS als Teil seines Secure Channel-Pakets ein. Delphi-Programmierer können eine Bibliothek namens Indy verwenden.
Normen
Die derzeit genehmigte Version ist 1.2, die in:
- RFC 5246: "Das Transport Layer Security (TLS) Protokoll Version 1.2".
Der aktuelle Standard veraltet diese früheren Versionen:
- RFC 2246: "Das TLS-Protokoll Version 1.0".
- RFC 4346: "Das Transport Layer Security (TLS) Protokoll Version 1.1".
Andere RFCs erweiterten später TLS, darunter
- RFC 2595: "Verwendung von TLS mit IMAP, POP3 und ACAP". Gibt eine Erweiterung der IMAP-, POP3- und ACAP-Dienste an, die es dem Server und dem Client ermöglicht, die Sicherheit der Transportschicht zu nutzen, um private, authentifizierte Kommunikation über das Internet bereitzustellen.
- RFC 2712: "Hinzufügung von Kerberos-Verschlüsselungssuiten zur Sicherheit der Transportschicht (TLS)". Die in diesem Memo definierten 40-Bit-Chiffrensuiten erscheinen nur zu dem Zweck, die Tatsache zu dokumentieren, dass diese Chiffrensuite-Codes bereits zugewiesen wurden.
- RFC 2817: "Upgrading to TLS Within HTTP/1.1", erklärt, wie der Upgrade-Mechanismus in HTTP/1.1 verwendet wird, um Transport Layer Security (TLS) über eine bestehende TCP-Verbindung zu initiieren. Dadurch kann ungesicherter und gesicherter HTTP-Verkehr den gleichen bekannten Port benutzen (in diesem Fall http: bei 80 statt https: bei 443).
- RFC 2818: "HTTP Over TLS", unterscheidet zwischen gesichertem und ungesichertem Datenverkehr durch die Verwendung eines anderen "Server-Ports".
- RFC 3207: "SMTP Service Extension for Secure SMTP over Transport Layer Security". Gibt eine Erweiterung des SMTP-Dienstes an, die es einem SMTP-Server und -Client ermöglicht, die Sicherheit der Transportschicht zu nutzen, um private, authentifizierte Kommunikation über das Internet bereitzustellen.
- RFC 3268: "AES-Chiffrierverfahren für TLS". Fügt Advanced Encryption Standard (AES)-Chiffrierkombinationen zu den bisher existierenden symmetrischen Chiffren hinzu.
- RFC 3546: "Transport Layer Security (TLS) Extensions", fügt einen Mechanismus zum Aushandeln von Protokoll-Erweiterungen während der Sitzungsinitialisierung hinzu und definiert einige Erweiterungen. Durch RFC 4366 obsolet geworden.
- RFC 3749: "Transport Layer Security Protocol Compression Methods", spezifiziert den Rahmen für Kompressionsverfahren und das Kompressionsverfahren DEFLATE.
- RFC 3943: "Komprimierung des Transport Layer Security (TLS)-Protokolls mit Lempel-Ziv-Stac (LZS)".
- RFC 4132: "Hinzufügen von Camellia Cipher Suites zur Transport Layer Security (TLS)".
- RFC 4162: "Hinzufügung von SEED-Verschlüsselungs-Suiten zur Transportschicht-Sicherheit (TLS)".
- RFC 4217: "Sichern von FTP mit TLS".
- RFC 4279: "Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)", fügt drei Sätze neuer Verschlüsselungssuiten für das TLS-Protokoll hinzu, um die Authentifizierung auf der Grundlage von Pre-Shared Keys zu unterstützen.
- RFC 4347: "Datagram Transport Layer Security" spezifiziert eine TLS-Variante, die über Datagramm-Protokolle (wie z.B. UDP) arbeitet.
- RFC 4366: "Transport Layer Security (TLS) Extensions" beschreibt sowohl einen Satz spezifischer Erweiterungen als auch einen generischen Erweiterungsmechanismus.
- RFC 4492: "Elliptische-Kurven-Kryptographie (ECC) Verschlüsselungs-Suiten für Transport Layer Security (TLS)".
- RFC 4507: "Transport Layer Security (TLS) Session Resumption Resumption without Server-Side State".
- RFC 4680: "TLS Handshake-Nachricht für ergänzende Daten".
- RFC 4681: "TLS User Mapping Erweiterung".
- RFC 4785: "PSK-Verschlüsselungen (Pre-Shared Key) mit NULL-Verschlüsselung für Transport Layer Security (TLS)".
Verwandte Seiten
- Zertifizierungsstelle
- Zertifikat für öffentliche Schlüssel
- Extended Validation-Zertifikat
- SSL-Beschleunigung
- Sicherheit der Datagramm-Transportschicht
- Sicherheit der Multiplex-Transportschicht
- X.509
- Virtuelles privates Netzwerk
- SEED
- Server-gated-Kryptographie
Software
- OpenSSL: eine freie (und sehr beliebte) Implementierung (BSD-Lizenz mit einigen scherzhaften Erweiterungen)
- GnuTLS: eine freie LGPL-lizenzierte Implementierung
- JSSE: eine Java-Implementierung, die in der Java-Laufzeitumgebung enthalten ist
- Netzsicherheitsdienste (NSS): FIPS 140-validierte Open-Source-Bibliothek
Verwandte Artikel
Autor
AlegsaOnline.com Transport Layer Security (TLS) – Protokoll für sichere verschlüsselte TCP/IP‑Kommunikation Leandro Alegsa
URL: https://de.alegsaonline.com/art/101196
Quellen
- schneier.com : Analysis of the SSL 3.0 Protocol
- citeseer.ist.psu.edu : "A Challenging But Feasible Blockwise-Adaptive Chosen-Plaintext Attack On Ssl"
- lasecwww.epfl.ch : "Password Interception in a SSL/TLS Channel"