Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 16849|Antwort: 0

Unvollständige SSL-Zertifikatskette: Zwischenzertifikate sind tatsächlich eine Grube

[Link kopieren]
Veröffentlicht am 15.08.2017 21:08:39 | | |
Ich bin schon einmal in diese Grube getreten. Ich habe vergessen, wie man praktiziert, aber ich erinnere mich noch an dieses Prinzip. Erkläre es grob:


Das Installationspaket des Browsers speichert einige der Root-Zertifikate (öffentliche Schlüssel), denen es vertraut.

Für Sicherheit speichern Zertifikatsaussteller in der Regel die privaten Schlüssel, die diesen Wurzelzertifikaten entsprechen, in einem völlig getrennten Tresor. Diese Root-Privatschlüssel werden im Tresor verwendet, um einige "Zwischenzertifikate" auszustellen, und die privaten Schlüssel dieser Zwischenzertifikate haben die Befugnis, das Zertifikat der nächsten Stufe auszustellen. Diese Zwischenschlüssel werden auf Online-Servern installiert, um Geld durch die Ausstellung von Website-Zertifikaten zu verdienen. Sobald diese Server gehackt wurden, kann der Publisher eine Widerrufsanordnung mit dem physisch isolierten privaten Root-Zertifikats-Privatschlüssel im Tresor erlassen, um das Vertrauen in diese Zwischenzertifikate zu beseitigen, ohne dem Root-Zertifikat des Verlags vollständig misstrauen zu müssen. Unterschreiben Sie ein neues Zwischenzertifikat, und Sie werden ein guter Mensch sein, der Geld verdienen kann.

Hier kommt die Frage.

Der Browser erkennt nur das Root-Zertifikat. Für die Zertifizierung des Zwischenzertifikats musst du (die Website) dein eigenes Zertifikat ausstellen.

Eine korrekt konfigurierte HTTPS-Website sollte die vollständige Zertifikatskette im Zertifikat enthalten.
Verwenden Sie zum Beispiel den Openssl s_client -connect www.wosign.com:443 Befehl, um die eigene Website-Konfiguration von Wosign anzuzeigen.
Der Rest des Inhalts kann ignoriert werden, schauen Sie sich einfach den Absatz zur Zertifikatskette an:
---
Zertifikatskette
0 s:/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Guangdong/1.3.6.1.4.1.311.60.2.1.1=Shenzhen/businessCategory=Privat Organisation/Seriennummer=440301103308619/C=CN/ST=\xE5\xB9\xBF\xE4\xB8\x9C\xE7\x9C\x81/L=\xE6\xB7\xB1\xE5\x9C\xB3\xE5\xB8\x82/postcode=518067/street=\xE6\xB7\xB1\ xE5\x9C\xB3\xE5\xB8\x82\xE5\x8D\x97\xE5\xB1\xB1\xE5\x8C\xBA\xE5\x8D\x97\xE6\xB5\xB7\xE5\xA4\xA7\xE9\x81\x931057\xE5\x8F\xB7\xE7\xA7\x91\xE6\x8A\x80\xE5\xA4\xA7\xE5\ x8E\xA6\xE4\xBA\x8C\xE6\x9C\x9FA\xE6\xA0\x8B502#/O=WoSign\xE6\xB2\x83\xE9\x80\x9A\xE7\x94\xB5\xE5\xAD\x90\xE8\xAE\xA4\xE8\xAF\x81\xE6\x9C\x8D\xE5\x8A\xA1\xE6\x9C\x89\ xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8/CN=www.wosign.com
   i:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA
1 s:/C=CN/O=WoSign CA Limited/CN=WoSign Klasse 4 EV Server CA
   i:/C=CN/O=WoSign CA Limited/CN=Zertifizierungsbehörde von WoSign
2 s:/C=CN/O=WoSign CA Limited/CN=Zertifizierungsstelle von WoSign
   i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Zertifizierungsstelle
---

0, 1 und 2 sind die Seriennummern jeder Zertifikatsebene in der Zertifikatskette. 0 ist das Zertifikat, das von der Website zur Verifizierung verwendet wird. Sein CN sollte dem Domainnamen der Website entsprechen.
Nach jeder Seriennummer bezieht sich die Zeile, die mit s beginnt, auf das Zertifikat, und die mit i beginnende Zeile auf den Inhaber des Zertifikats.

Es ist zu erkennen, dass der CN von 0 einen vermuteten chinesischen Domainnamen und eine englische Domain www.wosign.com enthält. Es wird von WoSign CA Limited/CN=WoSign Class 4 EV Server CA ausgegeben.

Ein Zertifikat von 1 ist der Emittent von 0. 1 selbst wird von einem anderen Zertifikat ausgestellt, der Zertifizierungsstelle von WoSign.
Schauen wir uns die nächste Stufe an, 2. Dort steht, dass die Zertifizierungsstelle von WoSign von StartCom ausgestellt wird (haha, es stellt sich heraus, dass es ein Subunternehmer ist!). )

Nachdem ich es auf so einer Ebene betrachtet habe, sagt der Browser: Oh, ich kenne den Herausgeber, der 2 hat, und er wird im Installationspaket StartCom erwähnt. Korrekte Unterschrift und Validierung, also Vertrauen 2. Dann solltest du auch 1 vertrauen, die von 2 ausgegeben wird, und 0, die von 1 ausgegeben wird. Also kann man dieser Website vertrauen.

--

Wenn die Website jedoch so konfiguriert ist, dass sie nur sich selbst in der CRT-Datei enthält und nicht in einer Zertifikatskette, die vollständig genug ist, um durch die eingebauten Daten des Browsers überprüft zu werden, kann sie vom Browser abgelehnt werden. Zum Beispiel
OpenSSL s_client -connect touko.moe:443
---
Zertifikatskette
0 s:/CN=touko.moe
   i:/C=CN/O=WoSign CA Limited/CN=WoSign CA Kostenloses SSL-Zertifikat G2
---
In einer Gruppe gibt es nur 0. Beschreibung Die touko.moe in Zeile s wird von WoSign CA ausgestellt – kostenloses SSL-Zertifikat G2 in Zeile i. Es ist weg.

Das ist das Erstaunlichste an dieser Falle: Es ist nicht immer so, dass der Browser an diesem Punkt nicht verifiziert. Es gibt zwei Situationen:
A. Ich habe das seit der Installation des Browsers nie mehr gesehen. Dann scheitert die Bestätigung.
B. Wenn der Browser i zuvor gesehen und verifiziert hat, ist die Verifizierung erfolgreich.

Normalerweise geht der Administrator auf die https-Website des Zertifikatsausstellers, um das Zertifikat zu kaufen, und der Browser überprüft es und cachet dann alle erfolgreich verifizierten Zwischenzertifikate, was später Zeit spart. Wenn der Administrator (versehentlich) seine Website konfigurierte und den Test durchsuchte, gab es überhaupt keine Probleme. Weil sein Browser dieses Zwischenzertifikat bereits erkennt.

Viele Nutzer haben jedoch möglicherweise nicht andere ordnungsgemäß konfigurierte Websites besucht, die durch dieses Zwischenzertifikat ausgestellt wurden. Daher scheitert die Validierung, weil sie keinen vertrauenswürdigen Aussteller findet.


Sie ist vergleichbar mit der Abgaskontrolle von Volkswagen-Dieselfahrzeugen. Alles war in Ordnung, als man es überprüfte. Sobald sie draußen sind, geben sie Gift dazu.


EDIT: Wie kann man ...... Wahrscheinlich sollte man bei der Konfiguration des Servers die SSLCertificateChainFile-Einstellung hinzufügen und die Bundle-Datei verwenden, die von der Website des Zertifikatsherausgebers bereitgestellt wird (die Datei enthält eine Reihe von Zwischenzertifikaten, um die Verbindung zwischen deinem Zertifikat und einem Hochvertrauenszertifikat herzustellen).




Vorhergehend:OpenSSL wandelt das PFX-Format in .key- und .crt-Dateien um
Nächster:Android-Browser zeigen an, dass das Zertifikat nicht vertrauenswürdig ist
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com