Re: [Acme] Issuing certificates based on Simple HTTP challenges

Noah Kantrowitz <noah@coderanger.net> Mon, 14 December 2015 22:05 UTC

Return-Path: <noah@coderanger.net>
X-Original-To: acme@ietfa.amsl.com
Delivered-To: acme@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5D7F41B2FAD for <acme@ietfa.amsl.com>; Mon, 14 Dec 2015 14:05:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level:
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 5YFPngnDtirD for <acme@ietfa.amsl.com>; Mon, 14 Dec 2015 14:05:35 -0800 (PST)
Received: from mail.coderanger.net (coderanger.net [72.249.127.182]) by ietfa.amsl.com (Postfix) with ESMTP id 5C1C71A8742 for <acme@ietf.org>; Mon, 14 Dec 2015 14:05:35 -0800 (PST)
Received: from [10.255.146.165] (63-158-29-241.dia.static.qwest.net [63.158.29.241]) by mail.coderanger.net (Postfix) with ESMTPSA id 87589A48006 for <acme@ietf.org>; Mon, 14 Dec 2015 17:05:34 -0500 (EST)
Content-Type: multipart/signed; boundary="Apple-Mail=_49866C29-48E9-49FC-9313-490FE95C186C"; protocol="application/pgp-signature"; micalg="pgp-sha1"
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
X-Pgp-Agent: GPGMail 2.6b2
From: Noah Kantrowitz <noah@coderanger.net>
In-Reply-To: <566F2CB5.90402@wyraz.de>
Date: Mon, 14 Dec 2015 14:05:31 -0800
Message-Id: <89774336-0BA6-48FC-821D-1E8F3ED9AC14@coderanger.net>
References: <CAF+SmEpOLoaREymVhi=qOUg2opz1vKzzNp6tGrDTZAjYSKFDkg@mail.gmail.com> <566F15DC.7090607@wyraz.de> <6B677A87-C6A0-485E-80DF-24960D585F46@coderanger.net> <566F2CB5.90402@wyraz.de>
To: acme@ietf.org
X-Mailer: Apple Mail (2.3112)
Archived-At: <http://mailarchive.ietf.org/arch/msg/acme/57gqmSugJx7YYWyoV7tDH-Ofqa4>
Subject: Re: [Acme] Issuing certificates based on Simple HTTP challenges
X-BeenThere: acme@ietf.org
X-Mailman-Version: 2.1.15
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: Mon, 14 Dec 2015 22:05:38 -0000

Fair, adding a DNS-level opt-out would be a reasonable addition for future iterations, but not a hugely pressing issue given the expected use cases.

--Noah

> On Dec 14, 2015, at 12:55 PM, Michael Wyraz <michael@wyraz.de> wrote:
> 
> So just leave out the part with "then switch completely from A to SRV" and allow both. This gives people the comfort to use A/CNAME stuff while others who prefer security use SRV. Both are happy, problem solved ;-)
>> Using normal A/CNAME records matches the default use case of HTTPS a lot more smoothly and allows a lot of cool transparent upgrade stuffs from folks like DreamHost or Fastly that already do the CNAME setup as part of user on-boarding and can run http-01 on the behalf of the user to set them up on an SNI termination. If all the major CDNs did this, it would be worth the negative issues where HTTP is delegated to an untrusted service. If TLS ever grows per-service restrictions that would be appropriate here, but that is waaaay out of scope for ACME I would think :-/
>> 
>> --Noah
>> 
>> 
>>> On Dec 14, 2015, at 11:17 AM, Michael Wyraz <michael@wyraz.de>
>>>  wrote:
>>> 
>>> Julian,
>>> 
>>> the issue your described here is caused by the assumption that any the A-record points to a host that should be allowed to create certs for that domain. IMO a solution would be simple: use some special SRV record that points to a service that does the challenge. Allow users to set this record to something like "none" to completely disallow ACME-based cert generation. Use A-record as fallback for a given time (e.g. one year), then switch completely from A to SRV,
>>> 
>>> Problem solved ;-)
>>> 
>>> And it's almost as comfortable as using the A-record because it needs just one single additional step, no change of the client, absolutely minimal change to the server, no extra software or support for dynamic DNS updates or such.
>>> 
>>> As a side effect it solves many problems with ACME in complex environments like geo-distributed dns.
>>> 
>>> Kind regards,
>>> Michael.
>>> 
>>> 
>>> 
>>> 
>>>> Hello,
>>>> 
>>>> maybe I am just a naive concerned user, but in my opinion there is one major issue with the Simple HTTP challenge and possibly other challenges, specified by ACME:
>>>> 
>>>> Any host which is specified by an A/AAAA record of that domain zone can obtain trusted certificates in the name of the domain zone owner.
>>>> Lets assume I host an private XMPP server using TLS on my own domain using an SRV record, and I point an A record to a third party hoster which hosts my public web blog.
>>>> Now this third party hoster would be able to obtain signed certificates for my domain using ACME and use that to host an XMPP service on that domain using the standard port.
>>>> Clients which trust that CA are now perfectly happy connecting to that entity.
>>>> 
>>>> By creating an A record I ofcourse need to trust that host to some degree, but I still would expect the CA to verify if the requester has control over the DNS zone itself an not just over a single service running there.
>>>> 
>>>> And consequently if it is valid to verify over HTTP, then maybe another CA validates the domain ownership by a mail service/MX record, and a third one over XMPP/SRV.
>>>> 
>>>> This effectively means, as a domain zone admin, I have to trust every single service I define, not just to properly deliver this service, but also not to exploit his ability to obtain signed certificates in my name.
>>>> 
>>>> Also you rely on the fact that on UNIX only root can bind on port 80 and 443. Lets assume there is an OS out there which does not enforce this restriciton,
>>>> now any user on that host is able to obtain signed certificates for that domain.
>>>> 
>>>> Maybe I missed something here, but overall this seems to be a very bad idea to automatically issue certificates without requiring a change in the actual DNS zone the certificate is issued for.
>>>> 
>>>> Kind regards,
>>>> Julian Dropmann
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Acme mailing list
>>>> 
>>>> 
>>>> Acme@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/acme
>>> _______________________________________________
>>> Acme mailing list
>>> 
>>> Acme@ietf.org
>>> https://www.ietf.org/mailman/listinfo/acme
>> 
>> 
>> _______________________________________________
>> Acme mailing list
>> 
>> Acme@ietf.org
>> https://www.ietf.org/mailman/listinfo/acme
> 
> _______________________________________________
> Acme mailing list
> Acme@ietf.org
> https://www.ietf.org/mailman/listinfo/acme