Benutzer-Werkzeuge

Webseiten-Werkzeuge


signatur:ssl:start

Anwendung: SSL-Handshake

Immer dann, wenn wir eine Seite im Browser per https-Protokoll aufrufen, z.B. zur URL https://www.learnj.de/11, zeigt uns dieser durch ein Vorhängeschloss-Symbol an, dass er das Zertifikat des Servers überprüft hat und dass die Kommunikation sicher ist. Dies sichert uns zweierlei zu:

  • Der Server, der auf unsere Anfrage geantwortet hat, ist berechtigt, Webseiten für die angegebene URL auszuliefern. Es handelt sich also nicht um den Server eines Angreifers, der die Webseite imitiert.
  • Die Übertragung der Daten vom Browser zum Server und umgekehrt erfolgt verschlüsselt.

Es stellen sich folgende Fragen:

  • Wie stellt der Browser sicher, dass der antwortende Server wirklich zur Domain www.learnj.de gehört und nicht ein man in the middle-Server die Anfrage beantwortet?
  • Wie können sich der Browser und der Server auf eine Schlüssel zur Verschlüsselung einigen, ohne dass ein "man in the middle" diesen abgreifen und die nachfolgende Kommunikation dann belauschen kann?

Lösungsansatz (vereinfachte Darstellung):

  • Eine Zertifizierungsstelle (certificate authority, kurz: CA) überprüft die Identität der Domaininhaber/innen und stellt signierte Zertifikate aus. Diese enthalten den Domainnamen und einen public key der Domaininhaberin/des Domaininhabers.
  • Der public key der Zertifizierungsstelle ist fest in den Browsern integriert.
  • Auf den ersten Request des Browsers antwortet der Server, indem er das Zertifikat vorweist.
  • Mithilfe des public key im Zertifikat kann der Browser sowohl die Identität des Servers überprüfen als auch einen geheimen Schlüssel für die weitere Kommunikation übermitteln, Details dazu in den folgenden Darstellungen.



Inwiefern ist die Darstellung vereinfacht?

  • Der Handshake ist in Wirklichkeit noch deutlich ausgefeilter, siehe beispielsweise hier.
  • Im Browser hinterlegt ist meist nicht direkt der public key der certificate authority, sondern der public-key von wenigen sogenannten root certificate authorities. Diese signieren die public-keys untergeordneter CAs, die wiederum die public-keys weiterer CAs signieren usw…
    Man spricht von einer Zertifikatskette (chain of trust), durch die dann letztlich das Zertifikat des Webservers beglaubigt wird. Details dazu im nachfolgenden Kapitel.
signatur/ssl/start.txt · Zuletzt geändert: 2023/12/11 09:59 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki