On 4/10/2022 3:00 PM, Daniel Kahn Gillmor wrote:

Maybe the concern is that the authoritative server implementation might
not have control over the full stack enough to respond ICMP Port
Unreachable to a specific subset of client IP addresses.
Yes. Something done by the application is much easier than messing with ICMP.
In that case, i can imagine two distinct modes of operation:

- the server only has the opportunity to respond after the TLS/QUIC
   handshake is complete.  In this case, i don't see why the server
   shouldn't just go ahead and handle the query; some part of the stack
   has already borne the connection setup costs.
True. But this is easy to spoof.
- the server can respond early during the TLS/QUIC handshake.  In this
   case, we'd want to define an error at that layer, so that the
   authoritative server can signal failure without incurring any
   additional connection costs.
That could work. It would be similar to "ALPN negotiation failed". But I am not sure that's easy to implement, giving different TLS answers to different clients. It is essentially a layer violation. Architecture considerations aside, that requires a pretty tight coupling between TLS and Application implementation. Not always possible. Also, not authenticated. The bad guys recipe book is going to say, "spoof this message if you want to force a client to stop unilateral probing for 24 hours."
Does this analysis seem right to you?  Or is there a reason that i'm
missing that an authoritative server would want to have the signal at
the layer where a extended DNS error message would make sense?

I like it because it can be entirely done at the DNS layer. The message is authenticated by TLS, which does cost the server some cycles but protects the client against spoofs.

-- Christian Huitema

_______________________________________________
dns-privacy mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/dns-privacy

Reply via email to