In Firefox Nightly implementierter verschlüsselter SNI-Standard

Firefox war der erste Browser, der die SNI- Verschlüsselung (TLS Server Name Indication) implementiert hat. Die ESNI-Unterstützung wurde in der neuesten Version von Firefox Nightly eingeführt, in der alle Innovationen eingeführt werden, bevor sie dem Hauptzweig hinzugefügt werden.

Die Bedeutung dieses Standards wurde vor einem Monat vom CloudFare-CDN-Anbieter erörtert . Kurz gesagt, ESNI verschlüsselt Informationen darüber, an welche Domain Sie die Anfrage senden. In Standard-HTTPS sind Header mit Domainnamen nicht verschlüsselt und können vom Anbieter oder einer anderen "Person in der Mitte" angezeigt werden. Jetzt sieht er nur noch die IP-Adresse. Da sich im modernen Internet Hunderte von Domänen unter derselben IP-Adresse befinden können, verbirgt ESNI effektiv Informationen darüber, bei welcher Domäne sich der Benutzer anmeldet.

Daher funktioniert die Namensblockierung nicht mehr und die Internet-Zensur wird sehr kompliziert. Zensoren müssen IP-Adressen blockieren, was eine zweifelhafte Praxis ist. Eine solche Blockierung kann sich auf nicht verwandte Sites auswirken, und ein blockierter Dienst kann leicht (automatisch) zu einer anderen IP-Adresse wechseln.

Warum leuchten Hostnamen in einem regulären TLS-SNI? Tatsache ist, dass der Server vor dem Start der Verschlüsselung wissen muss, auf welche Domäne der Client zugreift, um das erforderliche Zertifikat vorzulegen. Aus diesem Grund wird der Hostname im Klartext übertragen (unter der Abbildung aus dem Cloudflare-Blog ).



In verschlüsseltem SNI (ESNI) wird dieses Problem wie folgt gelöst: Der Client nimmt den öffentlichen Schlüssel des Servers von DNS und verschlüsselt alle Daten damit, bis die TLS-Sitzung eingerichtet ist.


Browserunterstützung für Firefox Nightly bedeutet, dass ESNI mit jeder Site / jedem Anbieter zusammenarbeitet, die / der es unterstützt.

Mozilla-Entwickler erklären, dass es vier Hauptmethoden gibt, um Ihren Browserverlauf zu verlieren:

  1. TLS-Zertifikatnachricht
  2. DNS-Namensauflösung
  3. Server-IP-Adresse
  4. TLS-Servernamenanzeige.

Bisher haben sie gute Fortschritte beim Schließen der ersten beiden Leckagekanäle erzielt: Der neue TLS 1.3-Standard verschlüsselt das Standardserverzertifikat (Kanal 1), und in den letzten Monaten hat Mozilla die Verwendung von DNS über HTTPS zum Schutz des DNS-Verkehrs (Kanal 2) untersucht. Die Testergebnisse sind nicht schlecht, und in den kommenden Monaten wird die Funktion für alle Firefox-Benutzer eingeführt. Eine IP-Adresse bleibt ein Problem, aber in vielen Fällen verwenden mehrere Standorte dieselbe IP-Adresse, sodass der Hauptverlustkanal SNI ist.

Zu einer Zeit wurde die SNI-Technologie (Server Name Indication) genau deshalb eingesetzt, weil sich mehrere Hosts auf derselben IP-Adresse befinden. In diesem Fall teilt das SNI-Feld dem Server mit, zu welchem ​​Host Sie eine Verbindung herstellen möchten, damit er das richtige Zertifikat auswählen kann. Mit anderen Worten, SNI hilft dabei, den Betrieb von TLS-Hosting in großem Maßstab sicherzustellen. Das heißt, diese Funktion wurde aus Sicherheitsgründen eingeführt, und jetzt müssen wir sie als Datenverlustkanal behandeln.

Das SNI-Problem war laut Mozilla-Entwicklern lange bekannt, und es war klar, dass dieses Feld verschlüsselt werden musste. Aber jedes Design, das sie versuchten, beinhaltete einen Kompromiss bei der Leistung. Es gab noch einen weiteren wichtigen Nachteil: Die Tatsache, dass eine bestimmte Site auf ESNI umstellte, war ein Signal dafür, dass sie „etwas zu verbergen hatte“, dh die Zensoren hatten die Möglichkeit, den Verkehr nach ESNI trivial zu filtern. Am Ende wurde beschlossen, den TLS 1.3-Standard ohne ESNI zu veröffentlichen.

Erst Anfang 2018 erkannten die Entwickler, dass es eine ziemlich gute Option gibt: Große Content Distribution Networks (CDNs) hosten viele Sites auf denselben physischen Servern. Wenn sie damit einverstanden sind, alle Clients gleichzeitig an ESNI zu übertragen, ist ESNI plötzlich kein nützliches Signal mehr für einen Angreifer. Auf diese Weise wurde es möglich, ESNI in TLS 1.3 zu implementieren, indem viele Standorte auf einem vorhandenen Satz von Servern massenweise angepasst wurden.

ESNI ist eine völlig neue Technologie, und Firefox ist der erste Browser, der sie implementiert. Um es in Firefox Nightly zu aktivieren, müssen Sie die folgenden Schritte ausführen:

  1. Stellen Sie sicher, dass Sie DNS über HTTPS (DoH) aktiviert haben:
    • about:config
    • Setzen Sie network.trr.mode auf 2

    • Setzen Sie network.trr.uri auf den DoH-Server (z. B. https://mozilla.cloudflare-dns.com/dns-query ).

    • about:config
    • Setzen Sie network.security.esni.enabled auf true


Dadurch sollte ESNI automatisch für jede Site aktiviert werden, die dies unterstützt. Im Moment ist dies bei den großen Hostern und CDNs nur Cloudflare, aber die Firefox-Entwickler hoffen, dass andere Anbieter bald eine Verbindung herstellen. Sie können die Verschlüsselung über diesen Link überprüfen.



In den kommenden Monaten wird Mozilla testen, wie ESNI mit verschiedenen Arten von Firewalls und anderen Netzwerkgeräten interagiert. Wenn Sie die Verschlüsselung aktiviert haben und etwas kaputt gegangen ist, informieren Sie die Entwickler über den Bug-Tracker.





Source: https://habr.com/ru/post/de427563/


All Articles