The DNS over QUIC draft lets client and server negotiate 0-RTT, with minimal guidance. The privacy section develops the risks of replay attacks, and then effectively lets clients decide whether to use 0-RTT or not. Martin Thomson pointed out the contrast with RFC 8470 which provides great details on the use of 0-RTT data in HTTP, and also introduces a new error code to let server refuse some transactions if received over 0-RTT. There are indeed advantages in letting the server control usage of 0-RTT, but I wonder about the proper trade-off between control and complexity for DoQ. There are multiple ways to do this:

- Allow servers to not advertise support for 0-RTT if they are concerned with 0-RTT side effects -- very simple to implement at servers and clients.

- Let servers advertise support for 0-RTT, but have them check the queries received on 0-RTT and return an error code after inspecting incoming requests. This requires implementing some kind of filter at the server side, plus some logic on the client to resubmit the failed requests after completion of the handshake. I am a bit concerned with that kind of complexity.

- Let servers advertise support for 0-RTT, but close the transaction with a Protocol Error if the server receives an unexpected request -- e.g., an Update. That also requires some filtering of 0-RTT packets at the server side, but is simpler than the full inspection considered above. It is also reasonably easy to implement on the client, which simply abstains to send some classes of requests over 0-RTT.

- Or, of course, allow servers to support 0-RTT without any kind of filtering.

Any particular opinion in the working group?

-- Christian Huitema




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

Reply via email to