I know that for many ISPs around here (Telekom especially), setting your DNS doesn't have any effect unless you run a local resolver (or DNScrypt).
More info and how to test if you are affected by this: https://news.ycombinator.com/item?id=13037858
That's why DNSSEC without DANE seems pointless (and with DANE/TLS seems redundant).
Inserting yourself between a client and a server is way more difficult.
Note that from the point of traffic analysis, you still don't want your TLS traffic to go through a third party.
So if your thread model mostly includes nation-state attackers then DNSSEC is only useful for DANE. If you also want to secure a lookup of, for example, pool.ntp.org then DNSSEC for A and AAAA records also makes sense.
The fun part begins when you realize you can't validate DNSSEC because your time drifts too much. So how do you get your initial sync from pool.ntp.org with DNSSEC validation enabled?
For embedded systems that don't have a battery backed real time clock and want to do local DNSSEC validation this is indeed an issue.
There are plenty of hacks to make it work, but no real standard.
DANE isn't severable from DNSSEC; it relies on the DNSSEC PKI to function. Unfortunately, that PKI is absolutely the worst part of DNSSEC.
For me it says now 'your DNS service providers are:' and then the name of the netblock owner. The actual name server is in my network.
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
But the test result says: Not protected from redirection to false IP addresses (DNSSEC)The thing is: you can verify dnssec on the client. In theory. It's just that 99,9% (rough estimate, may be higher) of people don't. You'd have to run your own resolver. Which might work, if your ISP isn't doing funny things with your DNS traffic. Which some ISPs do. Which means it can't be deployed widely.
This thing was built in the 90s when people assumed you have some dns that some admin you trust manages in some trusted network. Moving it to today's internet is pretty much impossible.
This chain can get really long depending on the service's DNS configuration. And this whole time every request has to come back DNSSEC signed.
Note that I'm ignoring any caching....
If I run my own resolver, with a hardcoded [1] trust anchor, how could an ISP affect me regardless of what funny things it does with my DNS traffic...?
[1] https://sources.debian.net/src/bind9/1:9.10.3.dfsg.P4-10.1/b...
Are we on the same page that with DNSSEC activated on a local resolver one would either get an authentic answer, or nothing at all?
Sure. But it's not very relevant, because almost nobody does that. And that's unlikely to change, because getting nothing at all isn't a very desirable state of affairs.
And given that forcing local DNSSEC resolvers in an OS or a browser would likely mean that a large share of your userbase will get nothing at all this is pretty much impractial.
It worked for HTTPS - more and more browser builds refuse to show you stuff, with no workaround, even if there is nothing wrong with the certificates ( cough-sha1-cough-or-cough-chrome-cert-transparency-cough ). Yet I don't see any users revolt.
Claiming that having an all-or-nothing HTTPS is a-ok, yet having all-or-nothing DNS is unacceptable is... inconsistent.
One example of this bundled up in a way that is easy to install is DNSSEC-Trigger: https://nlnetlabs.nl/projects/dnssec-trigger/
More info in this blog post from Red Hat: http://developerblog.redhat.com/2015/04/14/writing-an-applic...
Notice also that Signal provides a massive amount of cryptographic security to billions of people without needing a PKI controlled at its roots by world governments.
1: https://en.wikipedia.org/wiki/Domain_Name_System_Security_Ex...
- getDNS - https://getdnsapi.net/
- ldns - https://nlnetlabs.nl/projects/ldns/
The application simply has to perform the actual validation itself (versus using another resolver).
I know Google has supported an HTTPS bridge for DNS for a while (https://developers.google.com/speed/public-dns/docs/dns-over...) but I'm not aware of any router firmware or Mac/Windows/Linux software that supports it, is it out there?
If you're using Google's DNS, it will (pretty much pointlessly) validate DNSSEC records for you --- but the link between your computer and Google's DNS servers are completely unprotected (any attacker could simply trick your browser into believing there was no such thing as DNSSEC).
This doesn't much matter because only a tiny, tiny fraction of all DNS records are DNSSEC-signed. The modal experience for companies that do take the trouble to sign their DNS records is "taken offline completely by DNSSEC configuration mistakes". There is virtually no upside to participating.
The good news about all of this is that there's really nothing you need to do to have good DNS OPSEC. Just do what everyone else does, including pretty much all security people: delegate security to a higher layer of the Internet stack.
One thing that happened in recent years is that a very nice library called 'getdns' has been developed. Getdns does local DNSSEC validation but also contains various ways of accessing DNS servers and resolvers ("Roadblock Avoidance")
I use getdns in ssh for SSHFP, to obtain SSH key fingerprints from DNS. If DNSSEC doesn't work then SSH fails (or complains about an insecure connection). So far my experience is that is works.
The problem with DNSSEC local validation is that it doesn't protect your privacy.
So there are two techniques under development to address that. One is to run DNS directly over TLS. The second is to run DNS over HTTPS.
Running DNS over TLS has to advantage that the semantics are clear (just DNS over TCP but then encrypted) but the downside that the port may be blocked.
DNS over HTTPS is unlikely to get blocked, but there are too many ways to transmit DNS over HTTPS, so it may take some time for that to get sorted out.
Of course, moving DNS from a lightweight UDP exchange to TLS or HTTPS requires quite a bit more resources on the server side.
So, local DNSSEC validation works. It is just matter of turning it on. Server side, if the admins are behind a DNSSEC validating resolver then they quickly figure how to avoid breaking it.
When it comes to privacy, if you send all your DNS queries to Google, who else do you care about who might be watching your DNS traffic?
"Protected from redirection to false IP addresses (DNSSEC)"
What does that mean? It means that whatever other DNS server I use seems to verify DNSSEC signatures (I use Google's DNS fwiw). Yet this doesn't provide any reasonable sense of protection, as the connection to that DNS server may very well be compromised.
This would very well show DNSSEC protection in an open public wifi if the provider decided to enable DNSSEC.