Re: [DNSOP] Updated KSK Sentinel document

Warren Kumari <warren@kumari.net> Wed, 21 February 2018 13:54 UTC

Return-Path: <warren@kumari.net>
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 09450127136 for <dnsop@ietfa.amsl.com>; Wed, 21 Feb 2018 05:54:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=kumari-net.20150623.gappssmtp.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 Pt1OIEMM72vg for <dnsop@ietfa.amsl.com>; Wed, 21 Feb 2018 05:54:07 -0800 (PST)
Received: from mail-wr0-x22a.google.com (mail-wr0-x22a.google.com [IPv6:2a00:1450:400c:c0c::22a]) (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 A0B93126DEE for <dnsop@ietf.org>; Wed, 21 Feb 2018 05:54:06 -0800 (PST)
Received: by mail-wr0-x22a.google.com with SMTP id u49so4692375wrc.10 for <dnsop@ietf.org>; Wed, 21 Feb 2018 05:54:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kumari-net.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Xt0F+rROr9Bfd86iFRzr+yYpS5JLfAHN+bGV47thBqg=; b=TQK2CaJ4RxeEpRc43EnV2x9hD4rybke/xDDC6oxwuPwXKZgkIsA5VqHFJKWm0p9anu TK18+NwqmyEZBYwUMgroEcApk2pZ4wybNqlzwhUTk8gonUw/HSFTO0EigErBx68MNIuc gI5y40GlBJ78s5uKgTp5VbxI+kw1BlS+I2dkKaSPRL6i4zXFS0O5XUtHyHPsT1Eh1Pjm nQWnVdzN16VcyUWpvS5wRLGwlciksI0gxdlGMU0+RK+J8U6OGtaCn1ibQifRcJIawG0c 5hxIefVQYYgmgVtWU4fXDUF1d9X9/g8ASUumvF4hdLMCZfqOawztvVNvfV6vpJnkGyYw 1mFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Xt0F+rROr9Bfd86iFRzr+yYpS5JLfAHN+bGV47thBqg=; b=lXPCNoVDq5d/lgp/YjhyHBPmQTe3yqEtEVVSjNngec5EO0whr7N8oq3PwB7Yapegcx LPrQ6goUeXQe1qDcmHtf4Z7Wk1zpys4s0eEg883olukjct6WSQmXB3tmfpvwIguiUmD5 aCY8hkiK7Kt70GJB8z8oA0JTj7QCH00m3pwWDSzKAVjGDcw6iensM13TCXOpldC9jdXm SoQu4LMtmyLZKGujVCMfDRAddKuEYTsEomE9bPYGOWexv0gizla61kJHwAR0i6+8kAcn wyvgnW2LbWfhwiRaWQOmKwOZGY8CjG4zNwpjdNFRubQGNZekArBN+YJAygIXYr5xAREy QqLw==
X-Gm-Message-State: APf1xPA8U0v9UyjQ2GkLMmFcRVKHdZJiPYu5GA71uSToqYaXbd1Igj8s ao7EUMLCyxm4PollHbolGL6D/besVxNpqv+FV/BSYD1ldE0=
X-Google-Smtp-Source: AH8x227hYGnJ8SgCtJhDvTFXn1z6bveVDcLbUlhOYk4AShpHYI8wNq81lAeeGvMCBauyE8CzixFtKBz8R6+vrP3Wp8A=
X-Received: by 10.223.132.166 with SMTP id 35mr3071320wrg.183.1519221244487; Wed, 21 Feb 2018 05:54:04 -0800 (PST)
MIME-Version: 1.0
Received: by 10.223.152.242 with HTTP; Wed, 21 Feb 2018 05:53:23 -0800 (PST)
In-Reply-To: <CAJE_bqeTyiotHcnuQ69=dF+MWXwztNNqamRf5BCOj04hhVGrgA@mail.gmail.com>
References: <CAHw9_iJ5Dr0sHw3EkWyHeAVDDb3k=8C6XOfrA02-_bQzd4n2Sg@mail.gmail.com> <CAJE_bqeTyiotHcnuQ69=dF+MWXwztNNqamRf5BCOj04hhVGrgA@mail.gmail.com>
From: Warren Kumari <warren@kumari.net>
Date: Wed, 21 Feb 2018 08:53:23 -0500
Message-ID: <CAHw9_i+G4V85oH96H9DgZR+mh9vnNA464wUezpyaUmCTqtHdqA@mail.gmail.com>
To: 神明達哉 <jinmei@wide.ad.jp>
Cc: dnsop <dnsop@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/6GkhJ9wgHIQYSZ1YUNx1RVGqDRs>
Subject: Re: [DNSOP] Updated KSK Sentinel document
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, 21 Feb 2018 13:54:10 -0000

On Wed, Feb 14, 2018 at 5:05 PM, 神明達哉 <jinmei@wide.ad.jp> wrote:
> At Mon, 12 Feb 2018 15:28:50 -0500,
> Warren Kumari <warren@kumari.net> wrote:
>
>> Anyway, we've finally posted an updated version -
>> https://datatracker.ietf.org/doc/draft-ietf-dnsop-kskroll-sentinel/
>
> I've read draft-ietf-dnsop-kskroll-sentinel-01 (this is my first
> careful read of this draft) and found it generally well-written.

Thank you!

>
> I have some comments on 01.  These are basically editorial.

Even more thank you!

>
> - General
>   I think it's worth pointing out that SERVFAIL can be returned for
>   various other reasons and the detection mechanism relying on it
>   isn't reliable.  This is probably okay given the purpose of this
>   detection, but I think it's better to note it explicitly.
>

Good point. I had some trickiness writing this - how is "The
techniques describes in this document rely on (DNSSEC validating)
resolvers responding with SERVFAIL (RCODE 2) to valid answers. Note
that a slew of other issues can also cause SERVFAIL responses, so
false positive or negative results may sometimes occur." ?

> - Section 1.1
>    Address Record: Throughout this document we use the term Address
>    Record (AR) to mean an A or AAAA record.  [...]
>
>   I actually didn't find this term other than here and Section 9
>   (change log).
>

Ah, thanks, removed.

> - Section 1.1 and throughout the draft
>
>    AAAA records and the IPv6 documentation prefix (2001:DB8::/32) as
>
>   I'd suggest using lower-case letters to show IPv6 addresses and
>   prefixes, following the recommendation of RFC5952.  It's not a big
>   deal but it would be better if we can be more consistent on the
>   choice of letter case in RFCs.

Good point. Fixed.


>
> - Section 2
>
>    Charlie's resolvers are validating, but they have not been upgraded
>    [...]
>    resolve it).  He is able to fetch both of the other resources - from
>    this he knows (see the logic below) that he is using legacy, non-
>    validating resolvers.  [...]
>
>   Do you mean "he is using legacy validating resolvers"?  If it's not
>   a typo, the behind logic isn't obvious to me and it would help if
>   you explain it in more detail (instead of just referring to
>   'below').

Wow, fixed! Yup, Charlie is using a legacy, *validating* resolver.
Thanks for catching this!.


>
> - Section 3
>
>    [...] Note that
>    the test is "Is there a key with this KeyID in the resolver's current
>    trust store for the DNS root", not "Is there any key with this KeyID
>    in the trust store", nor "Was a key with this KeyID used to validate
>    this query?".
>
>   Unless I miss something, the draft doesn't clarify its use is
>   limited to root KSK until the next paragraph of this, so I suspect
>   this statement will confuse a fresh reader who reads this doc from
>   top to bottom without a particular knowledge of background
>   discussion.  I'd suggest noting it somewhere before this part,
>   perhaps in the introduction (and maybe also in abstract).

Thanks, done (it was actually mentioned much earlier, but is was easy to miss).

>
> - Section 3
>
>    [...]  Note
>    that the <tag-index> is specified in the DNS label using hexadecimal
>    notation.
>
>   I suggest clarifying whether '<tag-index>' contains leading 0s
>   somewhere in the document (this may not be the best place to do so,
>   but this is the first reference to 'tag-index' that made the
>   question occur to me).

Hmmm... Good point. I personally actually preferred having these as
"decimal" keys.
RFC1034, Sec 5.3: The DS RR Presentation Format sayeth:
   " The Key Tag field MUST be represented as an unsigned decimal
integer.", things like dig +multiline DNSKEY . shows it as decimal,
etc.
My initial demos (www.ksk-test.net) also all used decimal. Petr
recently pointed out to me that I'd messed up, and so I converted my
demo to use hex, as the draft states.
What does the WG prefer? Is the new KSK called "20326" or it is "4f66"?

Note that Knot Resolver 2.1  already implements (thank you!) this, and as hex.
But, yes, either way, we need to note if it is padded.
[TODO(WK): Raise the hex vs Dec issue]

>
> - Section 3
>
>    If the resolver has not placed a
>    Root Zone Key Signing Key with tag index value matching the value
>    specified in the query into the local resolver's store of trusted
>    keys, then the resolver should return a response indicating that the
>    response contains authenticated data according to section 5.8 of
>    [RFC6840].
>
>   Should we perhaps define "store of trusted keys" more precisely?
>   For example, if a key is in the "AddPend" status (per RFC5011) for
>   the resolver, should it be considered in the "store of trusted
>   keys"?

Nope. Well, yes, we need to better define it, but no, a key in AddPend
is not considered.
We explicitly mean "keys which are active and can be used for
validating entries in the root zone."

We have: "In particular, this response mechanism can be used to
determine whether a certain Root Zone KSK is ready to be used as a
trusted key within the context of a key roll by this resolver."
and I added:
"An active key is one which could currently be used for validation (ie
not in AddPend or Revoked state (RFC5011)).

Sounds reasonable?

>
> - Section 3
>
>    This mechanism is to be applied only by resolvers that are performing
>    DNSSEC validation, and applies only to RRset responses to an A or
>    AAAA query (Query Type value 1 or 28) where the resolver has
>    authenticated the response RRset according to the DNSSEC validation
>    process and where the query name contains either of the labels
>    described in this section as its left-most label.
>
>   Is the RRset in 'response RRset' intentionally added (or in other
>   words can't it just be 'response')?  Perhaps is the intent to
>   exclude negative responses?  In any case I think the intent should
>   be clearer here.  And if a mere 'response' suffices it's probably
>   less confusing to just say so.

Good point. I removed responses:
"This mechanism is to be applied only by resolvers that are performing
DNSSEC validation, and applies only to responses to an A or AAAA
query..."
There are some other places where RRSet is still needed, so I left
some of them in.


>
>   BTW, you might want to say 'a query for an Address Record' or 'an
>   Address Record query' instead of 'an A or AAAA query' (I guess
>   that's the intent of the introduction of this term.  See also my
>   first comment on Section 1.1 above).

Actually, there are small enough number of occurrences that explicitly
listing them (and not creating a new term) seemed better, so (see
ablove) I removed the "Address Record" term and left in the "A or
AAAA" stuff - please let me know if you agree.

>
> - Section 4
>
>    o  Vleg: A DNSSEC-Validating resolver that does not implement this
>       mechanism will respond with an A or AAAA RRSET response for
>       "kskroll-sentinel-is-ta", an A record response for "kskroll-
>       sentinel-not-ta" and SERVFAIL for the invalid name.
>
>   + s/RRSET/RRset/?
>   + 'an A record response' should be 'an A or AAAA record response' or
>     it's revised using the "Address Record" term.  Same comment
>     applies to other part of this section including the table.

Thank you, good catch. I s/RRSET/RRset/ and added "or AAAA".


Thank you very much for the comments and feedback - I've just pushed a
new version to GitHub (
https://github.com/APNIC-Labs/draft-kskroll-sentinel ) and will post a
new draft on a few minutes.

W


>
> --
> JINMEI, Tatuya



-- 
I don't think the execution is relevant when it was obviously a bad
idea in the first place.
This is like putting rabid weasels in your pants, and later expressing
regret at having chosen those particular rabid weasels and that pair
of pants.
   ---maf