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

"Wessels, Duane" <dwessels@verisign.com> Mon, 09 March 2020 20:47 UTC

Return-Path: <dwessels@verisign.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 059A13A16F7 for <dnsop@ietfa.amsl.com>; Mon, 9 Mar 2020 13:47:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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=verisign.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 doTZ-COjhiu8 for <dnsop@ietfa.amsl.com>; Mon, 9 Mar 2020 13:47:55 -0700 (PDT)
Received: from mail1.verisign.com (mail1.verisign.com [72.13.63.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C71983A16E6 for <dnsop@ietf.org>; Mon, 9 Mar 2020 13:47:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=10940; q=dns/txt; s=VRSN; t=1583786876; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=JeFDmNCs3BCi8bCM8IcvdH1ftnbkQ5n2vFeEkrRpvnM=; b=cPId0jsakYgINVlydEpGNABWpBzFmlGONoiRunL75esTA0RMNrJCay36 VtySyfuFFI+bISHulRpTzDXLttaIeo4s2ExaGr6B56a/2ZoajeYOciECn noSp2/GAcUrkHCHg1E7qNJ0Ie/30DaQzO75SaW1A7ushjVsn0245e9Hog W2j8ZsPzc8VtCPeiSul95MZMye9XBDrJCJV5x/bc7xxtHFPMoWmtSDEnW 1ApQOscYUdePewwAAJNfQcWbnNDa62nJqDhYyi5wh2GEGONLOulBXAXXg ZTOhx1uHv80XWTvQrCMXEZjSkFnq2ISwkh7CCMr7tR4ofnB6deNY4cAP8 Q==;
IronPort-SDR: POpNJODC7yFE8lc/2TCqpMHMYykyg8hp/UQ2sV7pmwxabCWatJmbu3wI+b43yFtuI37wLF0yWV 6kIbqwEsbJwUnJ+F7lSQGKKRZmoafqiaRMHMhHAV9pv3g71yvJh3nTQcW2nqaCrYfBMFa/cuR+ bstn4nk4M8leUNSkwNlCrqyVaD+fPW/Eipjki8tvAQzzkrDZkJjLEWADxO/1bYkbRauiT5eDG6 Bi977RknnfCaQGtqqEJnhw6mIBjMXDgO3GHZ9ZG70J3SfzJWAhm+iCLtUZY1YEmuNTkXg7nu5y fYc=
X-IronPort-AV: E=Sophos;i="5.70,534,1574121600"; d="p7s'?scan'208";a="954781"
IronPort-PHdr: 9a23:vyPdshIzlJuoGZMsUtmcpTZWNBhigK39O0sv0rFitYgXK/z7rarrMEGX3/hxlliBBdydt6sYzbOP4+u5AjNIyK3CmU5BWaQEbwUCh8QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6OPn+FJLMgMSrzeCy/IDYbxlViDanbr5+MRq7oR/MusULgoZuJbs9xxXLr3BVZ+lY2GRkKE6ckBr7+sq+5oNo/T5Ku/Im+c5AUKH6cLo9QLdFEjkoMH076dPyuxXbQgSB+nUTUmMNkhpVGAfF9w31Xo3wsiThqOVw3jSRMNDsQrA1XTSi6LprSAPthSwaOTM17H3bh8pth69AvhmvuwJwzJLVYIGNNfpxYKXdfc8BRWFcWspdTjFNDp+gY4cKCecKIORWoJTnp1YWrRWwGxSiBP/hxDFLiH/536o00+U9Hg7JxwEgEM4CsHHOodX1KKseT+a4x7TIwzXZaPNW3C/w5IbIfR8/uvGMRqx/cc7KyUU3CgjLgEiQppbjPzyL2OgGrm+W4PduVO2xkG4nsB9+ojy0xso3lInGmJgVylHf9SV4z4Y1I8e0R1J8Yd6hCZZdsTyROYhuQs46Xm1kpDw2xqAEtJO1ZiQG1ZQqyhDFZ/GId4WE+g/vWPqLLTtlhn9pZKiziwu9/EWj0OHwS8q53E5EriVbkdTAqnUA2hnJ5cWETvZy5UKs1DiR2w/O6+xJJFs7mK7aJpMjx7M9mJQevEbeESLwhU74lrWZdl8+9eit8+nnZ7LmqYKCOIJskQH+N7gumtS4AeQlLggCR2ib9vq41L3k5UD0XalEgOUrnqbZqJ7UKsUUqrKnDwNPzIYs9xG/Dy2+0NgCh3YIMUhJeAydj4jyPVHCOuz3DfC6g1i0kTdrwe7JPqH5D5nQMnTPiqrtcLRz5kJG1QY+zd5S64hbB7wFOP7zX1X+tN3cDh83KQy0xOPnBc1g2YIQR22PGbSZP73WsV+T/e8vPfeDZJUUuDbmKvgl6PjugWUlll8aeKmlxYEXZ2ygHvR6P0WZZmLhgs0PEGcEpAoxVurqiF6ZUTNIaHayWrgz5jA/CI68EYjDQYWtiqSb3CinBp1WenxGCleUHHftbYqEQfQMZziJL89giTwLSaKtS4g71RGhrAX60aZoLvLI+i0EspLuzMR15+/dlB0o9Dx7Edid02+WQmF7m2MHXT423KRlrUNhzVeD1LByg+ZEGtxL+/NJTgA6OIbBwOx8ENDyXRrBc8yISFm4XtWmDys9TtUrw98Be0x9Acmtjgjf3yq2BL8Yj7mLBIc28q/H2XjxO8Z9y27Y26k7ilkmX9dPOne6hq5+8AjTAZTFnFmel6avJuwg23vh9WyAhUSUtUdbS0YkS7rLR3kZZVD+otHw50eERLirX+cJKAxEnIS9J7BRZ9nyyR1qWf7lNZ6WN26ulnyrCBKT7q2Bdovxemobmi7aDR5XwEgo4X+aOF1mVW+aqGXEAWkrTAq3bg==
X-IPAS-Result: A2FEAADzqmZe/zGZrQpmGgEBAQEBAQEBAQMBAQEBEQEBAQICAQEBAYF7g0CBBgqUfCWDboV1kVsCBwEBAQEBAQEBAQMEAS8EAQGEQwKCMzgTAgMBAQsBAQEFAQEBAQEFAwEBAQKGEwYygjspAYNTAQEBAQIBHVwFCwIBCA4KLgIfESUCBA4FDoMYAYJKAw4RqHCCJ4gKDYIQEIE4gVOKc4FCPoERJwwUgk0+ghuCLwgzgwmCLASNdokEiWuOe0QDB4I8g3GCO4wEhFKCSZhskEOJYIxygzICBAIEBQIVgWmBe3AVZQGCQT4SGA2MSYFfGBWOEHSNfjFfAQE
Received: from BRN1WNEX01.vcorp.ad.vrsn.com (10.173.153.48) by BRN1WNEX02.vcorp.ad.vrsn.com (10.173.153.49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Mon, 9 Mar 2020 16:46:44 -0400
Received: from BRN1WNEX01.vcorp.ad.vrsn.com ([fe80::a89b:32d6:b967:337d]) by BRN1WNEX01.vcorp.ad.vrsn.com ([fe80::a89b:32d6:b967:337d%5]) with mapi id 15.01.1779.002; Mon, 9 Mar 2020 16:46:44 -0400
From: "Wessels, Duane" <dwessels@verisign.com>
To: Dick Franks <rwfranks@gmail.com>
CC: Mark Andrews <marka@isc.org>, Tim Wicinski <tjw.ietf@gmail.com>, IETF DNSOP WG <dnsop@ietf.org>, Michael StJohns <msj@nthpermutation.com>
Thread-Topic: [EXTERNAL] Re: [DNSOP] Second Working Group Last Call for: Message Digest for DNS Zones
Thread-Index: AQHV9dlwZ7wkLqvxv0mbkY9jaEbDiahAHbUAgACbx4CAAEXegA==
Date: Mon, 09 Mar 2020 20:46:44 +0000
Message-ID: <93E835F5-5421-4343-9D2B-A88937675E0A@verisign.com>
References: <CADyWQ+GDfbaAKz9iAWVH=TP=2A3hr9iGhTarayAEjgF5TrnvXQ@mail.gmail.com> <CAKW6Ri6YbMKquv7sMqK5D4OH7Z=h-zuvmUXqfUG2NpJdu91ooA@mail.gmail.com> <EA3EFDEF-ED88-4918-A49E-4832CBFA9C5E@isc.org> <CAKW6Ri4nVn78LfL_tL8G956gM23JWBJ7HJ3A5L4nqntmyAQRjw@mail.gmail.com>
In-Reply-To: <CAKW6Ri4nVn78LfL_tL8G956gM23JWBJ7HJ3A5L4nqntmyAQRjw@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3445.104.11)
x-originating-ip: [10.170.148.18]
Content-Type: multipart/signed; boundary="Apple-Mail=_55DF32F8-4E43-4EF3-8425-56DFFF0F17F6"; protocol="application/pkcs7-signature"; micalg="sha-256"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/TcOrfwjr4Lwvk3_geL2eX5NA7gQ>
Subject: Re: [DNSOP] Second 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, 09 Mar 2020 20:47:57 -0000


> On Mar 9, 2020, at 9:37 AM, Dick Franks <rwfranks@gmail.com> wrote:
> 
> 
>>> [3.1 para 1]
>>> 
>>>  In preparation for calculating the zone digest, any existing ZONEMD
>>> +  and covering RRSIG
>>>  records at the zone apex are first deleted.
>>> 
>>> [3.1 para 1]
>>> 
>>>  Prior to calculation of the digest, and prior to signing with DNSSEC,
>>>  a placeholder ZONEMD record is added to the zone apex.
>>> 
>>> reword as follows:
>>> 
>>>  Prior to calculation of the digest, and prior to signing with DNSSEC,
>>>  exactly one placeholder ZONEMD record is added to the zone apex.
>>> 
>>> [3.1 para 5]
>>> 
>>> reword as follows:
>>> 
>>>  If multiple digests are to be published in the zone, e.g., during an
>>>  algorithm rollover, each digest calculation is performed independently
>>>  using the placeholder for the corresponding Scheme and Hash Algorithm.
>> 
>> para 5 is about filling out the RRset to have a ZONEMD placeholder record
>> for each <Scheme,Hash Algorithm> pair.
> 
> Indeed, that is what para 5 says.
> 
> What I am calling into question is the necessity to bind each digest
> to *all* of its siblings,
> given that DNSSEC will be used to sign and protect the complete ZONEMD RRset.

It is not necessary.

ZONEMD on an unsigned zone only protects from unintentional changes.  Otherwise it is trivial to
regenerate the digest.

All that really matters is that we agree on the extent to which ZONEMD records should be included
the digest calculation.


> Binding each digest to its own placeholder should be sufficient, and

I'm not necessarily opposed to that.  

It does mean that adding or deleting one ZONEMD record to/from the zone does not change any of the
other ZONEMD digests that already exist.  There may be advantages and/or disadvantages to that.


> also removes the
> apparent conflict with [3.1 para 2]:
>   Prior to calculation of the digest, ... a [singular] placeholder
> ZONEMD record is added ...
> 
> With this simplification, verification can be achieved using a single
> ZONEMD, instead of
> needing the entire RRset.




> 
> Michael StJohns pointed out (Feb 25) that a verifier that does not
> recognise a particular
> ZONEMD Scheme and/or Hash Algorithm may be unable to create the
> required placeholders,
> and therefore unable to perform a verification using any
> (Scheme,Algorithm) at all.


I don't believe that to be the case.  For the unknown schemes/algorithms
the recipient simply replaces how ever many octets the received ZONEMD digest
had with all zeros.



> 
>>> [3.3] and [3.3.1]
>>> 
>>>   This specification adopts DNSSEC's canonical on-the-wire RR format
>>>   (without name compression) as specified in [RFC4034].
>>> 
>>>      RR(i) = owner | type | class | TTL | RDATA length | RDATA
>>> 
>>>      where "|" denotes concatenation.
>>> 
>>> The record collating sequence is scheme specific.
>>> 
>>> [3.4 bullet 3]
>>> 
>>>  o  Only one instance of duplicate RRs with equal owner, class, type
>>>     and RDATA SHALL be included ([RFC4034] Section 6.3).
>>> 
>>> This seems to detract from the idea of a general purpose comparison
>>> advertised in 1.3.5. If unexpected duplicate RRs were to be present in
>>> the original zone, the downstream copy should be expected to match,
>>> warts and all.
>> 
>> Do you really want to update every AXFR implementation on the planet?
> 
> Emphatically not;  but neither does massaging the digest to gloss over an
> erroneous duplication at the source seem like a sensible idea.
> 
> Moreover, the independence of any particular transport mechanism is one
> of the merits of this proposal.


I think this is the difference between a "zone file" and a "zone".  Due to the
cited RFC, duplicated RRs are suprresed when a zone file becomes a zone.  I don't
consider it "massaging" the digest.  I consider it calculating the digest over the
proper zone data.

DW