Seit ich Firefox auf Version 38 aktualisiert habe, treten beim Senden eines bestimmten Formulars auf der Website https://usercenter.checkpoint.com/ Probleme auf. Der größte Teil der Website funktioniert normal, sendet jedoch beim Öffnen eines Support-Tickets ein Formular (URL im Protokoll unten) ) führt dazu, dass der Firefox die TLS-Aushandlung nicht besteht. Die Fehlerseite von Firefox erklärt fast nichts:
sichere Verbindung fehlgeschlagen
Die Verbindung zum Server wurde beim Laden der Seite zurückgesetzt.
- Die Seite, die Sie anzeigen möchten, kann nicht angezeigt werden, da die Authentizität der empfangenen Daten nicht überprüft werden konnte.
- Bitte wenden Sie sich an die Eigentümer der Website, um sie über dieses Problem zu informieren.
Diesen Fehler melden
Durch die Meldung der Adress- und Zertifikatinformationen für usercenter.checkpoint.com können wir schädliche Websites identifizieren und blockieren. Vielen Dank, dass Sie dazu beigetragen haben, ein sichereres Web zu erstellen!
Fehler in Zukunft automatisch melden Weitere Informationen…
In der Webentwicklerkonsole sehe ich nur Folgendes:
19:58:44.470 This site makes use of a SHA-1 Certificate; it's recommended you use certificates with signature algorithms that use hash functions stronger than SHA-1.1 AjaxCall
19:58:44.589 POST https://usercenter.checkpoint.com/usercenter/portal/js_pane/supportId,CreateServiceRequestId [178ms]
Die erste Zeile ist nur eine Warnung, dass SHA-1 in Zukunft nicht mehr unterstützt wird. Muss ich etwas einschalten, um die Ursache des TLS-Fehlers zu erkennen? Die TLS- und Zertifikatinformationen von der Konsole sind unten aufgeführt:
Ich sehe dort nichts falsch. Aus Verzweiflung habe ich erfolglos versucht, mit den TLS-Parametern zu spielen about:config
:
security.tls.insecure_fallback_hosts
security.tls.unrestricted_rc4_fallback
security.tls.version.fallback-limit
security.tls.version.max
security.tls.version.min
Der Qualy SSL-Test zeigt nichts völlig Falsches: https://www.ssllabs.com/ssltest/analyze.html?d=usercenter.checkpoint.com
In der Red Hat-Wissensdatenbank gibt es einen vielversprechenden Artikel: Firefox 38- und SSL / TLS-Server, die eine TLS-Versionsintoleranz aufweisen , die Lösung jedoch nur zahlenden Kunden zur Verfügung steht.
Ich habe auch die Site-Kompatibilität für Firefox 38 überprüft .
Fragen
- Wie kann ich Fehler beheben, was der Grund für den TLS-Fehler ist?
- Gibt es in Firefox andere vom Benutzer konfigurierbare Whitelists, in denen ich versuchen kann, die Adresse der fehlerhaften Website hinzuzufügen?
- Was könnte der Grund dafür sein, dass der Fehler erst nach dem Senden eines bestimmten Formulars angezeigt wird, während die Konsole anzeigt, dass die POST-Anforderung an denselben Host gesendet wird
usercenter.checkpoint.com
wie die vorherige erfolgreiche Kommunikation?
{Distinguished Name, Serial Number}
macht das Zertifikat eindeutig, sodass es eindeutig ausgewählt werden kann; siehe RFC 4158 . Beachten Sie jedoch die folgenden Vorsichtsmaßnahmen bei der Auswahl, da dies nicht einfach ist. Auch Checkpoint soll nicht das alte G5 - Zertifikat als Teil der Kette senden.Antworten:
Verwenden Sie
openssl s_client
. Es ist ein Schweizer Taschenmesser für solche Dinge. Und verwendenopenssl x509
, um Zertifikate zu sichern.Sie interessieren sich normalerweise für die
{Issuer, Subject}
Paare in der Kette wie folgt:Beachten Sie, wie der Aussteller am Server zum Betreff des nächsthöheren Zertifikats wird. Gutmann liefert das folgende Diagramm, um es in seinem Buch Engineering Security zu beschreiben :
Oben ist das CA-Stammverzeichnis selbstsigniert, und das Problem und der Betreff sind identisch. Wenn es ein Level 3 gäbe, wäre es:
Aber normalerweise sieht man es nicht in einer Kette, weil man ihm vertrauen muss. Zu den Anforderungen für den Vertrauensanker gehört auch, dass Sie ihn bereits haben, um sicherzustellen, dass er nicht manipuliert wird.
Bei der Verwendung von Betreff- und Ausstellernamen werden sogenannte Distinguished Names verwendet . Der andere Weg, eine Kette zu bilden, ist mit
KEYIDs
. Sie werden es manchmal über die Betreffschlüsselkennung (SKI) und die Berechtigungsschlüsselkennung (AKI) sehen. Die Schlüsselkennungen sind nur Fingerabdrücke eines verdauten öffentlichen Schlüssels.Sie finden Informationen zu Distinguished Names in Standards wie RFC 4514 ; und Verwendung von KEYIDs in Standards wie RFC 4518 , die sich mit der Pfadbildung befassen .
Es scheint, dass das Problem beim Browser liegt (siehe unten). Es sieht so aus, als würde der
Class 3 Public Primary Certification Authority
Fingerabdruck fehlena1 db 63 93 91 6f 17 e4 18 55 09 40 04 15 c7 02 40 b0 ae 6b
.Wenn ich Symantec Root Certifcates besuche und die öffentliche primäre Zertifizierungsstelle der Klasse 3 herunterlade , kann ich einen Pfad für die Validierung erstellen (siehe
Verify return code: 0 (ok)
unten).Sie sollten
Class 3 Public Primary Certification Authority
den vertrauenswürdigen Stammspeicher Ihres Browsers herunterladen und installieren . Oder stellen Sie fest, warum der Browser ihn nicht zum Erstellen des Pfads verwendet (siehe weiter).Mozilla und Firefox sprechen
Class 3 Public Primary Certification Authority
in einem Blogbeitrag über das Auslaufen von Zertifikaten mit 1024-Bit-RSA-Schlüsseln . Laut dem Beitrag haben sie dieses CA-Zertifikat seit Firefox 32 abgelehnt. Ich kann sie nicht wirklich bemängeln, da diese Schlüssel langfristig für CA-Signaturvorgänge verwendet werden und sie "stärkere" Parameter benötigen, da sie 10 bis 30 Jahre leben müssen (buchstäblich).Checkpoint muss ein neues Serverzertifikat erhalten, das unter einem Zertifikat (einer Kette) mit zeitgemäßen Parametern ausgestellt wird, z. B. einer Zertifizierungsstelle mit einem 4096-Bit-RSA-Modul und SHA-256. Oder eine untergeordnete Zertifizierungsstelle mit einem 2048-Bit-RSA-Modul und SHA-256 ...
(Siehe auch, was bei mir unten nicht funktioniert hat).
Hier ist ein Beispiel für die Validierung des Serverzertifikats mit der öffentlichen primären Zertifizierungsstelle der Klasse 3 unter Verwendung von OpenSSLs
s_client
:Früher sagte ich „An der Spitze der CA - Root ist selbst unterzeichnet, und das Thema und das Thema ist die gleiche“ . Hier ist ein Speicherauszug dieses selbstsignierten CA-Stamms, in dem Betreff und Aussteller identisch sind. Es zeigt auch die 1024-Bit-Module und sha1WithRSAEncryption.
Vorhin sagte ich: "Checkpoint muss ein neues Serverzertifikat erhalten, das unter einem Zertifikat (einer Kette) mit zeitgemäßen Parametern ausgestellt wird, z. B. eine Zertifizierungsstelle mit einem 4096-Bit-RSA-Modul und SHA-256. Oder eine untergeordnete Zertifizierungsstelle mit einem 2048-Bit-RSA-Modul und SHA-256 ... " .
Folgendes hat bei mir nicht funktioniert: Verwurzeln oder Verankern des Vertrauens in die stärkere untergeordnete Zertifizierungsstelle
VeriSign Class 3 Public Primary Certification Authority - G5
und nicht in die schwächere 1024-Bit-Stammzertifizierungsstelle.BEARBEITEN : Dies liegt an einem Fehler in OpenSSL 1.0.2a und darunter. Es wurde in OpenSSL 1.0.2b behoben. Siehe Erwartetes Verhalten zur Überprüfung, wenn ein Untergebener in einer Kette zu einem selbstsignierten Stamm befördert wird.
Das praktische Problem besteht darin, dass Symantec ein Zertifikat mit demselben Namen und demselben öffentlichen Schlüssel erneut ausstellt, sodass sich der Distinguished Name , der Subject Key Identifier und der Authority Key Identifier nicht geändert haben. aber nur die Seriennummer ändern .
Ich konnte es unten aufgrund der unterschiedlichen Seriennummern zwischen dem in der Kette gesendeten Zertifikat und dem von der Symantec-Site heruntergeladenen Zertifikat erkennen. Dann stellte sich heraus, dass das neu ausgestellte Zertifikat von einer untergeordneten Zertifizierungsstelle in eine Stammzertifizierungsstelle geändert wurde.
-showcerts
Mits_client
OpenSSLs können Sie die Zertifikate in der Kette anzeigen:Normalerweise kopiere ich als nächstes ein PEM-codiertes Zertifikat in der Kette in eine Zwischenablage und verwende es dann, um
pbpaste
es in ein Terminal einzufügen und an OpenSSLs weiterzuleitenx509
. Zum Beispiel werden hier Level 2VeriSign Class 3 Public Primary Certification Authority - G5
als Teil der Kette gesendet:quelle
Dies wird behoben, indem Sie about: config in die Adressleiste eingeben und dann "Ich werde vorsichtig sein, ich verspreche es!" Auswählen. Taste. Doppelklicken Sie zu diesem Zeitpunkt auf die Option security.tls.insecure_fallback_hosts und fügen Sie die Adresse hinzu, auf die Sie zugreifen möchten.
Ich musste das "https: \" (beide Backslashes setzen, Superuser hat meinen zweiten entfernt) von meiner Adresse entfernen, damit es funktioniert, aber Ihre Ergebnisse können variieren, also versuchen Sie es vielleicht mit beiden.
Dies ist ab Firefox Version 43.0.1 korrekt.
quelle
security.tls.insecure_fallback_hosts
war das nicht der Fall. Später in einem Kommentar schrieb ein, dass das Problem auf der Serverseite war. Der Server hat die Verbindungen geschlossen.Wenn Sie sich die öffentliche Primärzertifizierungsstelle
openssl s_client ... -showcerts
der VeriSign-Klasse 3 - G5 in der Kette mit und die öffentliche Primärzertifizierungsstelle der VeriSign-Klasse 3 - G5 ansehen, die zum Download zur Verfügung gestellt werden, werden Sie feststellen, dass es sich um unterschiedliche Zertifikate handelt. Daher hat Verisign ein Zertifikat mit demselben eindeutigen Namen und demselben öffentlichen Schlüssel erneut ausgestellt .Die Kettenversion der öffentlichen Primärzertifizierungsstelle der VeriSign-Klasse 3 - G5 hat die folgende Seriennummer und ist nicht selbstsigniert (beachten Sie, dass Betreff und Emittent unterschiedlich sind):
Die von Symantec Root-Zertifikaten der VeriSign Class 3 Public Primary Certification Authority - G5 heruntergeladene Version hat die folgende Seriennummer und ist selbstsigniert (beachten Sie, dass Betreff und Aussteller identisch sind):
Hier gibt es wirklich nur einen Fix.
Checkpoint sollte das Senden der alten Version von VeriSign Class 3 Public Primary Certification Authority - G5 untergeordnet in der Kette beenden .
Dies liegt daran, dass in der Praxis diese Überprüfungspfade und die Auswahl von Zertifikaten verwirrt werden, da das alte G5-Zertifikat und das neue G5-Zertifikat zu ähnlich sind. Sie sind sich zu ähnlich, da sie denselben eindeutigen Namen und denselben Betreffschlüssel / Berechtigungsschlüssel verwenden .
Theoretisch könnten Sie das alte G5-Zertifikat aus der vom Server gesendeten Kette extrahieren und in den Mozilla Trust Store stellen. Ich vermute jedoch stark, dass Benutzeragenten, die versuchen, einen Pfad zu erstellen, verwirrt werden, da sich nur die Seriennummer geändert hat.
Um die Verwirrung zu verstehen, schauen Sie sich RFC 4158 an und erfahren Sie, wie Sie ein Zertifikat auswählen. Ein Weg ist das
{Distinguished Name, Serial Number}
Tupel. Aber ein Zertifikat prüft nicht die Seriennummer des Emittenten enthalten. Es enthält nur den Distinguished Name und die Berechtigungsschlüssel-ID .In Abschnitt 3.5.12 Matching Key Identifiers (KIDs) wird Folgendes angegeben:
Aber es ist nicht erforderlich, und es fehlt in der Warez Symantec zur Verfügung gestellt. Um es aus erster Hand zu sehen, werfen Sie das in der Kette gesendete Level 1-Zwischenprodukt ab. Es heißt VeriSign Class 3 Secure Server CA - G3 . Beachten Sie, dass es eine Berechtigungsschlüssel-ID , aber keine Seriennummer hat :
quelle