Mám dojem, že se Mozilla s DoH trošku chytla do pasti: v podnikových sítích (a domácích, za jistých okolností) to vadí, ale když povolí zablokování DoH, tak první, kdo to udělá, budou ti, kvůli kterým to celé vzniklo.
Druhá věc jsou politiky: multipatfomně to lze přes adresář distribution a definice v JSON, ovšem na Windows dává přednost Group Policy a není jasné, za jakých okolností. Zatím orientační pokus ukazuje na to, že když mám něco (cokoliv?) pro Firefox v GroupPolicy, tak se na distribution/policies.json vykašle.
Zatím mám experimentálně:
{ "policies": { "Certificates": { "ImportEnterpriseRoots": true }, "DNSOverHTTPS": { "Enabled": false } } }
Zítra další pokus se strojem v doméně.
Pokud nechcete hledat, about:policies zobrazí, co Firefox akceptoval (a vnutil uživateli).
co udela s DNS dotazy server nekde v tramtarii je otazka (ze by je jako zpenezitelny zdroj chovani uzivatelu ci alespon anonymizovanych statistik nevyuzil je asi dost nepravdepodobne).
Pokud by dotazy smerovaly na DNS server ISP, tak ten je alespon muze pouzit k hledani problemu s pripojenim, pripadne odhalit zavirovaneho klienta apod...
> Profiluje se jako prohlížeč, kterému záleží na soukromí uživatelů.
A preto ignoruje resolver, ktory som nakonfiguroval a ktory je pod mojou kontrolou, a namiesto toho posiela DNS requesty niekam do cloudu.
Okrem toho, to co robi, je mimoriadne nebezpecny precedens: tym, ze normalizuje privatny DNS v aplikacii, otvara dvere inym aplikaciam, aby tiez ignorovali system a robili si, co chceli. Vobec ma neprekvapi, ked casom budeme mat malware, ktory tieto moznosti vyuzije tiez.
Široké publikum nezajímá to, co nevidí. Bezpečnost berou všichni jako samozřejmost.
1. Tvrzení trpaslíka Firefoxa proti gigantovi Google Chromu, že je bezpečnější, nebude padat na úrodnou půdu. Odborníci či zkušení laikové tento boj nerozhodnou - to se ví už od dob dominace Internet Exploreru, kdy odborníci byli proti, přesto veřejnosti to bylo natolik šumák, že IE dál používala.
2. DNS-over-HTTPS může přinést místní chyby resolvování. Otevřete Firefox a nepojede nějaký web. Otevřete Chrome, Edge, Operu, ..., a pojede to. Jaký dojem si odnese uživatel?
3. Bezpečáci si FF také nezvolí. Překážkou je, že se nedá ovládat přes politiky domény (GPO), to mu brání usídlit se aspoň v korporacích. (Nemluvě o tom, že v této sféře jde především o bezpečnostní certifikace, málokterý admin si dovolí "svým vlastním úsudkem" něco rozhdnout).
Takže snaha FF může být technicky zajímavá, ale "z obchodního hlediska" působí trochu rozpačitě.
Ano, taky mi to nepřijde jako šťastný nápad. Kdyby to bylo opt-in, zapnuli by si to jen ti, kteří by to ocenili. Praktický přínos by byl také podobný – ostatně dnes bez explicitního vynucení stejně půjde DoH obejít aktivní blokací kanárkové domény, takže defaultně řešíme jen pasivního útočníka.
Ve výsledku mi to přijde jako vysoká cena zaplacená za minimální přínos.
Zdroj jsou první čtyři odkazy, které mi vrátil Google na dotaz „browser statistic“: StatCounter Global Stats, W3Counter Global Web Stats, W3CSchools Browser Statistics a Usage share of web browsers na Wikipedii. K těm 10 % to může šplhat, pokud se berou v úvahu jen desktopové prohlížeče, globálně jsou to spíš ta 4 %, možná 5. Ano, v kontextu diskuse by bylo správnější použít těch 10 %, ale „neskutečně válcuje trh“ neplatí ani o 5% prohlížeči ani o 10%, když vedoucí Chrome má 2/3.
No, tak další pokusy v doméně:
1) V GPO jsem DoH našel, ale funguje to trochu jinak: když to chci zakázat, tam musím dát "enable" a "don't allow changes" - "disable" na politiku naopak povolí výchozí nastavení prohlížeče
2) když je počítač v doméně, tak na policies.json Firefox zcela kašle a musí se použít GPO
3) soubor s GPO template obsahuje i adresář pro macOS, takže to nejspíš jde použít i tam (nemám s tím zkušenost), pro Linux zbývá ten .json
Jak vypnout automatické použití Mozilla DoH v lokální síti:
options { response-policy { zone mozilla.rpz; } break-dnssec yes; }; zone mozilla.rpz { type master; file "mozilla.rpz.db"; allow-query { localhost; }; };
a mozilla.rpz.db
bude obsahovat:
$TTL 604800 $ORIGIN mozilla.rpz. @ IN SOA localhost. root.localhost. (1 604800 86400 2419200 604800 ) @ IN NS localhost. use-application-dns.net CNAME .Stejnou RPZ zónu můžete použít i pro PowerDNS Recursor (a v blízké době i Unbound)
local-zone: "use-application-dns.net." always_nxdomain
nebo local-zone use-application-dns.net static
do konfiguracepolicy.add(policy.suffix(policy.DENY, {todname('use-application-dns.net.')}))
do konfigurace
local uadns = newDN('use-application-dns.net') function preresolve(dq) if uadns == dq.qname then dq.rcode = pdns.NXDOMAIN return true end return false end
server=/use-application-dns.net/nebo si počkáte na další verzi, kde to bude vypnuto standardně.
Výsledek pro A
query pak musí vypadat takto:
ondrej@lo:~$ dig IN A use-application-dns.net ; <<>> DiG 9.11.8 <<>> IN A use-application-dns.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 45358 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;use-application-dns.net. IN A ;; Query time: 2 msec ;; SERVER: 2001:1ae9:100:b000:7c12:6d04:ec1d:1d70#53(2001:1ae9:100:b000:7c12:6d04:ec1d:1d70) ;; WHEN: Tue Sep 10 10:05:03 CEST 2019 ;; MSG SIZE rcvd: 52
a pro AAAA
takto:
ondrej@lo:~$ dig IN AAAA use-application-dns.net ; <<>> DiG 9.11.8 <<>> IN AAAA use-application-dns.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 47159 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;use-application-dns.net. IN AAAA ;; Query time: 2 msec ;; SERVER: 2001:1ae9:100:b000:7c12:6d04:ec1d:1d70#53(2001:1ae9:100:b000:7c12:6d04:ec1d:1d70) ;; WHEN: Tue Sep 10 10:05:08 CEST 2019 ;; MSG SIZE rcvd: 52
Pokud je ten počítač pod přímou kontrolou, tak není co řešit (Firefox se dokonce přímo zeptá než default zapne). Ty NXDOMAIN mají za cíl změnit tento default pro celou síť. Návody pro různé implementace: https://github.com/agrover/global-canary/pull/3
10. 9. 2019, 16:30 editováno autorem komentáře