Re: [DNSOP] New draft on delegation revalidation

Shumon Huque <shuque@gmail.com> Sat, 25 April 2020 04:30 UTC

Return-Path: <shuque@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 6099E3A0775 for <dnsop@ietfa.amsl.com>; Fri, 24 Apr 2020 21:30:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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 S_EGF_gwlMZs for <dnsop@ietfa.amsl.com>; Fri, 24 Apr 2020 21:30:35 -0700 (PDT)
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) (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 F10113A0772 for <dnsop@ietf.org>; Fri, 24 Apr 2020 21:30:34 -0700 (PDT)
Received: by mail-ed1-x52f.google.com with SMTP id w2so8990541edx.4 for <dnsop@ietf.org>; Fri, 24 Apr 2020 21:30:34 -0700 (PDT)
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=5fkjwFTMk10p0ou8ashZ5w11EZV+l8zR0duW+8b6OAY=; b=Ua0UQbLqzTMCsz2OR4ZYOrhAlOLwkLA7zDDTidhAMjRpUOmGAjTLWfRUhzNxA20+CU NdNJfxV6nGAontnQwDh57FYeeDWQyV/oBIwsDjM7NnBpwUfUcCunmEtCUS6IviuC62iz usqAA9lQbZKMbuv9t8WHywuuHy9d7DdMWEEQf9RWW9G0t8b1WpF0DxZNi+XsZ8toouAv d/6JPX1iupcMirNbTVDIKST+sKoVy/36e1Sk/u/P2JoRPPfa0gw6guH1gvQtMeCJPrgv MJTlp9ZfRyV9EaVmzyMFaWjvuI2EYJ1kQlHUGERHTvHYQpJvT8nL6l1mvFbEbTcQtUPn O8pA==
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=5fkjwFTMk10p0ou8ashZ5w11EZV+l8zR0duW+8b6OAY=; b=Y59NFedNpONgQL/fFZTsDI+5r3JJN+rMGDJJrK8puvgjEzgUxOXsVY+x6K/L1hSA+X ShyDrEz77id+zgl35/erBrekXerzytsk2VjMY7YYiJOdlAk/cDdZTCgQ/9w7R6CaJZLI hTYJqZ25lu1kHvRAwKFxH57ijS2TZbQTlUwwHJn/FBWVM+jLBVRjUq6O1JpnD4GjLC+h VbLCbwUoz+B1NEznijbOIoivjdQc9hAIzYE4s1cf+tMGdHF2vjR6NFFvpqm3/zcEQJUh J5eY4zI4E69llF5NSLXHiTfKiJcWmpTQaWWIzVwUoRFB4p1f2+R0AeRmx3oEyy+V5LGh unyw==
X-Gm-Message-State: AGi0PuZ1f6uddfC46L0wzs1ItF8oI48eJx4RPGxZCnNCf3nJ6SFy7FyP w2H87Fr3l09TXmAmNzFj7EvDlomK18UsS7uxW48=
X-Google-Smtp-Source: APiQypLuOJGDMIE9oQtfxERCv86F24YooLicjXcjntsPJGuMVPaD2TfJ9uhj7gy2/33e61k880FPrSxOIK3Gn9OJykY=
X-Received: by 2002:aa7:da8b:: with SMTP id q11mr10721650eds.359.1587789033121; Fri, 24 Apr 2020 21:30:33 -0700 (PDT)
MIME-Version: 1.0
References: <CAHPuVdV9eSCLQOqMF0cq8fHcuSZs7nCgjhHMfMoaV5H=ekbtSA@mail.gmail.com> <CADyWQ+Gugw5ScSGDhDWLvrMQB-nNS+cOAcETQ9ssf2wPMFYq3w@mail.gmail.com> <CA+nkc8DkHaVR91koywh4KMx+-Pmw2gRR1KnuwUcP_j0G+k3S7A@mail.gmail.com> <CAHPuVdWSAX8Ha=djd_6qGC8NvaKAPjnNxu5UX8XW7fwZ6t_U_A@mail.gmail.com> <CA+nkc8DDHsocDkReb1GA1=6d_yau_jXLgwxZRhMFAfdJHaXMiw@mail.gmail.com> <CAHQ5LGpys=rDCDyvoBRW1_p4=V9XRCq+v5+cmqKaWHHbsCTNOA@mail.gmail.com> <CAHPuVdUEWQ+-OU8VTPwbZ8WDN8iTRk7dC0EASJNJVFr4FovaXA@mail.gmail.com> <CAHQ5LGq91XKZ0Gxz2LLrXzGKEDAvg-U5A89s9b7pgGyO-25f5g@mail.gmail.com>
In-Reply-To: <CAHQ5LGq91XKZ0Gxz2LLrXzGKEDAvg-U5A89s9b7pgGyO-25f5g@mail.gmail.com>
From: Shumon Huque <shuque@gmail.com>
Date: Sat, 25 Apr 2020 00:30:20 -0400
Message-ID: <CAHPuVdW5AYyhfVLYOe8f7w9aVjoLVJwHu+fM8yCGt9-L42Rwwg@mail.gmail.com>
To: Gavin McCullagh <gmccullagh@gmail.com>
Cc: Bob Harold <rharolde@umich.edu>, Tim Wicinski <tjw.ietf@gmail.com>, "dnsop@ietf.org WG" <dnsop@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000004c2f9a05a415f1ed"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/kMgIv7Btt4ZDrgZC_Ej1SgDrdCQ>
Subject: Re: [DNSOP] New draft on delegation revalidation
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: Sat, 25 Apr 2020 04:30:37 -0000

On Fri, Apr 24, 2020 at 6:21 PM Gavin McCullagh <gmccullagh@gmail.com>
wrote:

>
>
>> [a] seems like a definition which could be changed if it was so decided.
>>> DS records are totally parent centric for example.  It seems like NS could
>>> be too if we declared the in-zone NS to be "informational only".  [...]
>>>
>>
>> Changing (a) properly requires re-designing the DNS delegation mechanism,
>> and sounds like a much more ambitious undertaking to me. I am actually
>> interested in looking at that myself, because there are certainly
>> deficiencies that could be addressed. Since delegation records and glue
>> address records are unsigned, they can be spoofed, and DNSSEC should really
>> allow us to detect such spoofing once a resolver sees referral data. And
>> not (as it now is), after being sent on a wild goose chase to a set of
>> rogue servers, and subsequently determining that those servers cannot
>> present a DNSKEY RRset that matches the parent DS. Fixing this, requires
>> creating a new delegation record type that can be signed in the parent. And
>> the TTL issue and delegation revalidation would then have to be assessed by
>> looking at both the child NS set and this new delegation record (although
>> for secure delegations, the DS set could likely be used in place of the
>> latter). And then figuring out the large work of how to deploy it Internet
>> wide.
>>
>
> I may be missing some subtlety here, but parent-centric resolvers seem to
> use the NS records and DS records from the parent zone today just fine.
> The DS is signed by the parent and provided in the same response as the
> referring NS record.  If the response was spoofed the DS rrsig wouldn't
> validate.   If the referring NS record needs to be signed, surely that
> should be designed into DNSSEC.  Are you saying you believe that
> parent-centric resolvers are insecure?
>

Hi Gavin,

I probably wasn't clear enough, but what I was saying is that changing the
definition of what side of the zone cut is authoritative is a rather
significant change to the protocol. And any proposal for such a change
would need to carry a high bar for acceptance. This would be a breaking
change for validators. Deployed code today already understands the
semantics and authoritative-or-not nature of the NS/DS sets and would need
to change. Lots of NS records on either side of zone cuts would need to
signed/unsigned. For large delegation centric zones that use opt-out, this
would also impose quite a significant cost. The non-disruptive, incremental
way to introduce such a change would be introduce a new delegation record.

There are two categories of unfortunate "surprises" we commonly see due to
>>> child centric resolvers.  [...]
>>>
>>
>> I would hope that making resolver behavior consistent would address most
>> of this. If all resolvers locked on to the authoritative NS set, then most
>> of the surprises would disappear (hopefully).
>>
>
> Things will break more reliably, for sure.   And I agree that consistency
> is better.   But it likely won't make it any easier for non-DNS geeks to
> understand why.
>

Thanks for sharing your experience. I suspect that if we asked a wide range
of folks, we would get differing experiences too. My own experience is
quite different than yours. At my employer, we do lots of DNS changes all
the time. We have ~ 3000 registered domains, and there are constant changes
related to moving between DNS providers (acquisitions, DNSSEC signing
requirements, and other reasons). I often find checklists that have steps
like: lower the zone NS TTL, make the changes, update the TLD via the
registrar interface/API, wait, raise the TTL. This is almost like DNS 101
to them, and I have had to step in explain that lowering the TTL may not
have the effect they expect. These are quite smart people, just not DNS
experts. They understand that there are parent and child NS records, that
they should take care to make sure they match. They are only vaguely aware
of glue records and when they are needed. They see how to set the TTL in
their zones, and expect that to be used. The registrar/registry interface
presents no TTL configuration knobs, so they are not even aware there is an
issue.

To give you another example, on several occasions in the past few years,
I've had to step in to repair an outage caused by teams deploying parent
and child zones on the same server, who didn't realize that the parent has
to have NS records at the child delegation points - a configuration which
accidentally worked, until a later time at which the parent zone was
migrated to another server and things broke.

So, I suspect your experience is not universal.


> PS How truly intractible is the registry argument?  It seems something
>>> like "When an NS change is made, TTL=3600 for the first N hours, then 2
>>> days thereafter." would be a major step forward without drastically
>>> increasing complexity.
>>>
>>
>> Based on history to date, it seems to be rather intractable, but I would
>> love to be proven wrong. The interfaces that registrars use to update
>> delegation records in the registries don't even offer any TTL configuration
>> option that I've seen (even if the registries were willing to support it).
>> Does the EPP DNS mapping even support setting TTL?
>>
>
> That's one way to approach it.   What I was thinking was, if the
> registries want to dictate the TTL, that seems understandable.  But in so
> doing, they could have a process where they dictate a lowered TTL (of their
> choice) for a period after each change, then raise it back up to normal in
> order to reduce the impact of mistakes/problems.   A "bake period"
> essentially.  The timers would be argued about of course, like all magic
> numbers, but something conservative like an hour would seem like a major
> improvement on today.  Hypothetically, would you consider that would
> improve your use case?
>

Based on my experience, I doubt that registries would do this. I could be
wrong though, and perhaps we should ask and get them to respond to your
suggestion. But to answer your last question, the draft that has been
proposed is not about improving my own personal use case(s).

Shumon.