Hi Tim et al -
I read through this back a few versions ago and mostly thought it
harmless as an experimental RFC. I'm not sure that it's quite ready for
prime time as a Standards track RFC.
Here's what I think is missing:
1) A recommendation for the maximum size of the zone (and for that
matter the maximum churn rate). This is hinted at in the abstract, but
missing from the body of the document.
2) For each of the use cases, an explanation of how this RRSet actually
mitigates or solves the identified problem. E.g. at least a paragraph
each for each the subsections of 1.3. That paragraph should lay out why
the receiver of the zone should actually want to do this verification
and the cost/benefit of that for the end user.
3) Section 2 uses SHOULD or MUST related to data content rather than
protocol. That's a problem in that humans are notorious for making
mistakes and screwing up the records.
This section describes the ZONEMD Resource Record, including its
fields, wire format, and presentation format. The Type value for the
ZONEMD RR is 63. The ZONEMD RR is class independent. The RDATA of
the resource record consists of four fields: Serial, Digest Type,
Parameter, and Digest.
This specification utilizes ZONEMD RRs located at the zone apex.
Non-apex ZONEMD RRs are not forbidden, but have no meaning in this
specification.
Instead - "non-apex ZONEMD RRs MUST be ignored by the receiving client".
A zone MAY contain multiple ZONEMD RRs to support algorithm agility
[RFC7696] and rollovers. Each ZONEMD RR MUST specify a unique Digest
Type and Parameter tuple.
"A client that receives multiple ZONEMD RRs with the same DT and
Parameter MUST try to verify each in turn and MUST accept the zone if
any verify".
and "If there are multiple ZONEMD RRs with distinct DT and Parameters,
the zone is acceptable if the client can verify at least one of those RRs"
It is RECOMMENDED that a zone include only
one ZONEMD RR, unless the zone publisher is in the process of
transitioning to a new Digest Type.
Lower case "recommended" here please.
4) 2.1.3 - The parameter field MUST be set to 0 for SHA384-SIMPLE on
creation, and the client MUST NOT accept the RR if this field is not set
to zero for SHA384-SIMPLE.
5) 3.1.2 - This is I believe different than how DNSSEC does it? If it's
the same, then this is fine, otherwise this protocol should be
calculating the RRSet wire representation the same as DNSSEC does it.
6) 3.2 - another set of data set MUSTs (the recommended isn't an issue,
but should probably be lower case) that need guidance for the accepting
client if the MUST doesn't hold because of human error.
7) 3.3 - Probably lower case may for DNSSEC. The rest of this is
operational guidance that really doesn't give anything useful for the
protocol.
8) 3.4.1, there is no reason whatsoever to make the setting of the
parameter field a SHOULD here. MUST is correct.
9) 3.4.2 - Third bullet. See above and also, as currently written here
this implies you ignore ALL RRs at that owner/class/type/RDATA if there
are duplicates. Rephrase at least.
10) 3.5 - This section needs a bit of re-working. Generally, what you
want to say is that if you have ZONEMD RRs, that they have to be
published at the same time as the matching SOA. You also want to
probably make a note somewhere that if the SOA and ZONEMD RR do not
match on receipt you do ... something? Not sure what.
11) I really need to write an RFC on "SHOULD considered harmful (if not
qualified)". For section 4, bullet 1 - explain what you mean by SHOULD
- e.g. is this a configuration option, or a implementation option. If a
configuration option, in which case might a recipient not want to do
this? If an implementation option, why isn't this a MUST? Also, if you
don't do the DNSSEC thing, identify the next step to be executed (i.e. 4).
11.1) Sorry for the numbering - missed step 4 in section 4 - see point 3
and reconcile or remove 3rd and subsequent paras from section 2 to make
this section the only normative one.
12) 4.1 vs my point 3 above - reconcile, or remove 3rd and subsequent
paras from section 2 to make this section the only normative one.
13) Missing a section 4.2 which says what you do when a zone doesn't
verify. Otherwise, what's the point?
14) Section 6.1, third paragraph is incorrect. Note that Section 4 step
2 is part of the stuff that's skipped if the zone is provably insecure
or if you decide that SHOULD means "I'm lazy and I don't want to do
it". E.g. Section 4 does not "REQUIRE" this because of the preceding
and enclosing "RECOMMENDED".
15) Add a section 6.3 to security considerations which describe the
downsides of this RR - e.g. for example that it can make a zone more
fragile by requiring complete coherence in the zone and that this is a
substantial change both to DNSSEC and the original design of DNS. Or
when applied to a large dynamic zone may never be able to calculate a
valid digest in time, nor have a recipient accept it.
I think Experimental is fine. I'm not sure without a clear text
addressing my points 1,2, 13 and 15 that this is useful as a standards
track document for general use.
Later, Mike
On 1/4/2020 5:30 PM, Tim Wicinski wrote:
All,
The chairs would like to welcome the new year with some work.
The authors and chairs feel this document is ready to move forward.
One thing to note: This document has the status "Experimental", but
the authors feel they've performed their experiments and their current
status is "Standards Track".
This starts a Working Group Last Call for "Message Digest for DNS Zones"
Current versions of the draft is available here:
https://datatracker.ietf.org/doc/draft-ietf-dnsop-dns-zone-digest/
The Current Intended Status of this document is: *Standards Track*
Please speak out if the intended status seems incorrect.
Please review the draft and offer relevant comments.
If this does not seem appropriate please speak out.
If someone feels the document is *not* ready for publication,
please speak out with your reasons.
This starts a two week Working Group Last Call process, and ends on:
18 January 2020
thanks
tim
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop