[DNSOP] Re: [Ext] Persistence of DCV, including for Delegated DCV (for draft-ietf-dnsop-domain-verification-techniques)

Paul Wouters <paul@nohats.ca> Mon, 12 May 2025 18:42 UTC

Return-Path: <paul@nohats.ca>
X-Original-To: dnsop@mail2.ietf.org
Delivered-To: dnsop@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 2DBC027AC134 for <dnsop@mail2.ietf.org>; Mon, 12 May 2025 11:42:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -4.398
X-Spam-Level:
X-Spam-Status: No, score=-4.398 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, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=nohats.ca
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2cwcDmip47Nq for <dnsop@mail2.ietf.org>; Mon, 12 May 2025 11:42:32 -0700 (PDT)
Received: from mx.nohats.ca (mx.nohats.ca [193.110.157.85]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id A975F27AC12F for <dnsop@ietf.org>; Mon, 12 May 2025 11:42:32 -0700 (PDT)
Received: from localhost (localhost [IPv6:::1]) by mx.nohats.ca (Postfix) with ESMTP id 4Zx7kt654hz7pR; Mon, 12 May 2025 20:42:30 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nohats.ca; s=default; t=1747075350; bh=I7dnJH7SrdH8+6PXdCYkYPWNdOslTlEqbRx+/+HLrcc=; h=Date:From:To:cc:Subject:In-Reply-To:References; b=BrR9sqLkXInkoJm7Dj5zU3a1mc+pSDrXwokjKlwj9ek2ix3+ao8q+q5oL8hbeb82P Fb1LknioBiOU0mzhM6u/Xj+UbuhCZwP4klYT611FskqdyxhHACJKR6UGNFlDfjuvgC FyYOr2VDuwSBOA4UqGOc5XuVlIrusIqY79W7hSc4=
X-Virus-Scanned: amavisd-new at mx.nohats.ca
Received: from mx.nohats.ca ([IPv6:::1]) by localhost (mx.nohats.ca [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id 8ufK0KCXbCrA; Mon, 12 May 2025 20:42:29 +0200 (CEST)
Received: from bofh.nohats.ca (bofh.nohats.ca [193.110.157.194]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx.nohats.ca (Postfix) with ESMTPS; Mon, 12 May 2025 20:42:29 +0200 (CEST)
Received: by bofh.nohats.ca (Postfix, from userid 1000) id 63E27150BD76; Mon, 12 May 2025 14:42:28 -0400 (EDT)
Received: from localhost (localhost [127.0.0.1]) by bofh.nohats.ca (Postfix) with ESMTP id 5F46C150BD75; Mon, 12 May 2025 14:42:28 -0400 (EDT)
Date: Mon, 12 May 2025 14:42:28 -0400
From: Paul Wouters <paul@nohats.ca>
To: Ben Schwartz <bemasc=40meta.com@dmarc.ietf.org>
In-Reply-To: <SA1PR15MB43706B717CABF88178152F57B397A@SA1PR15MB4370.namprd15.prod.outlook.com>
Message-ID: <7f785910-73c9-f322-b0f1-839cd3f7cce8@nohats.ca>
References: <CAKC-DJiQXWqT+kitGO_bjdwAzN8u11WrGfSpE99HGtoVbg9OHw@mail.gmail.com> <C42CC896-CA4C-4894-9A35-D5027FD48521@icann.org> <1f9237cf-fc78-3e12-f8bb-40699dc04d21@nohats.ca> <CAKC-DJhLGHmWVT8JYkSHAfm7HiT8dLmiOqN6Aqc2kN4dyXK96g@mail.gmail.com> <SA1PR15MB43706B717CABF88178152F57B397A@SA1PR15MB4370.namprd15.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Message-ID-Hash: HTLWK5CA6ILGGA4IBT3J3LRPYPXX6MBV
X-Message-ID-Hash: HTLWK5CA6ILGGA4IBT3J3LRPYPXX6MBV
X-MailFrom: paul@nohats.ca
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-dnsop.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Erik Nygren <erik+ietf@nygren.org>, Paul Hoffman <paul.hoffman@icann.org>, dnsop WG <dnsop@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [DNSOP] Re: [Ext] Persistence of DCV, including for Delegated DCV (for draft-ietf-dnsop-domain-verification-techniques)
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/9LNvSBzDRgwza4Yq8fzPIOsc7hA>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Owner: <mailto:dnsop-owner@ietf.org>
List-Post: <mailto:dnsop@ietf.org>
List-Subscribe: <mailto:dnsop-join@ietf.org>
List-Unsubscribe: <mailto:dnsop-leave@ietf.org>

On Mon, 12 May 2025, Ben Schwartz wrote:

> I believe the current draft text in the datatracker agrees with me.  For example, draft-07 Section 4.3 says
> 
> > Some Application Service Providers currently require the Validation Record to remain in the zone indefinitely for periodic revalidation purposes. This practice
> should be discouraged. Subsequent validation actions using an already disclosed token are no guarantee that the original owner is still in control of the domain,
> and a new challenge needs to be issued.

Yes I think this paragraph should be replaced, and we should add a
Section that talks about DVC and periodic revalidations and their
issues in summary, and punt lifecycles of periodic to another document.

> Surely something cannot be a "best current practice" if it is also "discouraged" and one "needs" to use the other approach.  However, other portions of the draft
> are somewhat in tension with this paragraph, hence my PR to try to clarify the draft's stance.

Right.

> > Talking about life cycles is useful, but I think like the lifecycle for
> > SSL certificates, can only be feasibly done if there is an automated
> > system like ACME to fully automate this. The question then though, is
> > how much real "admin permission" does such a record give you if the
> > admin really doesn't know because a certbot like script is running
> > someplace authorizing on their behalf?
> 
> The (unstated!) presumption of DCV is that an actor who can write a DCV record at _$foo-challenge.$domain can also overwrite any record on $domain.  This actor
> could already do a lot of bad things, like taking websites on $domain offline, so their permission is sufficient to perform certain actions that pose risk (e.g.
> creating a risk of DoS), as that risk is not incremental.

I was talking about the reverse problem. If I "ACME" my period revalidation
records, is it still really a revalidation? It's just a cronjob that I
as IT admin will have forgotten about. I will forget to turn it off when
I am ending a service.

> Without this assumption (or an equivalent rule about parties authorized to update parts of the zone), DCV doesn't work at all.  Perhaps we need to make that more
> explicit...

I am not sure what this means.

> > I still believe we are picking the best of _current_ practices ...
> 
> Drawing a very hard distinction between DCV and persistent authorization is certainly a current practice, and in my view (and the view of draft-07!) it is the best
> one.  Not all current practices are best ... even if they are indeed widely used without incident.

Perhaps we are talking about different things. Do you mean to say that
you would be okay with 1 DCV to prove control (which expires and gets
removed) and 1 long term record without token/randomness that somehow
points from a unique service name prefix via CNAME or RDATA to the target
service provider's service. And is never updated to prove freshness?

Or are you after monthly proofs of freshness?

I think the first is reasonable, as long as you ask for both DNS records
at once, and then tell/show that one of them can be removed after
verification.

What I don't think is reasonable, is requiring re-authorization by using
a new token every month. It's too complex/annoying/fragily for humans,
and if you automate it away it ceased to perform its intended purpose.

Paul