TLS-Handshake im Detail
Kurz: Beim TLS-Handshake einigen sich Browser und Server auf Verschlüsselung, prüfen das Zertifikat des Servers und erzeugen gemeinsame Sitzungsschlüssel, ohne dass ein Mithörer sie ableiten kann.
Genauer: In TLS 1.3 schickt der Client in der ersten Nachricht (ClientHello) unterstützte Verfahren und einen Schlüsselanteil (Diffie-Hellman). Der Server antwortet mit seinem Anteil, seinem Zertifikat und einer Signatur. Beide berechnen daraus denselben Schlüssel. Nach nur einem Roundtrip ist die Verbindung verschlüsselt.
Im Detail
- Zertifikat: Bindet Domain an einen öffentlichen Schlüssel, signiert von einer Zertifizierungsstelle (CA). Der Browser prüft Kette, Gültigkeit, Namen.
- Key Exchange: (EC)DHE sorgt für Forward Secrecy: Gestohlene Langzeitschlüssel entschlüsseln keine alten Mitschnitte.
- AEAD-Verschlüsselung: AES-GCM oder ChaCha20-Poly1305 verschlüsseln und authentisieren zugleich.
- SNI: Der Hostname im ClientHello (ECH verbirgt ihn).
- Session Resumption/0-RTT: Schnellere Wiederverbindung.
- TLS 1.2 vs. 1.3: 1.3 streicht unsichere Verfahren, ist schneller.
- Zertifikatstransparenz: Öffentliche Logs machen falsch ausgestellte Zertifikate sichtbar.
Siehe auch: Diffie-Hellman und Forward Secrecy, Authentifizierte Verschlüsselung (AEAD)