Ech, ECH



Twórcy przeglądarek w końcu ogarnęli się z kluczowym elementem ukrywania z jakimi stronami się łączymy, czyli prywatność++. Bo o ile wymieniane dane są szyfrowane przez TLS, to zanim to nastąpi przeglądarka WWW musi powiedzieć z jaką stroną chce gadać. Te informacje są (były) widoczne dla wszystkich. Taki niezaufany obserwator może nie wiedzieć co robimy, ale z samego faktu połączenia z http://szybkiewypo.pl może coś tam wywnioskować.

Ta nieszyfrowana informacja nazywa się Server Name Indicator (SNI). Jej zachowująca prywatność wersja to Encrypted SNI (ESNI), które przez kilka lat się nie przyjęło. Ostatnio jednak udało się dopracować standard i jako Encrypted Client Hello (ECH) zostało włączone w popularnych przeglądarkach.

Działanie można sprawdzić na https://tls-ech.dev/. Uzbrojony w Chrome 117.0.5938.149 kliknąłem i…

You are not using ECH. :(

Co jest, powinno działać! Sprawdziłem #encrypted-client-hello we flagsach – włączone. Inna przeglądarka? W Mozzarella Firefox 118.0.1 tak samo nie działa. Podejrzane.

Zacząłem trochę researchu, czytania. I znalazłem dwie poszlaki. W opisie ficzera w Chrome mamy taki zapis:

While supported on all platforms, ECH requires keys fetched via DNS in the new HTTPS record. Chrome can currently fetch the HTTPS record over DoH and over our built-in DNS resolver. As of writing, the built-in DNS resolver is not yet enabled.

Podobne z Firefoksem:

No, but DoH is required by Firefox to get ESNI going so please first make sure you have that enabled!

DoH to oczywiście DNS-over-HTTPS. Spoko funkcjonalność, ale akurat mam ją wyłączoną w mojej domowej sieci. Wprowadziłem blokowanie reklam na poziomie lokalnego DNS (bazy z PiHole). Szkoda by było, jakby kogoś z domowników czy gości tego nie objęło, bo przeglądarka postanowiła rozwiązywać nazwy na własną rekę.

Tak więc w obecnych implementacjach przeglądarki używają ECH jedynie w powiązaniu z DoH. Moim zdaniem niesłusznie. Nie ufają lokalnym DNSom, które mogą być spoko. Pozwalają jednocześnie na podsłuchiwanie negocjacji TLS gdzieś „po drodze”. Ignorują inne bezpieczne sposoby rozwiązywania nazw (DNS-over-TLS, DNS-over-TOR itp).

Czynią mnie smutnym.

Comments


Comments powered by Disqus