On Sat, Aug 14, 2021 at 3:47 PM Paul Hoffman <paul.hoff...@icann.org> wrote:
> On Aug 13, 2021, at 8:40 AM, Ben Schwartz <bemasc= > 40google....@dmarc.ietf.org> wrote: > > I think we can summarize the recent DS-glue-signing drafts as follows: > > > > * draft-fujiwara-dnsop-delegation-information-signer: One new DS holding > a hash of all the glue records. > > * draft-dickson-dnsop-ds-hack: Each new DS holds the hash of one glue > RRSet > > * draft-schwartz-ds-glue: Each new DS holds one glue record verbatim > > > > These represent three of the six possible combinations of scope (RR, > RRSet, all glue) and encoding (hash vs. verbatim). All six combinations > are possible, with different tradeoffs. > > This concise list also points out a very serious terminology problem that > affects this discussion: unsigned NS records in a response are not glue > records. Similarly, SVCB records are not glue records. > I agree that more conciseness and precision are important to this discussion. Here are some further clarifications from the above list, in no particular order: - draft-fujiwara-dnsop-delegation-information-signer specifies that the parent is responsible for creating/maintaining the DS records - draft-dickson-dnsop-ds-hack specifies (or implies, or will be updated to specify) that the child creates the DS hashes and via one method or another transmits them to the parent (e.g. CDS, CDS polling by Registrar and EPP, etc) - All of the three require new DNSKEY algorithms, and draft-schwartz-ds-glue requires a new "hash" (technically "verbatim" is a type of hash) - All of these would return the DS record(s) in the authority section alongside the NS record, even if the glue data (A/AAAA) were returned in the additional section. > > Proposed differentiation between the drafts: > > * draft-fujiwara-dnsop-delegation-information-signer: One new DS holding a > hash of the NS records in the Authority section and all the address records > in the Additional section > > * draft-dickson-dnsop-ds-hack: Each new DS holds the hash of NS records in > the Authority section, the A records in the Additional section, and the > AAAA records in the Additional section > > * draft-schwartz-ds-glue: Each new DS holds one record verbatim; the > record might not appear in the rest of the response > > For the DRPIVE use cases, draft-schwartz-ds-glue allows a resolver to > discover SVCB records in a response from the parent, even if that parent is > not configured to put SVCB records in the Additional section. > While this is technically accurate, it is (IMNSHO) problematically insecure. SVCB records in a signed child domain would be protected by a real DS record (signed by parental RRSIG), and RRSIG in the child domain. Any SVCB record added to the parent domain via the "ds-glue" mechanism would NOT be signed by the child. The RRSIG of the new DS record would prove that the new DS record was not tampered by an active attacker (etc), but would not provide the data integrity offered by DNSSEC. I'm a strong advocate of discovery and use of SVCB records for both opportunistic and downgrade-resistant (authenticated) use cases. SVCB in the child nameserver name domain is the right place to put SVCB records, as the name server name is the association needed for TLS. The resolver talking TLS will be talking to the name server, to make encrypted queries about a domain served by the name server. (The domain served that is being queried is presumed to not have an in-bailiwick name server, since that particular corner case is a chicken/egg problem.) The alternative (to requiring the SVCB record in the child, signed by the child domain) might be an SVCB-like thing in the parent which contains data signed by the child. Specifically: - A DNSKEY algorithm, or component of the draft-schwartz encoding, which contains (SVCB + RRSIG_name_server_child_ksk(SVCB)) - This would be signed by the parent too, but the critical component the provides the data integrity from the child is the RRSIG_name_server_child_ksk element - Only the operator of the name server's name's domain (which possesses the name_server_child_ksk) can generate this signature - This is much stronger than being able to push data over an EPP channel, which is the mechanism available to a Registrar that polls the Registrant's domain for CDS records - EPP does not have a mechanism currently for validation of supplied DS records - Updates to EPP are not in scope for DNSOP itself Some other clarifications/explanations about draft-dickson-dnsop-ds-hack: - The current draft specifies that the current preferred existing hash algorithm (alg 2, sha2-256) is to be used, precisely and solely because that does not require new hash algorithms to be specified by dnsop via standards action (or whatever is done to change how new algorithms get adopted) and implemented by Registries and Registrars. In other words, the expectation is that use of hash alg 2 reduces or removes barriers to deployment - The one DNSKEY algorithm for each of NS, A, and AAAA encodings is designed to minimize the challenges of matching NS, A, and AAAA records to these DS hashes - The current -00 version has all the NS records lumped together in one RDATA hash. That might change in later revisions to have one DS per NS record to further simplify the matching, and to better handle update processing (specifically the async nature of updates and long-TTL records that may be cached). - The DS hash algorithms and DNSKEY algorithms are orthogonal. The choice of DNSKEY algorithm does not require that DS hash algorithm 2 be used per se; any future DS hash algorithm (including a NULL hash, i.e. verbatim) would be just as useable/deployable, at such time as it is widely deployed by registries and registrars There may be some ability to converge on some elements of these drafts. However, deployability is my main concern, and was a significant driver in the design choices. Brian
_______________________________________________ DNSOP mailing list DNSOP@ietf.org https://www.ietf.org/mailman/listinfo/dnsop