Transport Layer Security (TLS) und Secure Sockets Layer (SSL)
Willemers Informatik-Ecke
TLS ist eine Weiterentwicklung von SSL, ein Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet, das beispielsweise von HTTPS, IPSec VPN, POP3S, IMAPS und anderen eingesetzt wird. TLS verwendet zur Verschlüsselung vor allem RSA, AES und Comellia.

Ablauf des TLS-Handshakes

Das TLS-Handshake-Protocol verwendet Pakete des TLS-Record-Protocol. Der Zweck des Handshakes besteht darin, dass ein Client mit einem Server ein möglichst sicheres Verfahren der Kommunikation absprechen will. Die prominentetste Anwendung ist hier HTTPS, also die verschlüsselte Übertragung von Web-Inhalten, beispielsweise für das Online-Banking.

Im Zuge des TLS-Handshakes tauschen Client und Server sich darüber aus, welche Verschlüsselungsverfahren sie beherrschen und suchen das sicherste davon aus.

ClientServer
Phase 1
Client Hello
  • ClientRandom: 28-Byte-Zufallszahl, ergänzt um 4-Byte-Uhrzeit, um Replay-Angriffe zu vermeiden.
  • Cipher Suites: Das ist eine Liste der Krypto-Verfahren, die der Client beherrscht.
Server Hello
  • Random: 28-Bytes-Zufallszahl, ergänzt um die 4-Bate-Uhrzeit
  • Cipher Suite: Erstellt aus den vorgeschlagenen Cipher-Suiten welche aus und sendet sie in Form eines Cipher-Strings zurück.
Phase 2
Certificate
Der Server sendet sein-Zertifikat. Auf dieser Basis ist bereits eine assymetrische Verschlüsselung möglich
Server Key Exchange (optional)
Für den Schlüsselaustausch wird der öffentliche Diffie-Hellman-Schlüssel versandt.
Server Hello Done
Client prüft das Server-Zertifikat. Ist es durch eine X509-Zertifizierungsstelle (CA) autorisiert?
Client Key Exchange (optional)
Phase 3
Server und Client erstellen mit dem Diffie-Hellmann-Schlüsseltausch ein gemeinsames Geheimnis in Form einer Zufallszahl (PreMasterKey).
Phase 4
Client errechnet den Master-Key Server errechnet den Master Key

Der Master-Key bildet die Grundlage für die im weiteren erfolgende symmetrische Verschlüsselung.

In den meisten Fällen besitzt nur der Server ein Zertifikat. Sollte auch der Client ein Zertifikat besitzen, sendet er dieses dem Server nach Erhalt des Server-Zertifikats. In dem Fall kann der PreMasterKey auf der Basis dieser Zertifikate ausgetauscht werden.

Die Nachrichten-Integrität und -Authentizität wird durch Message Authentication Code gewährleistet. Dazu wird eine Hash-Funktion auf die Nachricht angewendet und das Ergebnis durch den gemeinsamen Schlüssel verschlüsselt.

Cipher Suite

Eine Cipher Suite stellt eine Zusammenstellung von kryptografischen Verfahren dar. Da die Verfahren sich im Laufe der Zeit ändern oder ablösen, können Client und Server auf der Basis ihrer Fähigkeiten die bestmöglichen Varianten ermitteln. Die Verfahren benennen:

Nach Ermittlung der optimalen Lösung wird die Cipher-Suite in einem String zusammengestellt, der durch das Protokoll eingeleitet wird.

TLS_DHE_RSA_WITH_DES_CBC_SHA

Diffie-Hellman-Schlüsselaustausch

Das Diffie-Hellman-Verfahren dient zum Austausch von Schlüsseln über eine unsichere Leitung.

Wie man es schafft, ein Geheimnis über eine abgehörte Leitung zu senden, beschreibt eine Analogie mit Farben

Farb-Handshake

Das folgende Verfahren beruht auf der Erkenntnis, dass es leicht ist, Farben miteinander zu vermischen, aber deutlich schwerer ist, aus einer gemischten Farbe deren Bestandteile zu ermitteln.

Diffie-Hellmann-Handshake

ClientServer
Erzeugt Client-Zufallszahl und sendet sie an den Server
Empfängt Client-Zufallszahl
Erzeugt Server-Zufallszahl
Sendet Server-Zufallszahl und sein öffentliches Zertifikat
Empfängt Server-Zufallszahl und öffentliches Server-Zertifikat
Server-DH-Parameter
Signatur vom Schlüssel-Server
Sendet Server-DH-Parameter und Signatur vom Schlüssel-Server
Empfängt Server-DH-Parameter und Signatur vom Schlüssel-Server
Sendet Client DH-Parameter an den Server

Beide ermitteln unabhängig voneinander aus Server DH-Parameter und Client DH-Parameter das identischen Premaster Geheimnis.

Beide ermitteln unabhängig voneinander aus der Client-Zufallszahl, der Server-Zufallszahl und dem Premaster Geheimnis den identischen Session-Key.

Links