it-swarm.com.de

Können Angreifer den öffentlichen Schlüssel des Zertifikats während des SSL-Handshakes ändern?

Die Kommunikation wird während des SSL-Handshakes nicht verschlüsselt. Wenn ein Angreifer einen Mann im mittleren Angriff zwischen Server und Client ausführt, um das Zertifikat zu erfassen, den öffentlichen Schlüssel im Zertifikat zu ändern und an den Client zu senden, ist die digitale Signatur identisch. Alle Eigenschaften außer dem öffentlichen Schlüssel sind identisch.

Wie kann ein Browser den Unterschied verstehen? Wenn der Browser dies überprüft, kann der Angreifer sein eigenes Schlüsselpaar verwenden und benötigt den privaten Schlüssel des Servers nicht.

18
Grey

... den öffentlichen Schlüssel im Zertifikat ändern und an den Client senden. Digitale Signatur ist gleich, alle Eigenschaften außer dem öffentlichen Schlüssel sind gleich. Wie kann der Browser den Unterschied verstehen?

Der Browser überprüft, ob die Signatur der Zertifikate mit dem Zertifikat übereinstimmt. Da der öffentliche Schlüssel in der Signatur enthalten ist und der öffentliche Schlüssel geändert wird, passt die Signatur nicht mehr zum Zertifikat. Daher schlägt die Validierung fehl.

41
Steffen Ullrich

Am Ende der TLS-Aushandlung (die Nachricht "Fertig") nehmen der Client und der Server einen Hash der gesamten Konversation, die sie bisher geführt haben, und vergleichen sie. Wenn dies anders ist als bei einem MitM-Angriff auf das Zertifikat, wird die Verbindung getrennt.

Um RFC 5246 zu zitieren:

  The Finished message is the first one protected with the just
  negotiated algorithms, keys, and secrets.  Recipients of Finished
  messages MUST verify that the contents are correct.  Once a side
  has sent its Finished message and received and validated the
  Finished message from its peer, it may begin to send and receive
  application data over the connection.

Um Kommentare von @Moo und @Damon zu adressieren, verhindert die Nachricht "Fertig" keinen vollständigen MitM-Angriff (" SSL Interception "), bei dem der MitM direkt kann Intercept und Proxy all TCP und verfügt über ein gültiges Zertifikat im Namen des Ziels. Es verhindert nur diskrete Manipulationen am Stream zwischen Client und Server - wie vom OP vorgeschlagen.

25
gowenfawr

Zertifikate existieren nicht isoliert. Um vertrauenswürdig zu sein, muss ein Zertifikat von einem Aussteller unterschrieben werden. Diese Emittenten werden als Zertifizierungsstellen bezeichnet. Jeder Browser (oder jedes Betriebssystem) verwaltet eine eigene Liste mit einigen hundert vertrauenswürdigen Zertifizierungsstellen (Root-Zertifizierungsstellen genannt), die er bereits kennt und denen er vertraut. und Ihr Arbeitgeber oder Ihre Schule haben möglicherweise eine eigene private Stammzertifizierungsstelle. Wenn ein Zertifikat von einem Aussteller signiert wird, der einem Kunden nicht bekannt ist, ist es nicht vertrauenswürdig.

So lange bevor der TLS-Handshake den fertigen Teil des Protokolls erreicht, hat der Server seinen öffentlichen Schlüssel in seinem Zertifikat in der Server-Hello-Nachricht gesendet. Der Kunde ist dafür verantwortlich, das gesamte Zertifikat zu validieren, sobald es es erhält. Die Validierung umfasst die Überprüfung des Ablaufdatums des Zertifikats, seiner Unterschrift UND der Unterschrift des Ausstellers und seines ausstellenden Zertifikats. Wenn das ausstellende Zertifikat nicht von einem bekannten, vertrauenswürdigen Aussteller stammt (einer, den der Client in dieser internen Liste vertrauenswürdiger Stammzertifizierungsstellen hat), sollte der Client die Verbindung ablehnen.

Wenn ein Angreifer ein anderes Zertifikat ersetzt, das nicht von einer Behörde signiert wurde, der der Client bereits vertraut, wird es abgelehnt, da der Aussteller nicht in der Liste der vertrauenswürdigen Zertifizierungsstellen gefunden wurde. Wenn der Angreifer versucht, seinen eigenen Schlüssel zu verwenden, ohne das richtige Zertifikat zu senden, verwendet der Client den falschen Schlüssel und kommuniziert während der fertigen Nachricht nicht richtig.

Wenn es dem Angreifer gelungen ist, seine gefälschte Stammzertifizierungsstelle zur Liste der vertrauenswürdigen Zertifizierungsstellen Ihres Systems hinzuzufügen, kann der Angreifer einen Mann im mittleren Angriff ausführen und Ihre Kommunikation anzeigen. Dies wird häufig absichtlich von Unternehmen durchgeführt, die den gesamten Webverkehr überprüfen, Antivirenscans durchführen, Malware verhindern, das Auslaufen von Geheimnissen verhindern oder einfach das Surfen im Internet ihrer Mitarbeiter überwachen möchten.

24
John Deters