it-swarm.com.de

Wie validieren Chrome und Firefox SSL-Zertifikate?

Wie validieren Chrome und Firefox SSL-Zertifikate? Fordern sie Daten von einer SSL-Zertifizierungswebsite wie GeoTrust an, um das vom Webserver empfangene Zertifikat zu validieren?

26
user1397542

Browser und/oder Betriebssysteme enthalten in der Regel eine vordefinierte Liste von CA-Zertifikaten, die als Vertrauensanker verwendet werden, um die Zertifikate der Server zu überprüfen, mit denen sie eine Verbindung herstellen. Sie sind alle anpassbar (mit Ausnahme von EV-Zertifikaten, für die die Stammzertifikate fest im Browser codiert sind, obwohl Sie sie deaktivieren können ... mit Ausnahme des Fehlers).

Firefox verwendet seine eigene Liste auf allen Plattformen.

Internet Explorer und Chrome verwenden das Zertifikat-Repository des Betriebssystems unter Windows. Die Standardeinstellung ist über Microsoft Root-Zertifikat-Programm verfügbar.

Apple hat auch sein Programm .

Das Vertrauen in ein a priori unbekanntes Serverzertifikat erfolgt durch Erstellen eines Zertifizierungspfads zwischen diesem Zertifikat und einem der Vertrauensanker des Browsers. Dies erfolgt wie in RFC 3280/RFC 5280 definiert.

Darüber hinaus kann der Widerruf von Zertifikaten entweder über CRL oder über OCSP überprüft werden.

Es ist also nicht möglich, die Kommunikation zwischen dem Browser und einer Zertifizierungsstelle abzufangen, um ein gültiges Zertifikat zu fälschen, da sich das Zertifikat wahrscheinlich bereits im Cache des Browsers befindet.

Um den Punkt, den ich als Kommentar zu Wugs Antworten gemacht habe, noch einmal zu wiederholen: Das Repository für Vertrauensanker ist kein Cache . Ein Cache ist ein dynamischer Platzhalter, der darauf abzielt, das, worauf Sie kürzlich zugegriffen haben, zur Verfügung zu haben, basierend auf der Annahme, dass Sie ihn bald wieder benötigen. Im Gegensatz dazu darf Ihre Liste vertrauenswürdiger Zertifikate niemals automatisch auf der Grundlage dessen aktualisiert werden, was Sie gerade durchsuchen. (Es könnte durch automatische Sicherheitsupdates aktualisiert werden, aber das ist ein anderes Problem.)

Das Serverzertifikat wird jedes Mal abgerufen, wenn eine neue SSL/TLS-Sitzung eingerichtet wird, und der Browser muss es jedes Mal überprüfen. Es ist nicht zwischengespeichert. (Möglicherweise wird OCSP zwischengespeichert, dies dient jedoch der Leistungsverbesserung und wird nur für kurze Zeit beibehalten. Dies dient nur zur Überprüfung des Sperrstatus zum Zeitpunkt des Zugriffs.)

Die Kontaktaufnahme mit der Zertifizierungsstelle dient nur zum Widerruf des Zertifikats. Sie wenden sich ansonsten nicht an eine Zertifizierungsstelle. CA-Zertifikate (Ihre vertrauenswürdigen Anker) sind eine Selbstverständlichkeit, ein "Vertrauenssprung", der von Ihrem Betriebssystem/Browser für Sie gebündelt wird (den Sie explizit auswählen können, der jedoch für eine bestimmte Verbindung festgelegt ist). Bestenfalls können Sie verhindern, dass die Überprüfung des Zertifikatsperrens erfolgt (was dazu führen kann, dass die Überprüfung Ihres Browsers abhängig von den Einstellungen fehlschlägt).

16
Bruno

Der Webserver sendet auf Anfrage die gesamte Zertifikatkette an den Client. Der Browser (oder ein anderer Validator) kann dann das höchste Zertifikat in der Kette mit lokal gespeicherten CA-Zertifikaten überprüfen.

Die meisten Betriebssysteme verfügen über einen Cache mit autorisierenden Zertifikaten, auf die Browser für solche Zwecke zugreifen können. Andernfalls verfügt der Browser irgendwo über eigene Zertifikate.

Ein Zertifikat kann von einem anderen Zertifikat signiert werden und bildet eine "Vertrauenskette", die normalerweise mit einem selbstsignierten autorisierenden Zertifikat endet, das von einer Entität wie GeoTrust, Verisign, Godaddy usw. bereitgestellt wird.

Dies wäre eine bessere Frage für die Security SE-Site.

Insbesondere Google Chrome verwendet den Betriebssystem-Cache nicht zu 100%. Sie können jedoch ein autorisierendes Zertifikat über Wrench -> Einstellungen -> Erweiterte Einstellungen anzeigen -> HTTPS/SSL -> Zertifikate verwalten -> Vertrauenswürdige Stammzertifizierungsstellen und hinzufügen Hinzufügen eines autorisierenden CA-Zertifikats.

3
Wug

Wie Wug erklärte, erfolgt die Validierung vom Serverzertifikat bis zum höchsten Zertifikat in der Kette. Der Browser überprüft die Zertifikateigenschaften und führt eine grundlegende Überprüfung durch, z. B. um sicherzustellen, dass die URL mit dem Feld Issued to übereinstimmt. Das Feld Issued By enthält eine vertrauenswürdige Zertifizierungsstelle. Das Ablaufdatum sieht im Feld gut aus Valid From Feld usw.

Zusätzlich enthält jedes Zertifikat URLs, die auf Zertifikatsperrlisten verweisen (CRL Distribution Points). Der Client versucht, die Liste von dieser URL herunterzuladen und sicherzustellen, dass das vorliegende Zertifikat nicht widerrufen wurde.

m deine Frage zu beantworten

Fordern sie Daten von der SSL-Zertifizierungswebsite wie GeoTrust an, um das vom Webserver empfangene Zertifikat zu validieren?

Ja, der Browser führt eine grundlegende Überprüfung durch und kontaktiert dann den CA-Berechtigungsserver (über CRL-Punkte), um sicherzustellen, dass das Zertifikat noch gültig ist.

3
Ulises

Hier ist meine Einstellung zur Zertifikatsprüfung. Angenommen, das Webzertifikat hat den richtigen Namen, versucht der Browser, die Zertifizierungsstelle zu finden, die das Webserverzertifikat signiert hat, um den öffentlichen Schlüssel des Unterzeichners abzurufen. Die signierende Zertifizierungsstelle kann Teil einer Kette von Zertifizierungsstellen sein

Mit dem öffentlichen Schlüssel kann die Signatur auf dem Zertifikat der Website entschlüsselt werden (dies stellt sicher, dass nur die Zertifizierungsstelle sie hätte signieren können, wenn ihr privater Schlüssel nicht kompromittiert wurde), um einen Hash des Webserverzertifikats anzuzeigen. Der Browser berechnet auch diesen Hash des Webserver-Zertifikats. Wenn die beiden Hashes übereinstimmen, wird nachgewiesen, dass die Zertifizierungsstelle das Zertifikat signiert hat.

Wenn der öffentliche Schlüssel des Unterzeichners nicht gefunden werden kann oder die Hashes nicht übereinstimmen, ist das Zertifikat ungültig.

Das Problem bei diesem System ist, dass Zertifizierungsstellen nicht vollständig zuverlässig sind.

1
Bill Laing

Beachten Sie, dass Google Chrome] die Verwendung von CRL-Listen um den 7. Februar 2012 eingestellt hat, um zu überprüfen, ob ein Zertifikat gültig war. Es scheint, dass alle gültigen Zertifikate in den Browser integriert werden und jedes Mal ein neues Set installiert wird Der Browser wurde aktualisiert. Siehe URL: https://threatpost.com/en_us/blogs/google-stop-using-online-crl-checks-chrome-020712 .

0
Andrew Stern