Überblick über den SSL/TLS-Handshake

Der SSL/TLS-Handshake ermöglicht dem TLS-Client und dem TLS-Server, die geheimen Schlüssel zu erstellen, mit denen sie kommunizieren.

Dieser Abschnitt enthält eine Zusammenfassung der Schritte, die es dem TLS-Client und dem Server ermöglichen, miteinander zu kommunizieren:

  • Akzeptieren Sie die Version des zu verwendenden Protokolls.
  • Chiffrieralgorithmen auswählen.
  • sich gegenseitig über den Austausch und die Überprüfung digitaler Zertifikate authentifizieren
  • Verwenden Sie asymmetrische Verschlüsselungsverfahren, um einen gemeinsamen geheimen Schlüssel zu generieren, der das Hauptverteilungsproblem vermeidet. TLS verwendet dann den gemeinsam genutzten Schlüssel für die symmetrische Verschlüsselung von Nachrichten, die schneller als asymmetrische Verschlüsselung ist.

Weitere Informationen zu kryptografischen Algorithmen und digitalen Zertifikaten finden Sie in den zugehörigen Informationen.

Dieser Abschnitt versucht nicht, vollständige Details zu den Nachrichten zu liefern, die während des TLS-Handshake ausgetauscht werden. In der Übersicht sind die Schritte im TLS-Handshake wie folgt:
  1. Der TLS-Client sendet eine Client-Hello -Nachricht, in der Verschlüsselungsdaten wie die TLS-Version und in der Reihenfolge der Vorgaben des Clients die vom Client unterstützten CipherSuites aufgelistet werden. Die Nachricht enthält auch eine zufällige Bytefolge, die in nachfolgenden Berechnungen verwendet wird. Das Protokoll ermöglicht es dem Clienthello , die vom Client unterstützten Datenkomprimierungsmethoden einzuschließen.
  2. Der TLS-Server antwortet mit einer Nachricht vom Typ server hello , die die CipherSuite enthält, die vom Server aus der vom Client bereitgestellten Liste, der Sitzungs-ID und einer anderen wahlfreien Bytefolge ausgewählt wurde. Der Server sendet auch sein digitales Zertifikat. Wenn für den Server ein digitales Zertifikat für die Clientauthentifizierung erforderlich ist, sendet der Server eine Clientzertifikatsanforderung , die eine Liste der unterstützten Typen von Zertifikaten und die definierten Namen akzeptabler Zertifizierungsstellen (CAs) enthält.
  3. Der TLS-Client überprüft das digitale Zertifikat des Servers. Weitere Informationen finden Sie unter Wie TLS Identifikation, Authentifizierung, Vertraulichkeit und Integrität bereitstellt.
  4. Der TLS-Client sendet die zufällige Bytefolge, die es sowohl dem Client als auch dem Server ermöglicht, den geheimen Schlüssel zu berechnen, der für die Verschlüsselung der nachfolgenden Nachrichtendaten verwendet werden soll. Die zufällige Bytefolge selbst wird mit dem öffentlichen Schlüssel des Servers verschlüsselt.
  5. Wenn der TLS-Server eine Clientzertifikatsanforderung gesendet hat, sendet der Client eine zufällige Bytefolge, die mit dem privaten Schlüssel des Clients verschlüsselt wird, zusammen mit dem digitalen Zertifikat des Clients oder mit einem Alert für kein digitales Zertifikat . Dieser Alert ist nur eine Warnung, aber bei einigen Implementierungen schlägt der Handshake fehl, wenn die Clientauthentifizierung obligatorisch ist.
  6. Der TLS-Server überprüft das Clientzertifikat. Weitere Informationen finden Sie unter Wie TLS Identifikation, Authentifizierung, Vertraulichkeit und Integrität bereitstellt.
  7. Der TLS-Client sendet dem Server eine fertige Nachricht, die mit dem geheimen Schlüssel verschlüsselt wird, was darauf hinweist, dass der Client Teil des Handshake abgeschlossen ist.
  8. Der TLS-Server sendet dem Client eine fertige Nachricht, die mit dem geheimen Schlüssel verschlüsselt wird, was darauf hinweist, dass der Serverteil des Handshake abgeschlossen ist.
  9. Für die Dauer der TLS-Sitzung kann der Server und Client jetzt Nachrichten austauschen, die symmetrisch mit dem geheimen Schlüssel für gemeinsame Nutzung verschlüsselt sind.
Abbildung 1 veranschaulicht den TLS-Handshake.
Abbildung 1. Übersicht über den TLS-Handshake
In diesem Diagramm wird der TLS-Handshake veranschaulicht, der im vorangehenden Diagramm beschrieben wird.