In der Informatik bezeichnet ein Handshake den Vorgang des Aufbaus einer sicheren Verbindung zwischen zwei Geräten oder Systemen durch den Austausch kryptografischer Informationen. Dabei werden Authentifizierungsdaten wie digitale Zertifikate oder kryptografische Schlüssel ausgetauscht, um sicherzustellen, dass die Kommunikation zwischen den Geräten verschlüsselt und sicher ist.
Der Zweck eines Handshakes besteht darin, ein gemeinsames Geheimnis zwischen den kommunizierenden Parteien herzustellen, das dann zum Ver- und Entschlüsseln von Daten verwendet werden kann. Die spezifischen Schritte eines Handshakes können je nach verwendetem Protokoll oder Algorithmus variieren, umfassen im Allgemeinen jedoch Folgendes:
1. Einleitung: Ein Gerät initiiert den Handshake, indem es eine Authentifizierungsanfrage an das andere Gerät sendet. Diese Anfrage kann Informationen über das zu verwendende Protokoll oder den Algorithmus sowie Informationen zum öffentlichen Schlüssel enthalten.
2. Antwort: Das empfangende Gerät antwortet mit seinen öffentlichen Schlüsselinformationen und allen erforderlichen Zertifikaten oder Anmeldeinformationen.
3. Verifizierung: Jedes Gerät validiert die empfangenen Informationen, um sicherzustellen, dass das andere Gerät vertrauenswürdig ist und über die entsprechenden Kommunikationsberechtigungen verfügt.
4. Schlüsselaustausch: Die Geräte tauschen kryptografische Schlüssel oder Sitzungsschlüssel aus, mit denen die nachfolgende Kommunikation ver- und entschlüsselt werden kann.
5. Authentifizierung: Die Geräte können zusätzliche Informationen austauschen, um sich gegenseitig zu authentifizieren, beispielsweise Benutzernamen, Passwörter oder digitale Signaturen.
6. Bestätigung: Sobald die Authentifizierung und der Schlüsselaustausch erfolgreich sind, tauschen die Geräte Bestätigungsnachrichten aus, um anzuzeigen, dass der Handshake abgeschlossen ist und eine sichere Verbindung hergestellt wurde.
Handshaking spielt eine entscheidende Rolle bei der Sicherung der Kommunikation und des Datenaustauschs in verschiedenen Anwendungen, darunter sicheres Surfen im Internet (HTTPS), virtuelle private Netzwerke (VPNs), E-Mail-Verschlüsselung (PGP) und andere Netzwerkprotokolle, bei denen die Datensicherheit Priorität hat.