Re: [Acme] Fixing the TLS-SNI challenge type

Ilari Liusvaara <ilariliusvaara@welho.com> Fri, 19 January 2018 16:02 UTC

Return-Path: <ilariliusvaara@welho.com>
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 E5B6F12D9FE for <acme@ietfa.amsl.com>; Fri, 19 Jan 2018 08:02:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level:
X-Spam-Status: No, score=-1.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=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 dEjC0kCYt3v0 for <acme@ietfa.amsl.com>; Fri, 19 Jan 2018 08:02:02 -0800 (PST)
Received: from welho-filter2.welho.com (welho-filter2.welho.com [83.102.41.24]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 384C3126E3A for <acme@ietf.org>; Fri, 19 Jan 2018 08:02:02 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by welho-filter2.welho.com (Postfix) with ESMTP id 76AF046ED6; Fri, 19 Jan 2018 18:02:00 +0200 (EET)
X-Virus-Scanned: Debian amavisd-new at pp.htv.fi
Received: from welho-smtp1.welho.com ([IPv6:::ffff:83.102.41.84]) by localhost (welho-filter2.welho.com [::ffff:83.102.41.24]) (amavisd-new, port 10024) with ESMTP id 9zMBBFVupdLp; Fri, 19 Jan 2018 18:02:00 +0200 (EET)
Received: from LK-Perkele-VII (87-92-19-27.bb.dnainternet.fi [87.92.19.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by welho-smtp1.welho.com (Postfix) with ESMTPSA id A96DD289; Fri, 19 Jan 2018 18:01:53 +0200 (EET)
Date: Fri, 19 Jan 2018 18:01:53 +0200
From: Ilari Liusvaara <ilariliusvaara@welho.com>
To: Richard Barnes <rlb@ipv.sx>
Cc: Jonathan Rudenberg <jonathan@titanous.com>, Patrick Figel <patrick@figel.email>, IETF ACME <acme@ietf.org>, Daniel McCarney <cpu@letsencrypt.org>, Roland Bracewell Shoemaker <roland@letsencrypt.org>
Message-ID: <20180119160153.GA28756@LK-Perkele-VII>
References: <FC8545A9-4D43-4BCC-ADB1-40A0F92461E8@titanous.com> <F2551BE5-0866-4F03-972E-E223E8D60001@letsencrypt.org> <a506c023-ff44-7f14-71b1-94e4e810cd12@letsencrypt.org> <0603b570-f790-88a7-5514-b324eff4f087@figel.email> <CAKnbcLj=eYhm8qRj0B0U5FOu=UMn0wY+5apkJ-aHhhfh+mS-uw@mail.gmail.com> <CAKnbcLj+UaUbu=EDbPU8UWwm9hUefXBKmtS=ZwSy7_2zCA=pmg@mail.gmail.com> <20180119153832.GA28022@LK-Perkele-VII> <CAL02cgRmAb7G-8EkK9UBZs36FMRMyfU1v0JVwVRXjXBO0TR8Hg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
In-Reply-To: <CAL02cgRmAb7G-8EkK9UBZs36FMRMyfU1v0JVwVRXjXBO0TR8Hg@mail.gmail.com>
User-Agent: Mutt/1.9.2 (2017-12-15)
Sender: ilariliusvaara@welho.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/acme/iIXQT5oByCFQSZbU34Ph-AoyX8Q>
Subject: Re: [Acme] Fixing the TLS-SNI challenge type
X-BeenThere: acme@ietf.org
X-Mailman-Version: 2.1.22
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 Jan 2018 16:02:10 -0000

On Fri, Jan 19, 2018 at 04:47:59PM +0100, Richard Barnes wrote:
> On Fri, Jan 19, 2018 at 4:38 PM, Ilari Liusvaara <ilariliusvaara@welho.com>
> wrote:
> 
> > On Fri, Jan 19, 2018 at 09:51:33AM -0500, Daniel McCarney wrote:
> >
> > AFAICT, the hard constraints are:
> >
> > - No taking site offline when validating.
> > - The validation certificates are not publically trusted.
> > - SNI needs to be set to the domain being validated.
> > - Compliant with reasonably strict reading of "10 methods" (which
> >   essentially impiles the third point and using certificate to
> >   transmit data).
> >
> 
> I'm less worried about this constraint.  If there's consensus for a change,
> changes can be made to the BRs much more quickly than an RFC can be issued.

Oh yeah, the minimum process latency for changing BRs is ~7 weeks.

However, that would take well-fleshed proposal to do it even close to
that quick. Take note that "10 methods" took years.
 
> > (I do not consider compatiblity with present software a hard
> > requirment).
> >
> >
> > Few ways that come to mind:
> >
> > - Have "acme" ALPN and send validation certificate for that.
> > - Have some new TLS extension and send validation certificate for that.
> >
> 
> My inclination here would be to do the whole thing in a TLS extension: Have
> the client send its value in an extension, and have the server respond in
> an extension.  It's what they're there for.  You would need upgrades to TLS
> stacks and new API for this, but IIRC, QUIC is going to require some
> similar changes to make applications aware of extensions anyway. (Cf.
> https://github.com/bifurcation/mint/pull/137 for EKR's minq implementation
> of QUIC)

Yes, that is one way, if BRs are easy enough to change. If they are not,
then just change where the reply is sent, and it is compliant.

Also, I consider TLS-SNI type methods to be UNSUITABLE for validating
usual webservers. Anything that the method is suitable for should have
special case support anyway (e.g., I had support in one TLS library, before
I ripped the code out).

> Any approach that relies on overloading an existing TLS field make me
> nervous.  If the field is there for some other purpose, then it seems
> inevitable that you'll run into bugs of more or less the character we've
> hit two times already.

Yeah, as I said, custom extension provodes slightly better guarantees.


-Ilari