You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit e6fc4e4
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: draft-denis-dprive-dnscrypt.md
+11-2Lines changed: 11 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -369,9 +369,10 @@ They MAY adjust the target as response sizes and path limits become known.
369
369
The target MUST stay within the transport size limits.
370
370
Full PQ queries use the padding rule in {{pq-padding}}.
371
371
372
-
For TCP queries, a client SHOULD add a random padding component to reduce length-based identification of repeated queries.
372
+
For TCP queries sent directly to a resolver, a client SHOULD add a random padding component to reduce length-based identification of repeated queries.
373
373
374
374
The UDP minimum does not apply.
375
+
{{relay-behavior}} gives the padding for queries sent to a relay over TCP.
375
376
376
377
For responses, the resolver SHOULD round the padded plaintext length to a multiple of 64 and SHOULD use between 1 and 256 padding bytes, including the delimiter.
377
378
@@ -535,6 +536,12 @@ An encrypted query's padding similarly determines the response budget on the rel
535
536
If an encrypted DNS response is truncated, a client can retry with a larger padded inner query, within the UDP limit.
536
537
537
538
Using TCP to the relay alone does not increase that budget or provide TCP to the resolver.
539
+
A client sending an encrypted query to a relay over TCP SHOULD therefore pad the complete inner query to 4096 bytes.
540
+
This applies to all encryption systems, including PQ queries with a KEM ciphertext and resumed queries.
541
+
Otherwise, a response truncated over UDP can be truncated again over TCP.
542
+
543
+
Such an inner query is usually fragmented between the relay and the resolver.
544
+
A client SHOULD NOT use a relay to reach a resolver known to drop fragmented UDP queries.
538
545
539
546
Clients SHOULD choose a relay and resolver operated by different organizations, preferably on different networks.
540
547
@@ -715,6 +722,7 @@ A client SHOULD use a configurable UDP payload target, initially 1232 bytes, and
715
722
For a relayed query, the 28-byte relay prefix counts toward this target on the client-to-relay connection.
716
723
717
724
The relay-to-resolver connection remains UDP and its response budget is the size of the inner query, as described in {{relay-behavior}}.
725
+
PQ queries sent to a relay over TCP use the padding in {{relay-behavior}}.
718
726
719
727
## Stateless Resumption {#pq-resumption}
720
728
@@ -838,7 +846,8 @@ The normal requirements for a fresh, nonzero resolver nonce still apply, includi
838
846
839
847
Resumed UDP queries use the normal query-size target in {{padding}}, initially 256 bytes for the complete DNSCrypt packet.
840
848
841
-
Through a relay, that inner packet also determines the upstream response budget, even if the client uses TCP to the relay.
849
+
Through a relay, the inner query size also limits the upstream response, even if the client uses TCP to the relay.
850
+
Resumed queries sent to a relay over TCP use the padding in {{relay-behavior}}.
842
851
843
852
A resolver MUST silently discard a query with an invalid or expired ticket.
0 commit comments