Hi all

A late review (I'm sorry I've not been paying much attention here).

[snip]

> Abstract

>    This document describes a technique to generate a signed DNS response
>    on demand for a non-existent name by claiming that the name exists
>    but doesn't have any data for the queried record type.  Such answers
>    require only one minimal NSEC record, allow online signing servers to
>    minimize signing operations and response sizes, and prevent zone
>    content disclosure.

I suggest updating the abstract (though it is only a blurb) to indicate
that only one minimal NSEC record is better somehow, i.e, "Such answers
require only one minimal NSEC record rather than many..."

[snip]

> 1.  Introduction and Motivation

[snip]

>    This document describes an alternative technique, "Compact Denial of
>    Existence" or "Compact Answers", to generate a signed DNS response on
>    demand for a non-existent name by claiming that the name exists but
>    has no resource records associated with the queried type, i.e. it
>    returns a NODATA response rather than an NXDOMAIN response.  A NODATA
>    response, which has a response code (RCODE) of NOERROR and an empty
>    ANSWER section, requires only one NSEC record matching the queried
>    name.  This has two advantages: the DNS response size is smaller, and
>    it reduces the online cryptographic work involved in generating the
>    response.

I suggest adding another sentence here or rewriting the last sentence to
explicitly mention that multiple NSEC RRs with different owner names
need multiple covering RRSIGs, and it is their computation that is more
expensive than using this compact scheme.

[snip]

> 5.  Operational Implications

>    For DNSSEC enabled queries, a signed zone at an authoritative server
>    implementing Compact Answers will never return a response with a
>    response code of NXDOMAIN, unless they have implemented the optional
>    response code restoration feature described in Section 4.1.
>    Similarly, resolvers not implementing this feature will also not be
>    able to return NXDOMAIN.  In the absence of this, tools that rely on
>    accurately determining non-existent names will need to infer them
>    from the presence of the NXNAME RR type in the type bitmap of the
>    NSEC record in NODATA responses from these servers.

The authors should clearly state that this draft breaks existing DNS
behavior and returns NOERROR (NODATA) where NXDOMAIN should be returned,
and that is why there are these operational implications. I strongly
suggest including such text that states the issue clearly.

[snip]

>    Protocol optimizations that permit DNS resolvers to synthesize
>    NXDOMAIN responses, like [RFC8020] and [RFC8198], cannot be realized
>    with zones using Compact Denial of Existence.  In general, no online
>    signing scheme (including this one) that employs minimally covering
>    NSEC records permits RFC 8198 style NXDOMAIN synthesis.
>    Additionally, this protocol also precludes RFC 8020 style NXDOMAIN
>    synthesis for DNSSEC enabled responses.

Is the use of RFC 8198 fine with traditional "covering" NSEC responses
from a zone which also returns compact responses of this draft for
different queries, if some implementation wants to do it? Is there
anything in the protocol that prevents mixed ("covering" as well as this
draft's "compact" scheme) NSEC answers from a single zone? The above
text says "cannot be used with zones", perhaps it can be rewritten to:

".. cannot be realized from Compact Denial of Existence responses."

[snip]

> 7.  Implementation Status

>    Cloudflare, NS1, and Amazon Route53 currently implement the Compact
>    Denial of Existence method.

This current draft appears to be deployed e.g. by Cloudflare, which
trickles down from my resolver as a NOERROR with TYPE128 in the NSEC
bitmap:

[muks@fugu ~]$ dig +dnssec nonexistent.cloudflare.com

; <<>> DiG 1.1.1.20241113133025.476ab2bf87 <<>> +dnssec 
nonexistent.cloudflare.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63196
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
;; QUESTION SECTION:
;nonexistent.cloudflare.com.    IN      A

;; AUTHORITY SECTION:
cloudflare.com.         300     IN      SOA     ns3.cloudflare.com. 
dns.cloudflare.com. 2359273303 10000 2400 604800 300
cloudflare.com.         300     IN      RRSIG   SOA 13 2 300 20241211050151 
20241209030151 34505 cloudflare.com. 
XkLVkEKV14m4KnJ4ed0+/VH8+Ixbd5xvJqHxoqoLwQUCNk+wHcFIBjmU 
DYcmDCui5zfodg8eoQKA8fQpHGJsow==
nonexistent.cloudflare.com. 300 IN      NSEC    
\000.nonexistent.cloudflare.com. RRSIG NSEC TYPE128
nonexistent.cloudflare.com. 300 IN      RRSIG   NSEC 13 3 300 20241211050151 
20241209030151 34505 cloudflare.com. 
X0eA7wqAyfGt+bFr42djfk5tz/E6JXYUvRrHjwTGkRu4WZcvXC0Rr8ge 
FLsbUDH7dlxXdEIxI9BMHSUijVmqng==

;; Query time: 58 msec
;; SERVER: 144.76.148.97#53(144.76.148.97)
;; WHEN: Tue Dec 10 04:01:51 GMT 2024
;; MSG SIZE  rcvd: 380

[muks@fugu ~]$ 

This signalling is a little unexpected/confusing even to a human who is
expecting an NXDOMAIN rcode. The software will be updated to convert the
TYPE128 to the mnemonic NXNAME, but still, the syntax of the message is
non-intuitive. There may not be a way to do anything about this other
than rewrite the RCODE, or display a message near the RCODE that this is
indeed an NXDOMAIN response.

[snip]

> 8.  Security Considerations

[snip]

>    scheme will help recover NXDOMAIN visibility for these tools.  Note
>    that the DNS header is not cryptographically protected, so the
>    response code field cannot be authenticated.  Thus inferring the
>    status of a response from signed data in the body of the DNS message
>    is actually more secure.  These tools could be enhanced to recognize
>    the (signed) NXNAME signal.

The signed NXNAME signal appears to be a side-effect of this design,
rather than a desired requirement. The way this text is written
describes the advantage, but the big disadvantage is that it breaks
existing behavior.

[snip]

At a high level, it is uncomfortable that such changes to the DNS
protocol be merged that change existing basic behavior (removing an
important signal such as NXDOMAIN in existing protocol that deployed
implementations use, requiring updation of at least resolvers to
implement NXNAME -> rcode=NXDOMAIN to "fix" things). Yet this draft is
in last call, which may imply most people here are ok with it.

IMO, as a general guideline this sort of change should be discouraged
though I concede in specific cases behavioral changes to DNS protocol
may be necessary. Are this draft's proposed changes necessary for DNS?

                Mukund

Attachment: signature.asc
Description: PGP signature

_______________________________________________
DNSOP mailing list -- dnsop@ietf.org
To unsubscribe send an email to dnsop-le...@ietf.org

Reply via email to