Re: [Acme] .well-known for dns challenges

Benjamin Kaduk <kaduk@mit.edu> Fri, 19 July 2019 22:17 UTC

Return-Path: <kaduk@mit.edu>
X-Original-To: acme@ietfa.amsl.com
Delivered-To: acme@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3235D120071 for <acme@ietfa.amsl.com>; Fri, 19 Jul 2019 15:17:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] 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 VSqG91oy7Lz7 for <acme@ietfa.amsl.com>; Fri, 19 Jul 2019 15:17:28 -0700 (PDT)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (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 4CA8D120047 for <acme@ietf.org>; Fri, 19 Jul 2019 15:17:28 -0700 (PDT)
Received: from kduck.mit.edu ([24.16.140.251]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x6JMHINV014339 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 19 Jul 2019 18:17:21 -0400
Date: Fri, 19 Jul 2019 17:17:18 -0500
From: Benjamin Kaduk <kaduk@mit.edu>
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Cc: Ted Hardie <ted.ietf@gmail.com>, "acme@ietf.org" <acme@ietf.org>
Message-ID: <20190719221717.GD8050@kduck.mit.edu>
References: <62e16bb7-8fa4-fd3e-0fc7-487b86313210@cs.tcd.ie> <CA+9kkMDCLedzujsNDOv2F31YNfe6exBQFMWH8Frf3qYT6o=cXw@mail.gmail.com> <678e7a03-47af-d329-b412-7a88ed8a2ad7@cs.tcd.ie>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <678e7a03-47af-d329-b412-7a88ed8a2ad7@cs.tcd.ie>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/acme/Mvr8N8OMUrXJKZQpiwCbu8-ausE>
Subject: Re: [Acme] .well-known for dns challenges
X-BeenThere: acme@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Automated Certificate Management Environment <acme.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/acme>, <mailto:acme-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/acme/>
List-Post: <mailto:acme@ietf.org>
List-Help: <mailto:acme-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/acme>, <mailto:acme-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 22:17:30 -0000

I don't have much to add, but...

On Tue, Jul 16, 2019 at 05:44:39PM +0100, Stephen Farrell wrote:
> 
> Hiya,
> 
> On 15/07/2019 17:00, Ted Hardie wrote:
> > Howdy,
> > 
> > A reply in-line.
> > 
> > On Sun, Jul 14, 2019 at 2:07 PM Stephen Farrell <stephen.farrell@cs.tcd.ie>
> > wrote:
> > 
> >>
> > So, if I were personally configuring a similar system, I would avoid
> > ..well-known, because it makes the information available to anyone who polls
> > for it. 
> 
> Yep. OTOH so does the DNS once you know the name.
> 
> > That gives information to an attacker about when the renewals are
> > occurring and what the challenges are.   They still need to successfully
> > mount an attack to make use of it, but I don't see the reason to put that
> > in a publicly accessible director. 
> 
> That did bother me a bit. My reasoning was that since the challenge
> gets published in the DNS it has to be ok to publish it elsewhere.
> 
> I was also a bit concerned that a bad actor can predict the timing,
> but I think that's more down to the CA and the ACME client. With LE
> for example, IIUC anyone can calculate likely times for renewal given
> the current cert. It might be worth adding a bit of randomness in
> there somewhere maybe.
> 
> > I would probably personally use rsync
> > of a directory with a similar check.  If I had to use HTTPS for some
> > reason, I would probably put it in a directory which required a distinct
> > authorization from any other data on the web site and pull it that.
> 
> That'd also work. In my case, I didn't want to have to configure
> anything about the zone factory on the web server, just out of
> sheer laziness:-) I considered maybe encrypting the challenges for
> the zone factory (via PGP) as well, in case we ever end up with
> some kind of challenge that'd need that, but in the end I guess
> that's not needed.
> 
> > 
> > The rest of this flow looks fine.
> > 
> > A few minutes after that's done the web server (via a
> >> another cronjob) checks if the correct new values have
> >> been published in the DNS, and once it sees that's been
> >> done, it finishes off the ACME renewal process with the
> >> CA.
> >>
> >> Note that I'd be entirely happy to change the URL above
> >> and/or the syntactic-sugar around the content expected to
> >> be found there if there were a desire to document this.
> >>
> > If you did document this, I would suggest modifying it as above.  I'm not
> > personally sure that this is any value to making the directory a standard.
> 
> I went for a .well-known for the same laziness reason - it
> saves me having to configure anything except the name on the
> zone factory.

... just in case it's not clear to anyone, you shouldn't put anything in
/.well-known unless you intend to register it or are willing to suffer the
consequences of someone else registering it [for different use].  I don't
have any arguments for or against /.well-known in this case that haven't
already been mentioned.

-Ben