Default public-resolvers
, wrong results (?) and establishing trust
#2506
Closed
RuRo
started this conversation in
Potential issues
Replies: 1 comment 1 reply
-
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Can you explain, how is the list of servers in
public-resolvers
validated? What is the trust model here?I found this reddit thread discussing trust, but the discussion there revolves around "trusting maintainers" rather than trusting the public DNS servers.
I am asking because I've had multiple incidents where my local
dnscrypt-proxy
would return obviously (?) bogus IP addresses. For example, currentlydig @127.0.0.1 api.github.com
returnscompared to
dig @8.8.8.8 api.github.com
The IP address returned by
dnscrypt-proxy
seems pretty obviously nonsense. As far as I can tell, it's not even in a subnet used by GitHub and there are no reverse DNS records for that IP (unlike the real IP returned by@8.8.8.8
).If I try to connect to this IP anyway, the server tries to use GitHub SSL certificates, but fails because the official GitHub certificates don't match the provided IP:
All this is extremely suspicious. The last two times this was happening, I checked
journalctl -u dnscrypt-proxy2.service
and both timesnextdns-ultralow
was selected as the "Server with the lowest initial latency". A sample size of 2 is kind of low and this might be some bug/transient failure rather than malicious activity, but stuff like this makes me extremely uncomfortable with trusting the defaultpublic-resolvers
list.On a related note, how are the
nolog
andnofilter
flags for the public servers determined? Are we just trusting the DNS provider's words, or is there some mechanism that allows us to check if any DNS server logs and/or censors its requests?Beta Was this translation helpful? Give feedback.
All reactions