Cryptography Reference
In-Depth Information
Berechnung der Schlüssel für die Sicherung der Datenübertragung in den nach dem SSL-
Handshake übermittelten SSL-Records.
Server
Client
Client Hello (ID, RND1, CipherSuite)
Server Hello (ID, RND2, CipherSuite)
Certificate
Certificate Request
Hello Done
Certificate
ClientKeyExchange (
Enc PubKey Server
)
Certificate Verify (
Enc PrivKey Client
)
ChangeCiperSpec/Finished (
Enc SessionKey
)
Abb. 6-7: Zwischen Client und
Server ausgetauschte Nachrich-
ten im SSL-Handshake
ChangeCiperSpec/Finished
(Enc SessionKey
)
Beim SSL-Handshake wird, wie in Abb. 6-7 dargestellt, der öffentliche Signaturschlüssel
PubKey Server
des Servers zum Verschlüsseln der
ClientKeyExchange
-Nachricht vom Client
eingesetzt. Der dafür benötigte öffentliche Schlüssel des Servers kann vom Client aus dem
zuvor übermittelten Server-Zertifikat (
Certificate
-Nachricht) entnommen werden (Kap. 6.1).
Nur der Server, der im Besitz des passenden privaten Schlüssels ist, kann die
ClientKeyEx-
change
-Nachricht des Clients entschlüsseln. Diese Nachricht enthält wichtige Informationen
zur Initialisierung der Transportverschlüsselung (
Pre-Master-Secret
). Das
Pre-Master-Secret
besteht aus einer 46-Byte langen Zufallszahl und zwei Byte Versionsnummer. Beide Seiten
kennen den Wert der Zufallszahl nach Austausch der
ClientKeyExchange
-Nachricht, obwohl
das
Pre-Master-Secret
nie im Klartext übermittelt wurde und somit von einem Angreifer auch
nicht abgefangen werden kann. Aus dem
Pre-Master-Secret
berechnen der Client und der
Server mit Hilfe der Hashfunktionen SHA-1 und MD5 das 48-Byte
Master-Secret
. Eine Kom-
bination beider Hashfunktionen schafft dabei eine höhere Sicherheit vor Angriffen aufgrund
einer kompromittierten Hashfunktion. Das nur dem Client und dem Server bekannte
Master-
Secret
ist dann die Grundlage, um folgende Schlüssel für die Transportsicherung abzuleiten:
Verschlüsselungsschlüssel
SessionKey