Encrypted DNS changes who can observe a query
Separate resolver-channel confidentiality, resolver trust, DNSSEC validation, forwarding-cache behavior, and the limited separation offered by oblivious DNS.
On this page
The question for today
What you’ll understand
- Identify the observer removed and the observer retained by an encrypted resolver connection.
- Distinguish DNS transport encryption from DNS data authentication.
- Analyze cache and proxy boundaries without claiming complete anonymity.
Sending DNS over an authenticated encrypted connection protects the query on that connection from particular observers. It does not make the receiving resolver unable to read the question or decide how to answer it. Resolver selection, endpoint verification, cache behavior, and upstream communication remain part of the trust model. To evaluate a privacy claim, draw the actual parties and ask who sees the client address, query name, timing, and resulting connections. Encryption moves a boundary; it does not remove every observer.
Protect a channel to a chosen resolver
DNS over TLS protects a DNS channel using TLS; DNS over HTTPS carries DNS exchanges through HTTPS. In each case, the client must authenticate the intended resolver endpoint under the applicable configuration rather than accepting any encrypted connection. A malicious or mistakenly trusted resolver can still see queries and provide misleading answers within whatever validation constraints the client applies. Using an encrypted transport to that resolver does not establish that it follows a particular logging or retention policy.
The encrypted client-to-resolver leg also does not automatically encrypt every later resolver-to-authority interaction. Network observers can still see connection metadata, packet timing, and other traffic, while application connections made after resolution reveal additional information. Bootstrap configuration deserves care: the client needs a trustworthy way to identify and reach the intended resolver without accepting an attacker-supplied endpoint as its new authority. Document the chosen resolver, verification identity, fallback behavior, and which network legs the deployment actually protects.
Data authentication and privacy are different properties
DNSSEC provides mechanisms for authenticating signed DNS data and authenticated denial within its validation model; it is not a query-encryption protocol. Encrypted DNS transport can hide query content on a protected leg without making an unsigned answer cryptographically authenticated as zone data. A deployment can combine these mechanisms, but it must state where validation occurs and whether the client trusts a resolver's assertion or validates independently. A correct record still does not authorize an application action or prove the returned address serves a healthy endpoint.
Oblivious DNS over HTTPS introduces a proxy and target arrangement intended to separate client identity from query content under non-collusion and configuration assumptions. The proxy can observe client-side metadata while the target processes the decrypted DNS query; collusion or correlating observations can undermine the hoped-for separation. It should not be described as universal anonymity or protection from every timing observer. Name the adversary and the parties trusted not to combine their views before attributing a privacy property to the arrangement.
Caching reduces upstream work without erasing receipt
A forwarding resolver's cache can answer repeated questions without contacting its upstream resolver again. That reduces upstream queries but does not undo the local resolver's receipt of each incoming question. A privacy analysis that counts only upstream packets can therefore overlook logging at the first recipient. Cache keys, negative answers, lifetimes, and application behavior also affect real hit rates. Any numerical savings must identify where the cache sits and which observer's evidence changes.
Use the deterministic cache lab for a narrow working-set comparison. Reset, set both C=4 and s=4, predict twelve hits in the sixteen requests already evaluated at time zero, then inspect and Play or Step to extend the trace. Reset and set both C=3 and s=4 for a separate zero-hit initial case. Editing controls retains elapsed time; Reset is what returns to the initial sixteen-request evaluation. This LRU model has no DNS names, TTLs, negative answers, encryption, or observer logs. It illustrates reuse capacity only, not an end-to-end DNS privacy measurement.
Work it through
Locate the cache savings and the remaining observer
A fictional forwarding resolver receives 400 client queries per second, answers 75% from its own cache, and sends exactly one upstream query for each miss. Assume each incoming query remains visible to that resolver after channel decryption.
Compute the miss fraction: 1 − 0.75 = 0.25. Under the stipulated one-query-per-miss forwarding model, upstream traffic is 400 × 0.25 = 100 queries per second.
The local forwarding resolver still receives all 400 queries per second. Its cache prevents 300 upstream queries each second but does not remove the query content it already processed.
If the client leg uses correctly authenticated encrypted transport, an on-path observer on that leg has a different view from the resolver endpoint. The arithmetic does not quantify metadata leakage, logging retention, or protection on the upstream leg.
Caching lowers modeled upstream volume to one hundred queries per second while leaving the first resolver able to process all four hundred incoming questions.
The living notebook
Explore the model
Interactive lab · cache
Reuse changes upstream work, not recipient trust
For separate fresh runs, Reset and set both C=4,s=4 or C=3,s=4. Predict the initial sixteen-request hit counts before inspecting, then Play or Step. The toy LRU has no DNS expiry, encrypted channel, query logging, or privacy model.
- Hits / requests
- 0 / 16
- Hit rate
- 0%
- Address-stream period
- 16 addresses
A fully associative LRU cache starts empty and requests address (i·s) mod 16. Hits move an address to the newest position; misses evict the oldest when full. Playback starts with 16 requests and adds two per second, capped at 4096 explicitly simulated requests. This toy stream is not a processor-cache benchmark. Parameter changes pause playback and recompute the model at the current elapsed time. Reset restores both parameters and returns time to zero. Playback starts paused. Adjust either parameter, then choose Play or Step.
Look forA cache hit can reduce further work without making the receiving resolver forget or cease to observe the original query.
Pause & reason
Check your understanding
Your turn
Try it yourself
A team says its encrypted DNS resolver cannot learn query names because 90% of queries are cache hits. Identify the mistaken boundary and one separate question needed to evaluate upstream privacy.
Take a moment to make a prediction or work it out on paper. Open a hint when you need one.
Give me a hint
Ask where the cache is located and which process receives and decrypts the incoming question before checking it.
Compare with the solution
If the cache belongs to the receiving resolver, it sees the query name before deciding whether the answer is cached. A hit reduces later upstream work, not the resolver's own observation. To assess upstream privacy, inspect what transport and parties are used on the resolver's onward leg and which queries actually leave it. Client-to-resolver encryption alone does not specify that leg or prove absence of metadata correlation or logging.
Keep the idea
Take it with you
- Encrypted DNS protects specified channels while retaining trust in their recipients.
- DNSSEC data authentication and query confidentiality answer different questions.
- Cache location and proxy non-collusion assumptions determine which observer's view changes.
Read further
Original sources and deeper explanations to follow at your own pace.
Optional progress, saved in this browser when available. Revisit any lesson at any time.
Lesson not marked complete.