Wie DNSCrypt das Problem abgelaufener Zertifikate durch die Einführung einer 24-Stunden-Gültigkeitsdauer löste

Wie DNSCrypt das Problem abgelaufener Zertifikate durch die Einführung einer 24-Stunden-Gültigkeitsdauer löste

In der Vergangenheit verfielen Zertifikate oft, weil sie manuell erneuert werden mussten. Die Leute haben einfach vergessen, es zu tun. Mit der Einführung von Let's Encrypt und dem automatischen Update-Verfahren scheint das Problem gelöst zu sein. Aber neu Firefox-Geschichte zeigt, dass es tatsächlich immer noch relevant ist. Leider laufen Zertifikate weiterhin ab.

Falls Sie die Geschichte verpasst haben: Am 4. Mai 2019 um Mitternacht funktionierten fast alle Firefox-Erweiterungen plötzlich nicht mehr.

Wie sich herausstellte, war der massive Fehler darauf zurückzuführen, dass Mozilla Das Zertifikat ist abgelaufen, das zum Signieren von Erweiterungen verwendet wurde. Daher wurden sie als „ungültig“ markiert und nicht überprüft (technische Details). In den Foren wurde als Workaround empfohlen, die Überprüfung der Erweiterungssignatur zu deaktivieren about: config oder Ändern der Systemuhr.

Mozilla hat schnell den Firefox 66.0.4-Patch veröffentlicht, der das Problem mit einem ungültigen Zertifikat behebt und alle Erweiterungen wieder normalisiert. Die Entwickler empfehlen die Installation und nicht benutzen Es gibt keine Problemumgehungen zum Umgehen der Signaturüberprüfung, da diese möglicherweise mit dem Patch in Konflikt stehen.

Diese Geschichte zeigt jedoch einmal mehr, dass der Ablauf von Zertifikaten auch heute noch ein drängendes Thema ist.

In diesem Zusammenhang ist es interessant zu sehen, wie die Protokollentwickler diese Aufgabe auf recht originelle Weise gelöst haben DNSCrypt. Ihre Lösung lässt sich in zwei Teile gliedern. Zum einen handelt es sich dabei um kurzfristige Zertifikate. Zweitens: Warnung der Benutzer vor dem Ablauf langfristiger Abonnements.

DNSCrypt

Wie DNSCrypt das Problem abgelaufener Zertifikate durch die Einführung einer 24-Stunden-Gültigkeitsdauer lösteDNSCrypt ist ein Protokoll zur Verschlüsselung des DNS-Verkehrs. Es schützt die DNS-Kommunikation vor Abhörvorgängen und MiTM und ermöglicht Ihnen außerdem die Umgehung der Blockierung auf DNS-Abfrageebene.

Das Protokoll umschließt den DNS-Verkehr zwischen Client und Server in einem kryptografischen Konstrukt und arbeitet über die Transportprotokolle UDP und TCP. Um es nutzen zu können, müssen sowohl der Client als auch der DNS-Resolver DNSCrypt unterstützen. Beispielsweise ist es seit März 2016 auf seinen DNS-Servern und im Yandex-Browser aktiviert. Mehrere andere Anbieter haben ebenfalls Unterstützung angekündigt, darunter Google und Cloudflare. Leider gibt es nicht viele davon (152 öffentliche DNS-Server sind auf der offiziellen Website aufgeführt). Aber das Programm dnscrypt-proxy kann manuell auf Linux-, Windows- und MacOS-Clients installiert werden. es gibt auch Serverimplementierungen.

Wie DNSCrypt das Problem abgelaufener Zertifikate durch die Einführung einer 24-Stunden-Gültigkeitsdauer löste

Wie funktioniert DNSCrypt? Kurz gesagt: Der Client nimmt den öffentlichen Schlüssel des ausgewählten Anbieters und verwendet ihn zur Überprüfung seiner Zertifikate. Die kurzfristigen öffentlichen Schlüssel für die Sitzung und die Cipher-Suite-ID sind bereits vorhanden. Clients werden aufgefordert, für jede Anfrage einen neuen Schlüssel zu generieren, und Server werden aufgefordert, Schlüssel zu ändern alle 24 Stunden. Beim Austausch von Schlüsseln wird der X25519-Algorithmus verwendet, zum Signieren - EdDSA, zur Blockverschlüsselung - XSalsa20-Poly1305 oder XChaCha20-Poly1305.

Einer der Protokollentwickler Frank Denis schreibtDieser automatische Austausch alle 24 Stunden löste das Problem abgelaufener Zertifikate. Grundsätzlich akzeptiert der dnscrypt-proxy-Referenzclient Zertifikate mit beliebiger Gültigkeitsdauer, gibt jedoch eine Warnung „Die dnscrypt-proxy-Schlüsselperiode für diesen Server ist zu lang“ aus, wenn sie länger als 24 Stunden gültig ist. Gleichzeitig wurde ein Docker-Image veröffentlicht, in dem ein schneller Wechsel von Schlüsseln (und Zertifikaten) implementiert wurde.

Erstens ist es aus Sicherheitsgründen äußerst nützlich: Wenn der Server kompromittiert wird oder der Schlüssel verloren geht, kann der Datenverkehr von gestern nicht entschlüsselt werden. Der Schlüssel hat sich bereits geändert. Dies wird wahrscheinlich ein Problem für die Umsetzung des Jarowaja-Gesetzes darstellen, das Anbieter dazu zwingt, den gesamten Datenverkehr, einschließlich des verschlüsselten Datenverkehrs, zu speichern. Dies bedeutet, dass es später bei Bedarf entschlüsselt werden kann, indem der Schlüssel von der Website angefordert wird. In diesem Fall kann die Site dies jedoch einfach nicht bereitstellen, da sie kurzfristige Schlüssel verwendet und alte löscht.

Aber am wichtigsten ist, schreibt Denis, dass kurzfristige Schlüssel Server dazu zwingen, vom ersten Tag an eine Automatisierung einzurichten. Wenn der Server eine Verbindung zum Netzwerk herstellt und die Schlüsseländerungsskripte nicht konfiguriert sind oder nicht funktionieren, wird dies sofort erkannt.

Wenn die Automatisierung alle paar Jahre die Schlüssel ändert, kann man sich nicht mehr darauf verlassen und man kann den Zertifikatsablauf vergessen. Wenn Sie die Schlüssel täglich wechseln, wird dies sofort erkannt.

Gleichzeitig spielt es bei normaler Automatisierungskonfiguration keine Rolle, wie oft die Schlüssel geändert werden: jedes Jahr, vierteljährlich oder dreimal täglich. Wenn alles länger als 24 Stunden funktioniert, funktioniert es ewig, schreibt Frank Denis. Ihm zufolge hat die Empfehlung einer täglichen Schlüsselrotation in der zweiten Version des Protokolls zusammen mit einem vorgefertigten Docker-Image, das diese implementiert, effektiv die Anzahl der Server mit abgelaufenen Zertifikaten reduziert und gleichzeitig die Sicherheit verbessert.

Dennoch haben sich einige Anbieter aus technischen Gründen dazu entschieden, die Gültigkeitsdauer des Zertifikats auf mehr als 24 Stunden festzulegen. Dieses Problem wurde mit ein paar Codezeilen in dnscrypt-proxy weitgehend gelöst: Benutzer erhalten 30 Tage vor Ablauf des Zertifikats eine Informationswarnung, 7 Tage vor Ablauf eine weitere Nachricht mit einem höheren Schweregrad und eine kritische Nachricht, wenn das Zertifikat noch übrig ist Gültigkeit. Weniger als 24 Stunden. Dies gilt nur für Zertifikate, die zunächst eine lange Gültigkeitsdauer haben.

Diese Nachrichten geben Benutzern die Möglichkeit, DNS-Betreiber über den bevorstehenden Ablauf des Zertifikats zu informieren, bevor es zu spät ist.

Wenn vielleicht alle Firefox-Benutzer eine solche Nachricht erhalten würden, würde wahrscheinlich jemand die Entwickler informieren und sie würden nicht zulassen, dass das Zertifikat abläuft. „Ich kann mich an keinen einzigen DNSCrypt-Server auf der Liste der öffentlichen DNS-Server erinnern, dessen Zertifikat in den letzten zwei oder drei Jahren abgelaufen ist“, schreibt Frank Denis. In jedem Fall ist es wahrscheinlich besser, Benutzer zuerst zu warnen, als Erweiterungen ohne Vorwarnung zu deaktivieren.

Wie DNSCrypt das Problem abgelaufener Zertifikate durch die Einführung einer 24-Stunden-Gültigkeitsdauer löste


Source: habr.com

Kommentar hinzufügen