Re: [DNSOP] meaning of tag "match" for CAA RDATA

Mark Andrews <marka@isc.org> Wed, 07 February 2018 22:43 UTC

Return-Path: <marka@isc.org>
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 72A98124217 for <dnsop@ietfa.amsl.com>; Wed, 7 Feb 2018 14:43:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.911
X-Spam-Level:
X-Spam-Status: No, score=-6.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=no
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 8V1UwX_RVIH8 for <dnsop@ietfa.amsl.com>; Wed, 7 Feb 2018 14:43:54 -0800 (PST)
Received: from mx.pao1.isc.org (mx.pao1.isc.org [149.20.64.53]) (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 5FA8412025C for <dnsop@ietf.org>; Wed, 7 Feb 2018 14:43:54 -0800 (PST)
Received: from zmx1.isc.org (zmx1.isc.org [149.20.0.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx.pao1.isc.org (Postfix) with ESMTPS id 49C013AB072; Wed, 7 Feb 2018 22:43:51 +0000 (UTC)
Received: from zmx1.isc.org (localhost [127.0.0.1]) by zmx1.isc.org (Postfix) with ESMTPS id 0832B160082; Wed, 7 Feb 2018 22:43:51 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1]) by zmx1.isc.org (Postfix) with ESMTP id E6185160081; Wed, 7 Feb 2018 22:43:50 +0000 (UTC)
Received: from zmx1.isc.org ([127.0.0.1]) by localhost (zmx1.isc.org [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id prmJfRuc1XHN; Wed, 7 Feb 2018 22:43:50 +0000 (UTC)
Received: from [172.30.42.91] (c27-253-115-14.carlnfd2.nsw.optusnet.com.au [27.253.115.14]) by zmx1.isc.org (Postfix) with ESMTPSA id CC8DB160080; Wed, 7 Feb 2018 22:43:49 +0000 (UTC)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
From: Mark Andrews <marka@isc.org>
In-Reply-To: <CAJE_bqfQ2Lon6=m_Yc0-6+XxUng4ChiuhUNrMhwh1qgCJGEbfw@mail.gmail.com>
Date: Thu, 08 Feb 2018 09:43:47 +1100
Cc: dnsop <dnsop@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <44C731EE-D9C0-492A-842F-FE67218CD925@isc.org>
References: <CAJE_bqfEvy6-YovKCrtXxm81ieGPTBxpLk2NDuq115eHk3xmEg@mail.gmail.com> <1965473E-CDB6-44F9-89E0-33B12DF8D34E@isc.org> <CAJE_bqfQ2Lon6=m_Yc0-6+XxUng4ChiuhUNrMhwh1qgCJGEbfw@mail.gmail.com>
To: 神明達哉 <jinmei@wide.ad.jp>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/CIvW7v4q-HfrBAt_kVMtDZC_AmY>
Subject: Re: [DNSOP] meaning of tag "match" for CAA RDATA
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.22
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: Wed, 07 Feb 2018 22:43:56 -0000

> On 8 Feb 2018, at 9:15 am, 神明達哉 <jinmei@wide.ad.jp> wrote:
> 
> At Thu, 8 Feb 2018 08:25:35 +1100,
> Mark Andrews <marka@isc.org> wrote:
> 
>>> I happen to have this question while reading RFC6844: what does the
>>> "matching" mean in the following description of Section 5.1?
>>> 
>>>  Tag:  The property identifier, a sequence of US-ASCII characters.
>>> 
>>>     Tag values MAY contain US-ASCII characters 'a' through 'z', 'A'
>>>     through 'Z', and the numbers 0 through 9.  Tag values SHOULD NOT
>>>     contain any other characters.  Matching of tag values is case
>>>     insensitive.
> [...]
>>> Does this mean, for example, we should perform case-insensitive
>>> comparison of this field when we compare CAA RDATAs?  (If so, at least
>>> ISC BIND 9 isn't compliant to the spec; it doesn't care about the case
>>> of the tag field when loading or serving or updating or signing a CAA
>>> RR).
>> 
>> Why should it care about the case? ABC is different to abc as far as
>> DNSSEC and handling of unknown record types is concerned.  A signer
>> that is CAA aware could remove “duplicates” that differ in the case
>> of this field but nothing else can.
> 
> I didn't intend to say it (DNS implementation) should care about the
> case.  My point (or question) was the RFC text can be ambiguous.  On
> re-reading RFC3597 I now see it would clearly violate Section 6 of
> RFC3597:
> 
>   specifications for new RR types MUST NOT specify
>   type-specific comparison rules.
> 
> if it meant case-insensitive RDATA comparison.  But the current text
> of RFC6844 made me think whether the RFC erroneously violated it or it
> meant something else.  It would have been clearer if "Matching of tag
> values is case insensitive" were somewhere after Section 5.1, or at
> least it explicitly said this is about CAs that use the CAA, not for a
> DNS implementation.
> 
> I'd also wonder what the "Canonical Presentation Format" means then:
> 
>   Tag:  Is a non-zero sequence of US-ASCII letters and numbers in lower
>      case.
> 
> so, for example, we can't always safely dump a validly loaded zone
> containing CAA whose tag has an upper-cased letter into a file in the
> "canonical presentation format" and then re-load it, since the dump
> can result in false duplicates.
> 
> ...and now I see there was almost exactly the same discussion about 2
> years ago:
> https://www.ietf.org/mail-archive/web/dnsop/current/msg16810.html
> 
> Perhaps it's pretty clear that the current text of RFC6844 is very
> confusing (if not wrong) and worth some errata again?
> 
> --
> JINMEI, Tatuya

Software that processes CAA records returned by the DNS can remove
any duplicates detected at that level of processing. The DNS isn’t
in a position to do that de-duplication.

For UPDATE I would always delete the CAA RRset and re-add it to
update it rather than do it at the RR level.

I believe the current RFC is enough for the records to be interpreted
correctly if you don’t violate the SHOULD NOT.  I don’t believe that
they ever will contain values that violate that SHOULD NOT except in
test suites.

-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742              INTERNET: marka@isc.org