Suchen

Definition Handshake Was ist ein Handshake?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Peter Schmitz

Das Handshake-Verfahren wird häufig im Netzwerk- und Security-Bereich verwendet. Es ermöglicht den Aufbau sicherer Verbindungen, indem sich Sender und Empfänger beim Verbindungsaufbau ihre Nachrichten gegenseitig bestätigen. Die Transport Layer Security nutzt das Handshake-Verfahren für sichere TLS-Verbindungen.

Ein Handshake dient zum Aufbau sicherer Verbindungen mit Hilfe gegenseitiger Bestätigungen. Das Handshake-Verfahren wird z.B. für die Transport Layer Security (TLS) genutzt.
Ein Handshake dient zum Aufbau sicherer Verbindungen mit Hilfe gegenseitiger Bestätigungen. Das Handshake-Verfahren wird z.B. für die Transport Layer Security (TLS) genutzt.
(Bild: gemeinfrei / Pixabay )

Das deutsche Wort für Handshake lautet Handschlag. Es handelt sich um ein Verfahren, das im Netzwerkbereich, in der Signalisierungstechnik und im Security-Umfeld zum Einsatz kommt. Während des Handschlag-Verfahrens quittieren sich die beteiligten Systeme gegenseitig ihre Nachrichten, wodurch sich Verbindungen mit ausgehandelten Parametern wie Kommunikationsbedingungen oder Sicherheitsmerkmalen bestätigt aufbauen lassen. Es existieren sowohl Hardware- als auch Software-basierte Verfahren des Handshakes. Der Handshake kann in verschiedenen Phasen ablaufen. Häufig genutzt werden der Drei- oder Vier-Wege-Handshake (Three-Way-Handshake oder Four-Way-Handshake). Verschiedene Protokolle der TCP/IP-Protokollwelt wie das Transmission Control Protocol (TCP) oder die Transport Layer Security (TLS) verwenden Handshake-Verfahren.

Grundsätzliche Funktionsweise eines Drei-Wege-Handshakes am Beispiel eines TCP-Verbindungsaufbaus

Zur Erläuterung des Grundprinzips eines Handshakes folgt eine kurze vereinfachte Beschreibung eines Drei-Wege-Handshakes, wie er beispielsweise bei einem TCP-Verbindungsaufbau stattfindet.

Teilnehmer A sendet dem Teilnehmer B seinen Verbindungsaufbauwunsch (SYN-Nachricht) mit Zusatzinformationen wie der eigenen Sequenznummer. Teilnehmer B sendet ebenfalls eine SYN-Nachricht mit Sequenznummer und bestätigt gleichzeitig die erhaltene Nachricht, indem er eine SYN-ACK-Nachricht verschickt. Abschließend quittiert Teilnehmer A die SYN-Nachricht von Teilnehmer B mit einer ACK-Nachricht. Beide Teilnehmer haben damit den Verbindungsaufbauwunsch quittiert und die weitere Kommunikation kann stattfinden.

Handshake-Verfahren im Security-Umfeld - Beispiel TLS

Die Transport Layer Security (TLS) ermöglicht den Aufbau sicherer, verschlüsselter Verbindungen über unsichere Netzwerke wie beispielsweise das Internet. TLS-Verbindungen kommen unter anderem bei der Kommunikation eines Webbrowsers mit einem Webserver per HTTPS zum sicheren Abruf von Internetinhalten zum Einsatz. Beim Aufbau der TLS-Verbindung findet das Handshake Messaging Protocol Anwendung. Es wird genutzt, um die Sicherheitsattribute zwischen den Teilnehmern auszuhandeln und sich gegenseitig zu authentifizieren. Je nach angefordertem Sicherheitslevel und genutzten Protokollvarianten unterscheiden sich die in den Nachrichten des Handshakes enthaltenen Informationen. Das TLS-Handshake-Protokoll erfüllt folgende Funktionen:

  • Identifikation und Authentifizierung der kommunizierenden Teilnehmer mit Hilfe von asymmetrischen Verschlüsselungsverfahren und öffentlichen sowie privaten Schlüsseln
  • Aushandlung des verwendeten Verschlüsselungsverfahrens
  • Übertragung von Schlüsselinformationen
  • Aushandlung von kryptografischen Parametern

Der Handshake findet üblicherweise in vier Phasen statt. Im Folgenden eine stark vereinfachte Darstellung dieser vier Phasen:

Phase 1:

Austausch eines Client- und Server-Hellos mit Informationen wie TLS-Protokoll-Version, Session-ID, Cipher Suite und Zufallsinformation.

Phase 2:

Server identifiziert sich gegenüber dem Client mit seinem Zertifikat. Der Client verifiziert die Echtheit und Gültigkeit des Zertifikats und bricht die Verbindung bei einem ungültigen Zertifikat ab. Optional kann der Server die Verifizierung des Clients gegenüber dem Server ebenfalls mit einem Zertifikat anfordern.

Phase 3:

In dieser Phase findet die optionale Verifizierung des Clients mit seinem Zertifikat gegenüber dem Server statt. Soll sich der Client nicht gegenüber dem Server identifizieren, kann er auch mit einer leeren Zertifikatsliste antworten. Gleichzeitig werden die Geheimnisse, die zur Verschlüsselung der Daten benötigt werden, abhängig von der verwendeten Cipher Suite ausgehandelt.

Phase 4:

Die vierte Phase beendet den Handshake. Mit Hilfe der zuvor ausgetauschten Informationen lassen sich die Schlüssel ableiten, die zum Ver- und Entschlüsseln der übertragenen Daten verwendet werden. Auch die Integritätsprüfung findet mit diesen Schlüsseln statt. Die sichere Verbindung ist nun aufgebaut und die eigentliche Kommunikation kann starten.

(ID:46557607)

Über den Autor