Drei-Wege-Handschlag
Dabei handelt es sich um ein Verfahren, welches in mehreren Stufen durchgeführt wird, um eine wechselseitige Authentifizierung zwischen zwei verschiedenen Instanzen durchzuführen.
Dieses Verfahren wird oft in TCP/IP-Netzwerken verwendet, um eine Verbindung zwischen einem lokalen Host oder Client und einem Server herzustellen. Dieses Verfahren muss durchgeführt werden, bevor die eigentliche Datenübertragung zwischen den zwei Instanzen beginnen kann.
Was ist das Zwei-Armeen-Problem?
Das Zwei-Armeen-Problem beschreibt den Sachverhalt der Kommunikation zweier Instanzen über einen unsicheren Kanal. Dabei steht folgendes Gedankenexperiment im Vordergrund: Es gibt zwei unterschiedliche Armeen.
In diesem Beispiel sind das die Armeen Grün und Rot. Die Armee Grün ist für sich wiederum in zwei Unterarmeen aufgeteilt: Gelb und Blau. Nun ist Grün stärker als Rot, aber nur wenn Blau und Gelb gemeinsam und gleichzeitig angreifen.
Dafür wollen Blau und Gelb nun einen gemeinsamen Angriffszeitpunkt ausmachen. Also schickt Blau nun eine Nachricht mit dem Zeitpunkt per Boten an Gelb. Der Weg von Blau zu Gelb führt durch das Gebiet von Rot. Blau benötigt jedoch eine Bestätigung, dass Gelb die Nachricht erhalten hat. In diesem Zusammenhang ergeben sich zwei Probleme. Zum einen kann der Bote auf dem Weg von Blau zu Gelb von Rot abgefangen werden. Dann kann Blau nicht wissen, ob die eigene Nachricht oder ob die Bestätigung von Rot abgefangen wurde. Zum anderen ergibt sich das Problem, dass wenn Gelb die Bestätigung schickt, diese nicht von Rot abgefangen wird.
Daraus resultiert, dass Gelb nicht weiß, ob die Bestätigung bei Blau angekommen ist. Gelb und Blau können sich bezüglich dieses Problems also niemals sicher sein, dass ihre Nachrichten nicht abgefangen oder verfälscht wurden.
Drei-Wege-Handschlag - Aufbau und Funktion
Der Drei-Wege-Handschlag findet häufig Anwendung im Netzwerkbereich. Seine Definition ist jedoch nicht auf diesen Bereich beschränkt.
Bei diesem Verfahren geht es darum zu gewährleisten, dass in einem Kommunikationssystem trotz Paketverlust, der Aufbau einer Verbindung zwischen zwei unbekannten Kommunikationspartnern möglich ist.
Dieses dreistufige Verfahren umfasst dabei das Senden einer Anfrage, gefolgt von zwei Bestätigungen. Zuerst wird die Anfrage von Kommunikationspartner A an Kommunikationspartner B geschickt. B bestätigt A den Empfang der Anfrage und schickt eventuelle zusätzliche Informationen. Kommunikationspartner A schickt B zuletzt eine Bestätigung der erhaltenen Informationen.
Falls A an B keine Bestätigung schickt, kann es sein, dass die Nachricht von B an A verloren gegangen ist und Kommunikationspartner B hat die Möglichkeit, seine Nachricht erneut zu verschicken.
Praxisbeispiel für den Einsatz des Drei-Wege-Handschlags
In diesem Fall schickt ein Client ein SYN-Paket über das IP-Netzwerk an einen Server, der sich im selben oder in einem externen Netzwerk befindet. Dieses Paket ist dafür da, um beim Server anzufragen, ob neue Verbindungen möglich sind.
Sind auf dem Zielserver offene Ports verfügbar, schickt der Server eine Bestätigung, das ACK-Paket, zurück an den Client. Hat der Client dieses empfangen, bestätigt der dies durch das Senden eines weiteren ACK-Paketes. Nachdem erfolgreichen Abschluss dieses Austausches wird die Verbindung erstellt.