Re: [DNSOP] Working Group Last Call for: Message Digest for DNS Zones

Tim Wicinski <tjw.ietf@gmail.com> Mon, 06 January 2020 23:28 UTC

Return-Path: <tjw.ietf@gmail.com>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 05A8B12007C for <dnsop@ietfa.amsl.com>; Mon, 6 Jan 2020 15:28:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Vj_VlO1PpH5H for <dnsop@ietfa.amsl.com>; Mon, 6 Jan 2020 15:28:24 -0800 (PST)
Received: from mail-ot1-x32b.google.com (mail-ot1-x32b.google.com [IPv6:2607:f8b0:4864:20::32b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 29F1612010F for <dnsop@ietf.org>; Mon, 6 Jan 2020 15:28:24 -0800 (PST)
Received: by mail-ot1-x32b.google.com with SMTP id d7so69356255otf.5 for <dnsop@ietf.org>; Mon, 06 Jan 2020 15:28:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=iFyc77t6yobvVNi1OHWAcYFY0Inzd9ntG+6fYFTHhlQ=; b=FRZTt1DhAEcaf9KDevrdgZE1XmlkdrlHiqmnZ2K00a4574p3PNpMRCwYNnUnvtfpKF XpZD2zdwpqxotqEZcTKP9KwAJuxmWUQ6OXUqf07kVSuwLw5lm7OEO9J0FiMil+yvURct rjn1UF7jIlNyPsC2X9L7nMT6Zwga7vnfHosenZnVc14DE3070z81CTQNX57ehc9lAClG QOvgxc1Ts9EzrTyDz80NnoRU5F3XsR3cbjtU8N67afv7EZwkoLRKW4xpsr7o1TTAUnKZ DUcTKMakQAlAUtO5hpKlvEqamrgryAw5c22XrwOvqDn4+mLRCykh0OSsyKxHwJXTWezG DVig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=iFyc77t6yobvVNi1OHWAcYFY0Inzd9ntG+6fYFTHhlQ=; b=EI9D3t0tp8MT62bJuBqqyIFTaV/WVivMMS1ni2O+Z62kE73vB25uCkg8C7B2gHeU2B AClA4abDJSeTHVxff2oimF0kc8m8G4emPCUByG1K0REHru7EyqTzCRsvwwN/TdWeg2na XMIk/bAAQNJuq1EjQYyPv4251Nc067hD2VWLw+pMrmcBvXnf2ofjlLdYkV5S3J7IDxRF 9O8sm+S0jNhX/pmZIfq31J0Vy4XbRpnwudJ40JBt8/rfKrqxcZGrznMoXS3Oi/Ssu0CX 6QqoZIOog2HCJYyW2eyaiDUkM01BjefHodItqPhYiIpXXyzDmnE1KYOXuHO0u3ufVxig 553A==
X-Gm-Message-State: APjAAAWePy9n4K2hrT3dpIB0yOMV4PNM689+WPJBr15StlahMghO0aEf 21XdQ1pu+u6ap4Fr5oghYXpYtv8E2gedULw3E9c=
X-Google-Smtp-Source: APXvYqy6QnFbVH5SeOSmoo9DnvF+Ba0nYvvDUQLvXbJGmzdAERD+YvXRlNo2J5B8IClj6LZW+FGl1+XlzQ6l0M8cj9c=
X-Received: by 2002:a9d:65da:: with SMTP id z26mr110588111oth.197.1578353303491; Mon, 06 Jan 2020 15:28:23 -0800 (PST)
MIME-Version: 1.0
References: <CADyWQ+G1w9_vcU3oO9MsKcP4hTLPXKFb+xY7LJGExbAfjzsDMw@mail.gmail.com> <84650844-1d13-9377-c913-23dcbc76dc37@nthpermutation.com> <C4EB59C4-EA83-4DBE-84D0-D8D43735B63D@verisign.com>
In-Reply-To: <C4EB59C4-EA83-4DBE-84D0-D8D43735B63D@verisign.com>
From: Tim Wicinski <tjw.ietf@gmail.com>
Date: Mon, 06 Jan 2020 18:28:12 -0500
Message-ID: <CADyWQ+Gx7mbEZp4gWY_Suf=V8AE03jkNKvUoztoFo-n7sEabVg@mail.gmail.com>
To: "Wessels, Duane" <dwessels=40verisign.com@dmarc.ietf.org>
Cc: Michael StJohns <msj@nthpermutation.com>, "dnsop@ietf.org" <dnsop@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000fc1982059b810337"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/UEiDBt8mHwjHdEuBolQO5_ua_GQ>
Subject: Re: [DNSOP] Working Group Last Call for: Message Digest for DNS Zones
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Jan 2020 23:28:27 -0000

Duane

On the zone size point, I would suggest define what you consider to be
'large' and 'very large'.
Today I consider 'large' to be in the 10MM records, but in a year, I would
say 'large' is 30MM records.

Tim


On Mon, Jan 6, 2020 at 6:22 PM Wessels, Duane <dwessels=
40verisign.com@dmarc.ietf.org> wrote:

> Hello Mike, thanks for the feedback.
>
>
> > On Jan 4, 2020, at 5:14 PM, Michael StJohns <msj@nthpermutation.com>
> wrote:
> >
> > 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.
>
> I am reluctant to add this.  As John said, I think it won't age well.  I
> think there is no obvious size at which to make a recommendation.  For uses
> cases such as CZDS / zone file access, I see no harm at all to add ZONEMD
> for even very large zones.  What might be missing is a paragraph that says
> those that publish ZONEMD records need to be aware of the possible
> consequences it would have on the consumers of their zone data.
>
>
> > 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.
>
> As one of the coauthors I feel the use cases are pretty self explanatory,
> but I'm willing to be convinced by others.
>
>
> > 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.
>
>
> Thanks, I think I see what you're saying.  Expect changes there.
>
>
> >
> >>  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".
>
> The current text was agreed to during earlier working group discussion.
> The problem with "ignore" (as John points out) is that it could mean the
> non-apex RR should be omitted from the zone.
>
> At one point the document said that non-apex ZONEMD was forbidden, with
> the implication that if found the whole zone should be rejected.  Similar
> to what you might do with a non-apex SOA.  But that seemed pretty harsh and
> in the end we settled on the current text.
>
>
> >>
> >>    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"
>
> I don't understand the use case for this.  IMO multiple ZONEMD RRs with
> same DT and Parameter, but different digest value is an error and should
> not be allowed.
>
> >>  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.
>
> I don't feel too strongly about it, but can you say why?  By my reading of
> the key words BCP upper case is appropriate?
>
>
> >
> > 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.
>
> Personally I would be willing to stipulate to that, but not in 2.1.3.  I
> would rather it go in section 4 (verification).
>
> >
> > 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.
>
> In my experience, duplicates are suppressed either when a zone is loaded
> or when it is signed.  ZONEMD matches DNSSEC.
>
>
> Here's how named-checkzone behaves:
>
> $ named-checkzone -i none -o /dev/fd/1 example.com /dev/fd/0
> $ORIGIN example.com.
> @ 60 SOA a b 1 2 3 4 5
> @ 60 NS ns
> NS 60 A 192.168.1.1
> @ 60 A 127.0.0.1
> @ 60 A 127.0.0.1
> zone example.com/IN: loaded serial 1
> example.com.                                  60 IN SOA
> a.example.com. b.example.com. 1 2 3 4 5
> example.com.                                  60 IN NS
> ns.example.com.
> example.com.                                  60 IN A           127.0.0.1
> NS.example.com.                               60 IN A
>  192.168.1.1
> OK
>
>
> And in ldns_dnssec_rrs_add_rr() at
> https://github.com/NLnetLabs/ldns/blob/develop/dnssec_zone.c#L46 you can
> see at the end that equal RRs are silently ignored.
>
>
>
>
> >
> > 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.
>
> Okay.
>
> > 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.
> >
>
> Okay.
>
>
> > 8) 3.4.1, there is no reason whatsoever to make the setting of the
> parameter field a SHOULD here.  MUST is correct.
>
> As I said above I'm willing to make this a MUST, but I disagree there are
> no reasons whatsoever.
>
> I think one legitimate reason would be to avoid ossification, or what I
> think they call GREASE in the TLS world.
>
>
> >
> > 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.
>
> is this better?
>
>    Include only one instance of duplicate RRs with equal owner, class,
> type, and RDATA.
>
> >
> > 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.
>
> I think you're focusing on the last paragraph of 3.5.  I can attempt to
> clarify it.
>
>
> > 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.
>
> Yes, its there, #5 in section 4.
>
>
> >
> > 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).
>
> How about removing the SHOULD and saying "The verifier first determines
> ....." ?
>
>
> >
> > 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?
>
> I'm in alignment with John Levine's responses on this.  It depends.  And
> if folks are arguing for Experimental then I'd say it doesn't matter.
>
> But if the WG supports Proposed Standard and wants to see such a section
> 4.2, then with the help of name server implementors I would be willing to
> add a section describing what name server software should do if the zone is
> signed with DNSSEC but the ZONEMD doesn't verify.
>
> >
> > 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".
>
> Okay, will try to fix that.
>
> >
> > 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 will add something to the security considerations.
>
> DW
>
>
>
>
>
> >
> >
> >
> > 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
>
> _______________________________________________
> DNSOP mailing list
> DNSOP@ietf.org
> https://www.ietf.org/mailman/listinfo/dnsop
>