Das Handshake-Protokoll ist ein zentraler Bestandteil des TLS-Protokolls (Transport Layer Security) und regelt den Verbindungsaufbau zwischen einem Client und einem Server. Bevor verschluesselte Daten uebertragen werden koennen, muessen sich beide Seiten auf kryptografische Verfahren, Schluessel und Zertifikate einigen. Dieser Aushandlungsprozess wird als Handshake bezeichnet. Er stellt sicher, dass die Verbindung authentifiziert und abhoersicher ist. Jede HTTPS-Verbindung beginnt mit einem solchen Handshake, weshalb das Verfahren fuer die Sicherheit im Internet eine grundlegende Rolle spielt.
Der TLS-Handshake folgt einem festgelegten Ablauf, bei dem Client und Server mehrere Nachrichten austauschen:
TLS 1.3, veroeffentlicht im Jahr 2018, bringt wesentliche Verbesserungen gegenueber TLS 1.2 mit sich:
| Merkmal | TLS 1.2 | TLS 1.3 |
|---|---|---|
| Handshake-Dauer | Zwei Round-Trips (2-RTT) erforderlich | Nur ein Round-Trip (1-RTT), optional 0-RTT bei Wiederverbindung |
| Cipher Suites | Viele verschiedene, darunter aeltere und unsichere Verfahren | Reduzierte Auswahl, nur noch moderne und sichere Verfahren |
| Schluesselaustausch | RSA oder Diffie-Hellman moeglich | Ausschliesslich Ephemeral Diffie-Hellman (ECDHE/DHE) |
| Forward Secrecy | Optional, abhaengig von der Cipher Suite | Zwingend vorgeschrieben |
| Verschluesselung im Handshake | Zertifikate werden unverschluesselt uebertragen | Zertifikate werden bereits verschluesselt gesendet |
| Kompression | Unterstuetzt (anfaellig fuer CRIME-Angriff) | Entfernt |
Durch den reduzierten Handshake in TLS 1.3 wird die Verbindung schneller aufgebaut, was besonders bei Webseiten mit vielen gleichzeitigen Besuchern spuerbar ist. Der Client sendet bereits im ClientHello seinen Schluesselanteil mit, sodass der Server sofort antworten und den Handshake in einem einzigen Schritt abschliessen kann.
Ein wesentlicher Sicherheitsgewinn von TLS 1.3 ist die verpflichtende Verwendung von Forward Secrecy (auch Perfect Forward Secrecy genannt). Bei diesem Prinzip wird fuer jede Sitzung ein einmaliger Schluessel generiert. Selbst wenn ein Angreifer den privaten Schluessel des Servers kompromittiert, kann er damit keine frueheren Verbindungen entschluesseln.
In TLS 1.2 war es moeglich, RSA-basierte Schluesselaustauschverfahren zu verwenden. Dabei wurde der Sitzungsschluessel mit dem oeffentlichen Schluessel des Servers verschluesselt. Wurde der private Schluessel spaeter bekannt, konnten saemtliche aufgezeichneten Verbindungen nachtraeglich entschluesselt werden. TLS 1.3 schliesst dieses Risiko aus, indem ausschliesslich Ephemeral-Diffie-Hellman-Verfahren (ECDHE oder DHE) zum Einsatz kommen.
SSL-Zertifikate sind ein unverzichtbarer Bestandteil des TLS-Handshakes. Der Server muss waehrend des Handshakes nachweisen, dass er tatsaechlich der Inhaber der angegebenen Domain ist. Dies geschieht durch Vorlage des SSL-Zertifikats, das von einer vertrauenswuerdigen Zertifizierungsstelle ausgestellt wurde.
Der Client prueft dabei mehrere Punkte:
Ohne ein gueltiges SSL-Zertifikat kann der TLS-Handshake nicht erfolgreich abgeschlossen werden. Der Browser zeigt in diesem Fall eine Sicherheitswarnung an und die Verbindung wird abgebrochen oder als unsicher gekennzeichnet.
Wenn der TLS-Handshake fehlschlaegt, koennen verschiedene Ursachen vorliegen:
Administratoren koennen solche Probleme mit Tools wie OpenSSL oder browserseitigen Entwicklertools diagnostizieren. Die korrekte Konfiguration des Webservers, ein gueltiges SSL-Zertifikat und die Unterstuetzung aktueller TLS-Versionen sind Voraussetzungen fuer einen reibungslosen Handshake.
Die bereitgestellten Informationen dienen ausschließlich der allgemeinen Orientierung. Für Richtigkeit, Vollständigkeit und Aktualität wird keine Gewähr übernommen. Die Inhalte sind nicht rechtsverbindlich und nicht Bestandteil einer Leistungsbeschreibung.