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.