advanced25 min studyLesson 219 in Engineering

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

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.

λupstream=λin(1−h)\lambda_{\rm upstream}=\lambda_{\rm in}(1-h)
For a simplified forwarding resolver with exactly one upstream query per cache miss, λ_in is incoming queries per second and h is its hit fraction. This is a traffic-accounting model, not a general iterative-resolution formula; the forwarding resolver still receives the incoming queries.↔ Scroll wide equations horizontally.

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.

Oresolver⊇{query content received at that resolver}O_{\rm resolver}\supseteq\{\text{query content received at that resolver}\}
O_resolver denotes the resolver's available observation set for ordinary directly delivered encrypted DNS. This set relation highlights that decrypting the transport reveals the query to its intended recipient. It is a trust-boundary statement, not a quantitative anonymity bound or a claim about all oblivious proxy designs.↔ Scroll wide equations horizontally.

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.

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.

  1. 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.

  2. 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.

  3. 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.

The result

Caching lowers modeled upstream volume to one hundred queries per second while leaving the first resolver able to process all four hundred incoming questions.

Explore the model

Interactive lab

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.

Reuse changes upstream work, not recipient trustA 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. Current readings: Hits / requests: 0 / 16; Hit rate: 0%; Address-stream period: 16 addresses. All parameters are adjustable with the labeled controls below.Fully associative LRU cache after 16 deterministic requests: 0 hits and 16 misses.Most recent 16 requestsaddress = i × 3 mod 160M3M6M9M12M15M2M5M8M11M14M1M4M7M10M13MCurrent cache order · oldest → newest471013Latest address 13 · miss: inserted as newestToy address stream · period 16 · starts empty
Cached addressMiss / evictionMost recent request
Hits / requests
0 / 16
Hit rate
0%
Address-stream period
16 addresses
t = 0 s

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.

Check your understanding

What does correctly authenticated DNS over HTTPS to an ordinary resolver fail to establish by itself?

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.

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.