DNS over HTTPS–What Is It and Why Do People Care? [pdf]
crsreports.congress.gov
crsreports.congress.gov
First HTTP/3 (nee QUIC) reinvented TCP and ports over HTTPS, now DOH is reinventing DNS over HTTPS... Sigh. Both of these would be better off by evolving and modernizing their respective existing protocols. And HTTP is a client/server protocol with a _heavy_ handshake cost, why are we using it for a quick one-off request like DNS.
But why not DoT on port 443?
The story about office workers, sysadmins, and service providers trying to make life harder for each other and complicating things for everyone seems unfortunate, but makes sense, yet I don't quite see why HTTP has to be involved.
Also, using DoT over 443 would mean that you have an issue with traffic not being distinguishable for routing purposes at the edge. By making DNS on 443 DoH, it means that all HTTP2 routers/loadbalancers/etc. can work the same regardless of it being a Web request or a DNS request, because then they are both Web, i.e. HTTP, requests.
But the problem began decades ago when sysadmins started using firewalls to control what employees could access. During early 2000's I was involved in moving a lot of apps that used a bespoke port to port 80/443 just to make sure our apps and services didn't have any client hiccups due to (rightly so?) belligerent sysadmins.
All this has really done has made sysadmins lives harder bc of packet inspection. So, all app developers and now infrastructure solution devs must run thru 443, otherwise the take up wouldn't happen. The internet is effectively running on one port nowadays.
iptables -t filter -A FORWARD -p udp --dport 53 -j DROP
And prevent anything from their own internal resolvers from accessing outside DNS services, especially now that encrypted SNI is moving more web filtering to the DNS layer.Easier to make the orgs internal recursive resolver "does the right thing" than all clients, too.
Replace "enterprise" with "ISP" or "nation state", and that's closer to what the DoH aims are.
DOH will cause so much drama when internal sites wont resolve any more.
Now you could argue that the fault in both of those cases is IPv4 and the natting that comes with it.
But yes. If u have a domain that is supposed to resolve different depending on the source ip that'd be..interesting... Now u need a website that displays different content depending on source ip or something like that...
One issue with doh is that it’s inconsistent - some applications use one resolver, some use another. The network (via dhcp) can’t hint at which resolver to use.
I have over 200 domains internally, that i don't have externally.
but its also flexibility. We often when we develop, want to redirect certain domains to our endpoints, for testing or whatever, and do that on DNS so that not everyone has to edit host files etc.
we have pfsense internally, with number of people that can and do add/remove hosts/domains on daily basis, but host our external DNS on CF, and only 2 people have access to that.
HTTPS can't save you from that, though, because the same networks that modify DNS queries to third party DNS servers also do things like require you to install a root certificate and then MitM your TLS connections, and drop connections that don't accept their root certificate.
In both cases it's the same thing. You can detect the attack but that doesn't get you through.
If the sysadmins were told "We don't want people doing X on company time: stop it.", that is hardly the sysadmins' fault.
Do you think IT / Helpdesk wants the drama of extra calls because certain things are blocked? That they're sitting in their cubicles twirling their sinister mustaches thinking of ways to make people's lives more difficult?
These people are the exception, not the norm, but it only takes one.
https://en.wikipedia.org/wiki/Slowdown#Rule-book_slowdown
When used carefully, it can be a very effective tactic.
In the end we will have a virtualized Internet 100% encrypted and tunneled over port 443, rendering the physical IP header worthless legacy baggage.
To IT admins: the more you tighten your grip, the more protocols will slip through your fingers.
Nobody knew better at the time, but this time we know. Fortunately, it will end at HTTPS, and it's just a matter of optimizing it well enough (in HTTPS4, or 5, or how many it takes) to make it behave like an internet-level protocol and replace IP.
It's on your andriod phone now!
This doesn't sound right. QUIC is built on UDP and TLS 1.3, not HTTPS. HTTP/3 doesn't go over itself.
TLS 1.3 also makes the handshake significantly cheaper with the option for 0-RTT resumptions.
DNS isn't really being reinvented either - it's the old wire format with a different framing.
Perhaps it makes the surveillance tooling more uniform and easier to develop/maintain.
The argument that HTTPS is always available and not filtered is just wrong, anyone who has experience working with large corporations knows that clients use local * certificates and everything is decrypted by the firewall and then re-encrypted. Making HTTPS slow af and sometimes plain broken.
I guess someone will implement a full HTTPS stack in js and announce HTTPS over HTTP to go around this "problem".
Yeah, and implementing everything over https is just going to make things harder or impossible to filter. There's a reason that large corporations block certain things, so if they get reimplemented over http, that will just be a security hole. It would be nice if an actual encrypted DNS protocol was created.
Well, multi-streaming and multi-homing is part of SCTP, but no one seems to have bothered implementing it.
> now DOH is reinventing DNS over HTTPS... Sigh.
DoT was already invented when the Web folks decided to go and invent DoH:
HTTP/3 is still a IETF draft, but is already being deployed pretty much by all big sites. It supports zero-round-trip (0RTT) requests even after the IP of the client has changed.
DoH can essentially match the latency of traditional UDP queries, while also encrypting the channel and traversing any gateways that let HTTPS through.
Now we will have 2 mayor browsers, that might or might not resolve internal domains correctly. And unless you have AD, and ability to push to config clients, you will have to go to each and every computer and set it manually. And hope that updates wont break it further.
Before Mozilla's drama with DoH, which app(s) did that?
Now that Mozilla has shown people that it's 'okay' to override the OS I'm worried that more things will do that same cockamamie thing.
Chrome, for one?
That will no longer be possible, which is a good and bad thing depending on the circumstances.
Another concern is that DOH will complicate content delivery to users. Today, content delivery networks (CDNs) host multiple instances of web content on geographically dispersed servers. This creates resiliency for web services and helps to deliver content to users more quickly. If ISPs lose the ability to view users’ DNS queries, they will still be able to route users to a CDN, but not necessarily the closest or most efficient CDN. Technical measures that may alleviate this concern include sharing some user data (like general geolocation data) and CDN load management tactics.
Is this a real concern? Don't ISPs just route on IP addresses?
Other potential implications of DOH implementation involve issues such as international data flow and advertising competition.
What on earth is this referring to?
If you blocked ads using browser addon like uBlock, that's going to be neutered with manifest v3 in Blink (i.e. Chrome/Chromium/Edge).
If you blocked ads using pi-hole like setup, now that's sidestepped.
If you wanted to enforce your DNS, now you cannot, because it will be mixed with other https traffic. For now, you can do DPI on the SNI, but that's going to end with eSNI too.
The protocol seems to be designed to require clients to send all of their DNS traffic to a single upstream provider. This may be similar to your current DNS configuration, and your network may even be limiting your ability to use the internet with bad policies on broken middleboxen. That's unfortunate for you, but please don't presume everyone has similar limitations.
>> "But we need to overload port 443 to hide our DNS traffic!"
It's unfortunate your ISP or national infrastructure requires such obfuscation. In those situations, the current DOH protocol could be a good workaround.
However, protecting against a malicious upstream server sending bad results is very different than protecting against large institutions being able to eavesdrop on your DNS traffic to build a model of your pattern-of-life. The latter is only stopped by not giving a single entity all of your DNS traffic, which DOH explicitly requires.
If you recursively resolve DNS queries locally - ideally in a future where traffic to authoritative servers is encrypted (DoT?) - only the first request goes to a centralized server. Most traffic goes to the domain's authoritative server, which is probably the same controlled by the same entity you are about to connect to with HTTPS.
This is super misleading. Even with DoH, any party on the network can see which websites you're talking to, because their hostnames are sent in the clear via SNI. ESNI fixes this, but it's not clear to me whether the major cloud providers are going to go for that, and if they don't it's not going anywhere.
https://news.ycombinator.com/item?id=21264814 was a good discussion of the actual security benefits of DoH.
https://en.wikipedia.org/wiki/List_of_websites_blocked_in_th...
At least my DNS server is caching the results though.
I do not believe that DoH was created first and foremost to protect the privacy of people. I believe that it was created to use the frog in boiling water methodology of silently pushing millions of people into centralized logged DNS that can be used for whatever purpose those companies see appropriate, in my personal opinion.
I do not believe this opinion is far fetched. No company is going to just provide a large amount of infrastructure out of the kindness of their hearts. I am not saying that philanthropists do not exist. They do, but not here. This is a data grab first and foremost, in my opinion.
Another factor in my opinion is the lack of support for a corporate infrastructure. Some companies may manage some facets of user settings in Chrome and Firefox via AD policies, but I believe that is the exception rather than the norm. Companies will be leaking even more internal infrastructure topology than they do today. It isn't like ISP's manage browser settings, nor would they want to.
Nation states? DoH will not affect them at all. They will simply null route all of the DoH hosts like they do with existing proxies and VPN providers. This is what I had to do in my home network so that I could maintain control of my DNS.
On one hand, you have centralized DNS (based on your ISP). DoH gives you some choice over that now through your browser. On the other, you have only a handful of DNS providers to choose from. DoH is just a technology, there's nothing preventing ISPs from still providing their DNS services over HTTPS.
See my other posts[1][2] about why DoH explicitly requires centralization.
> you have centralized DNS (based on your ISP)
You might, I don't, because DNS doesn't require that the client delegate recursive resolution to an upstream server.
But I agree that this should be a choice on the client-side.
> This is a strange definition of decentralization.
DNS is - by definition[1] - a distributed database.
Name servers store a distributed database consisting of the
structure of the domain name space, the resource sets associated
with domain names, [...]
> I suppose it gives you redundancy.The distributed database is about administrative boundaries[2].
Authority is vested in name servers. A name server has
authority over all of its domain until it delegates authority
for a subdomain to some other name server.
Redundancy in the DNS system is provided by a requirement that at least two authoritative nameservers must be listed when delegating authority to a subdomain.> But aren't you broadcasting information about your request to multiple parties
Recursive resolution only involves multiple parties when the authoritative nameserver for a DNS zone[3] isn't known and again when the TTL (time-to-live) for the zone's NS record expires. Once the NS records are cached locally, queries only involve one party. DNS is a very flexible system that is designed to allow queries at any level and easy caching.
Also, consider that TTL for different record types is often very different. The only record that necessarily must be requested from the 2nd-level domain (".com") or other central server (like 8.8.8.8) are the NS records for a zone. Using the IETF's rfc server in [1] as an example, to lookup the A record for "tools.ietf.org", we first (unfortunately) leak information to .org (or 8.8.8.8, etc) to discover the domain's authoritative servers:
;; SERVER: 8.8.8.8#53
;; QUESTION SECTION:
;tools.ietf.org. IN NS
;; ANSWER SECTION:
tools.ietf.org. 1209600 IN NS heroldrebe.levkowetz.com.
tools.ietf.org. 1209600 IN NS zinfandel.levkowetz.com.
tools.ietf.org. 1209600 IN NS dechaunac.levkowetz.com.
tools.ietf.org. 1209600 IN NS dunkelfelder.levkowetz.com.
tools.ietf.org. 1209600 IN NS durif.levkowetz.com.
We then cache that locally for 1209600 seconds (14 days!). While this does leak the fact that you asked about something in the ".ietf.org" zone to a central server, two (apx)
of these requests per month* doesn't reveal much about your pattern-of-life.The TTLs of A (and AAAA) records tend to be much shorter, sometimes unnecessarily short for better surveillance resolution. In this case, IETF is using a fairly standard 10 minutes:
;; SERVER: 4.31.198.61#53 (durif.levkowetz.com)
;; QUESTION SECTION:
;tools.ietf.org. IN A
;; ANSWER SECTION:
tools.ietf.org. 600 IN A 4.31.198.61
tools.ietf.org. 600 IN A 4.31.198.62
tools.ietf.org. 600 IN A 64.170.98.42
For comparison, the A record for graph.facebook.com (their big "analytics"/spyware ingress server) seems to have a random TTL between ~5 and 59 seconds. Thy are effectively forcing a DNS query on every analytics event. That's insane, but my point is that doing the recursive resolution locally means that almost all of those DNS queries are sent to dns.facebook.com only. The upstream DNS at the ISP or 8.8.8.8 only gets ~two UDP packets per month. With DoH, all of that still happens, but it has to be routed though Cloudflare first![1] RFC 882, page 13, "NAME SERVERS" https://tools.ietf.org/html/rfc882#page-13
[2] RFC 882, page 14, "Authority and administrative control of domains" https://tools.ietf.org/html/rfc882#page-14
[3] From [1], "In general, a name server will be an authority for all or part of a particular domain. The region covered by this authority is called a zone."