Der SSL-Handshake: So funktionieren Public und Private Keys

Bei der sicheren Kommunikation im Internet zwischen Browser und Server spielt SSL eine zentrale Rolle. Wie funktioniert der SSL-Handshake?

Mich würde interessieren, wie vertrauenswürdige SSL-Zertifikate und gefälschte SSL-Zertifikate funktionieren. Können Sie mir hier vor allem erklären, was der SSL-Handshake-Prozess ist?

Der Browser eines Konsumenten beginnt den sogenannten SSL (Secure Sockets Layer) Handshake-Prozess, indem er eine gesicherte Webseite unter Verwendung des HTTPS-Protokolls aufruft. Dies initiiert eine sichere Verbindung mit der Webseite, indem eine Client Hello-Nachricht an den Webserver gesendet wird. 

Diese Client-Hello-Nachricht beinhaltet Informationen darüber, welche Verschlüsselungs- und Kompressionsalgorithmen der Browser unterstützt, sowie eine Pseudozufallszahl. Der Webserver antwortet mit einer Server-Hello-Nachricht, die ebenfalls Informationen über die unterstützten Algorithmen und eine Pseudozufallszahl enthält.

Der Webserver wählt dann die stärkste Verschlüsselung, die sowohl der Browser als auch der Server unterstützen. Der Server sendet auch sein digitales Zertifikat an den Browser, um die Identität als Person oder Computersystem zu belegen. Der Webserver sendet anschließend eine Server-Hello-Done-Nachricht, um zu zeigen, dass er fertig ist und jetzt auf eine Antwort des Browsers wartet.

Weitere Artikel zum Thema:

SSL-Sicherheitslücke: POODLE? Der tut nichts

Bei SSL-Scanning an den Datenschutz denken

Eine SSL-Entschlüsselungs-Appliance für Enterprise-SSL-Monitoring

Von SHA-1 zu SHA-2: Zur Zukunft von SSL im Unternehmen

Sechs Methoden, wie Hacker SSL zu knacken versuchen

Sobald der Browser die Nachricht des Servers empfangen hat, prüft er das Zertifikat über eine Liste von bekannten Zertifizierungsstellen, um sicherzugehen, dass das Zertifikat gültig ist. Das Zertifikat des Servers enthält den öffentlichen Schlüssel und den Namen des Servers, der dem Namen entsprechen muss, den der Server dem Browser mitgeteilt hat. Gibt der Benutzer zum Beispiel die URL https://www.sichererserver.de in den Browser ein, sollte das Zertifikat den Namen www.sichererserver.de oder *.sichererserver.de enthalten.

Der Client berechnet dann ein sogenanntes pre-master-secret unter Verwendung der beiden Zufallszahlen, die während der Client- und Server-Hello-Nachrichten erstellt wurden. Dieses pre-master-secret wird unter Verwendung des öffentlichen Schlüssels (Public Key) aus dem Zertifikat des Servers verschlüsselt und in einer ClientKeyExchange-Nachricht an den Server gesendet. 

Wenn der Server diese Daten entschlüsseln kann, besteht für den Client die Sicherheit, dass der Server über den korrekten privaten Schlüssel verfügt. Eine Nachricht, die mit einem öffentlichen Schlüssel verschlüsselt wurde, kann nur mit dem passenden privaten Schlüssel entschlüsselt werden und umgekehrt. 

Dieser Schritt ist entscheidend, um die Authentizität des Servers zu gewährleisten. Nur der Server mit dem zum öffentlichen Schlüssel passenden privaten Schlüssel kann die entsprechenden Daten entschlüsseln und die Protokollverhandlung fortsetzen.

Der SSL Handshake-Prozess sorgt für einen sicheren Austausch der Daten. Diese werden anschließend vom Client und vom Server genutzt, um den MasterSecretKey zu berechnen. Da sowohl der Server als auch der Client den MasterSecretKey berechnen können, muss dieser nicht ausgetauscht werden. 

Der Server kann ab sofort dem Browser antworten und den Beginn der Kommunikation unter Verwendung der vereinbarten Schlüssel und Parameter anfordern. Durch die Kombination von SSL und dem digitalen Zertifikat eines Servers kann der Konsument eine sichere Verbindung zu einer Webseite herstellen, ohne dass er seine geheimen Verschlüsselungsdaten im Klartext übertragen muss.

Folgen Sie SearchSecurity.de auch auf Facebook, Twitter und Google+!

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit