TLS und SSL Flashcards
Transport Layer Security (TSL)
- Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet
- erweitert TCP um Payload (Sicherheit für application layer payload)
- zuvor bekannt als Secure Socket Layer (SSL)
- in Verbindung mit HTTP –> HTTPS
TLS Security
- Message Integrität durch Keyed-Hash Message Authentication
- Message Vertraulichkeit durch symmetrische Verschlüsselung
- Authentifizierung durch public key Verschlüsselung (Zertifikate, optional: Diffie-Hellman)
TLS: Alert messages
Zahlreiche Nachrichten, die es ermöglichen Probleme oder Fehler während einer TLS Verbindung mitzuteilen
TLS: Protokolle
- Für Integrität und Confidentiality
- Verbindungsaufbau (Handshake mit Zertifikats- und Schlüsselaustausch)
- Fehlermeldungen
- Payload der Anwendung
TLS: Cipher Suites
- Vereinbarte kryptographische Protokolle für Authentifizierung, Schlüsselaustausch, Verschlüsselung und HMAC
- Abgleich: Cipher Suites Client und Algorithmen des Servers –> Server benachrichtigt Client über gemeinsame Methoden
Bestandteile Zertifikat (z.B. im Browser beim Besuchen von Websites)
- Empfänger Name / ID und public key
- Aussteller Name und Signatur
- Gültigkeitsdauer
- technische Informationen (Algorithmus, Hash-Funktion)
Perfect Forward Secrecy eines Protokolls
Verwendete Sitzungsschlüssel können nach Beendigung der Sitzung nicht mehr aus geheimen Langzeitschlüsseln rekonstruiert werden –> Kommunikation kann auch nachträglich nicht entschlüsselt werden
TLS: Authentifizierung
- SSL für gegenseitige Authentifizierung (Zertifikat Server, Client Cipher Suite, Client Zertifikat)
- bei Client Authentifizierung: Server sendet kein Zertifikat
Vorteile moderne TLS-Versionen
- kein Austausch des symmetrischen Schlüssels per RSA (nur noch Diffie-Hellman)
- kompletter Handshake signiert
- Komponenten der Cipher Suites werden getrennt ausgehandelt
- Performanceverbesserungen
Angriffe auf TLS
- kompromittierte Certificate Authorities (Lösung: Certificate Pinning und Certificate Transparency)
- SSL Stripping Angriff
- Heartbleed-Angriff auf OpenSSL
Certificate Pinning
- Vertrauen nicht allein auf Certificate Authorities
- Pin your trust auf Charakteristiken, die nicht durch den Angreifer gefälscht werden können (bestimmte CAs oder Akzeptieren von Zertifikaten mit wohlbekanntem public key)
SSL Stripping Angriff
- Man-in-the-middle liest Netzwerkverkehr mit, wenn Browser auf HTTP arbeitet (kommt auch in HTTPS Tunnel)
- Gegenmaßnahme: HTTP Strict Transport Security (HTST) –> Browser instruiert Server, dass dieser nur durch HTTPS erreichbar ist
Heartbleed-Angriff auf OpenSSL
bei TSL-Heartbeat: keine Überprüfung der angekündigten vs. tatsächliche Payload-Länge –> Server schickt aus Heap mehr zurück als er will (evtl. Session-Daten)
Wofür wurde TSL/SSL entwickelt?
Verhindern von Angreifern in Netzwerken durch:
- Ende-zu-Ende Verschlüsselung
- Serverauthentifizierung