Mozilla implementiert CRLite, um nach problematischen TLS-Zertifikaten zu suchen

Mozilla-Unternehmen kündigte die über den Beginn des Testens eines neuen Mechanismus zur Erkennung widerrufener Zertifikate in nächtlichen Firefox-Builds - CRLite. Mit CRLite können Sie eine effektive Zertifikatssperrprüfung anhand einer Datenbank organisieren, die auf dem System des Benutzers gehostet wird. Mozillas CRLite-Implementierung herausgegeben von unter der kostenlosen MPL 2.0-Lizenz. Der Code zur Generierung der Datenbank- und Serverkomponenten wird eingeschrieben Python Los geht. Zu Firefox hinzugefügte Client-Teile zum Lesen von Daten aus der Datenbank bereit in Rust-Sprache.

Zertifikatsüberprüfung mittels externer Dienste auf Basis des noch verwendeten Protokolls OCSP (Online Certificate Status Protocol) erfordert einen garantierten Netzwerkzugriff, führt zu einer erheblichen Verzögerung bei der Anforderungsverarbeitung (durchschnittlich 350 ms) und weist Probleme bei der Gewährleistung der Vertraulichkeit auf (OCSP-Server, die auf Anforderungen antworten, erhalten Informationen über bestimmte Zertifikate, anhand derer beurteilt werden kann, ob was ist). Websites, die der Benutzer öffnet). Es besteht auch die Möglichkeit einer lokalen Prüfung gegen Listen CRL (Certificate Revocation List), aber der Nachteil dieser Methode ist die sehr große Größe der heruntergeladenen Daten – derzeit belegt die Datenbank der widerrufenen Zertifikate etwa 300 MB und ihr Wachstum geht weiter.

Um Zertifikate zu blockieren, die von Zertifizierungsstellen kompromittiert und widerrufen wurden, nutzt Firefox seit 2015 eine zentrale Blacklist OneCRL in Kombination mit einem Anruf beim Service Google Safe Browsing um mögliche böswillige Aktivitäten zu identifizieren. OneCRL, so CRLSets fungiert in Chrome als Zwischenverbindung, die CRL-Listen von Zertifizierungsstellen zusammenfasst und einen einzigen zentralen OCSP-Dienst zur Prüfung widerrufener Zertifikate bereitstellt, wodurch es möglich wird, Anfragen nicht direkt an Zertifizierungsstellen zu senden. Trotz intensiver Bemühungen zur Verbesserung der Zuverlässigkeit des Online-Zertifikatsüberprüfungsdienstes zeigen Telemetriedaten, dass bei mehr als 7 % der OCSP-Anfragen eine Zeitüberschreitung auftritt (vor einigen Jahren lag dieser Wert bei 15 %).

Wenn eine Überprüfung über OCSP nicht möglich ist, betrachtet der Browser das Zertifikat standardmäßig als gültig. Der Dienst ist möglicherweise aufgrund von Netzwerkproblemen und Einschränkungen in internen Netzwerken nicht verfügbar oder wird von Angreifern blockiert. Um die OCSP-Prüfung während eines MITM-Angriffs zu umgehen, blockieren Sie einfach den Zugriff auf den Prüfdienst. Um solche Angriffe teilweise zu verhindern, wurde eine Technik implementiert Ein Muss, mit der Sie einen OCSP-Zugriffsfehler oder eine OCSP-Nichtverfügbarkeit als Problem mit dem Zertifikat behandeln können. Diese Funktion ist jedoch optional und erfordert eine spezielle Registrierung des Zertifikats.

Mit CRLite können Sie vollständige Informationen zu allen widerrufenen Zertifikaten in einer leicht aktualisierbaren Struktur mit einer Größe von nur 1 MB konsolidieren, wodurch es möglich ist, eine vollständige CRL-Datenbank auf der Clientseite zu speichern.
Der Browser kann seine Kopie der Daten über widerrufene Zertifikate täglich synchronisieren und diese Datenbank ist unter allen Bedingungen verfügbar.

CRLite kombiniert Informationen von Zertifikatstransparenz, ein öffentliches Protokoll aller ausgestellten und widerrufenen Zertifikate sowie die Ergebnisse des Scannens von Zertifikaten im Internet (verschiedene CRL-Listen von Zertifizierungsstellen werden gesammelt und Informationen zu allen bekannten Zertifikaten werden aggregiert). Die Daten werden kaskadiert verpackt Bloom-Filter, eine probabilistische Struktur, die eine falsche Erkennung eines fehlenden Elements ermöglicht, aber das Weglassen eines vorhandenen Elements ausschließt (d. h. mit einer bestimmten Wahrscheinlichkeit ist ein falsch positives Ergebnis für ein korrektes Zertifikat möglich, aber gesperrte Zertifikate werden garantiert identifiziert).

Um falsch positive Ergebnisse zu vermeiden, hat CRLite zusätzliche Korrekturfilterstufen eingeführt. Nach der Generierung der Struktur werden alle Quelldatensätze durchsucht und etwaige Fehlalarme identifiziert. Basierend auf den Ergebnissen dieser Prüfung wird eine zusätzliche Struktur erstellt, die auf die erste kaskadiert wird und die resultierenden Fehlalarme korrigiert. Der Vorgang wird wiederholt, bis Fehlalarme während der Kontrollprüfung vollständig eliminiert sind. Normalerweise reicht die Erstellung von 7–10 Ebenen aus, um alle Daten vollständig abzudecken. Da der Zustand der Datenbank aufgrund der periodischen Synchronisierung geringfügig hinter dem aktuellen Zustand der CRL zurückbleibt, erfolgt die Prüfung neuer Zertifikate, die nach der letzten Aktualisierung der CRLite-Datenbank ausgestellt wurden, mithilfe des OCSP-Protokolls, einschließlich des OCSP-Heften (Eine von einer Zertifizierungsstelle zertifizierte OCSP-Antwort wird vom Server, der die Site bedient, beim Aushandeln einer TLS-Verbindung übermittelt.)

Mozilla implementiert CRLite, um nach problematischen TLS-Zertifikaten zu suchen

Mithilfe von Bloom-Filtern konnte der Dezember-Informationsausschnitt von WebPKI, der 100 Millionen aktive Zertifikate und 750 widerrufene Zertifikate umfasst, in eine Struktur mit einer Größe von 1.3 MB gepackt werden. Der Strukturgenerierungsprozess ist recht ressourcenintensiv, wird jedoch auf dem Mozilla-Server durchgeführt und der Benutzer erhält ein fertiges Update. In binärer Form erfordern die bei der Generierung verwendeten Quelldaten beispielsweise etwa 16 GB Speicher, wenn sie im Redis-DBMS gespeichert werden, und in hexadezimaler Form benötigt ein Dump aller Zertifikatsseriennummern etwa 6.7 ​​GB. Der Prozess der Aggregation aller widerrufenen und aktiven Zertifikate dauert etwa 40 Minuten, und der Prozess der Generierung einer Paketstruktur basierend auf dem Bloom-Filter dauert weitere 20 Minuten.

Mozilla stellt derzeit sicher, dass die CRLite-Datenbank viermal täglich aktualisiert wird (nicht alle Updates werden an Clients geliefert). Die Generierung von Delta-Updates wurde noch nicht implementiert – die Verwendung von bsdiff4, das zur Erstellung von Delta-Updates für Releases verwendet wird, bietet keine ausreichende Effizienz für CRLite und die Updates sind unverhältnismäßig groß. Um diesen Nachteil zu beseitigen, ist geplant, das Format der Speicherstruktur zu überarbeiten, um unnötiges Neuaufbauen und Löschen von Ebenen zu vermeiden.

CRLite arbeitet derzeit in Firefox im passiven Modus und wird parallel zu OCSP verwendet, um Statistiken über den korrekten Betrieb zu sammeln. CRLite kann in den Hauptscanmodus geschaltet werden; dazu müssen Sie in about:config den Parameter security.pki.crlite_mode = 2 setzen.

Mozilla implementiert CRLite, um nach problematischen TLS-Zertifikaten zu suchen

Source: opennet.ru

Kommentar hinzufügen