Security im Überblick (Teil 5)

Security auf dem Application Layer

Ablauf

Ein typischer SSL-Verbindungsaufbau läuft in folgenden Schritten ab:

  • GET HTTPS://: Der Client ruft ein SSL-geschütztes Dokument auf dem Server auf, gekennzeichnet durch eine URL mit dem Protokollbezeichner HTTPS://.

  • Handshake HelloRequest: Der Server sendet hierauf einen Hello-Request an den Client, der den eigentlichen SSL-Handshake startet.

  • Handshake ClientHello: Der Client sendet dem Server eine Liste von unterstützten Algorithmen sowie eine Zufallszahl für die Erzeugung des Schlüssels. SSL und TLS unterstützen eine Vielzahl von Verschlüsselungsverfahren unterschiedlicher Qualität und Komplexität.

  • Handshake ServerHello: Der Server sucht einen Algorithmus aus den vom Client angebotenen Verfahren aus und informiert den Client hierüber.

  • Handshake Certificate: Der Server sendet seinen öffentlichen RSA-Schlüssel in einem gültigen X.509-Zertifikat an den Client.

  • Handshake ServerHelloDone: Zusätzlich versendet auch der Server eine Zufallszahl, die ebenfalls für die Erzeugung des Schlüssels benötigt wird.

  • Handshake ClientKeyExchange: Der Client überprüft das Zertifikat des Servers. Dann erzeugt er eine zufällige Zeichenfolge (pre_master_secret) und sendet diese verschlüsselt zum Server. Auf der Grundlage der beiden von Server und Client erzeugten Zufallszahlen und des pre_master_secret berechnen Client und Server unabhängig voneinander die Schlüssel für Verschlüsselung und die Signaturen (MAC).

  • ChangeCipherSpec: Der Client informiert dann den Server, dass alle weiteren Pakete verschlüsselt übertragen werden.

  • Handshake Finished: Das Finished-Paket enthält ein MAC über alle Handshake-Nachrichten an den Server. So findet der Server heraus, ob ein Man-in-the-Middle-Angriff die originalen Pakete des Client verändert hat.

  • ChangeCipherSpec: Der Server informiert den Client, dass alle weiteren Pakete verschlüsselt übertragen werden.

  • Handshake Finished: Auch das Finished-Paket des Servers enthält ein MAC über alle Handshake-Nachrichten an den Server. So kann auch der Client herausfinden, ob ein Man-in-the-Middle-Angriff die originalen Pakete des Servers verändert hat.

Damit ist die SSL-Verbindung aufgebaut, und die verschlüsselte Datenübertragung kann beginnen.