Re: [Acme] Adam Roach's Discuss on draft-ietf-acme-acme-14: (with DISCUSS and COMMENT)

Adam Roach <adam@nostrum.com> Thu, 30 August 2018 15:33 UTC

Return-Path: <adam@nostrum.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 F2069130E99 for <acme@ietfa.amsl.com>; Thu, 30 Aug 2018 08:33:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.879
X-Spam-Level:
X-Spam-Status: No, score=-1.879 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01] autolearn=unavailable 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 yLz8zsNbIccR for <acme@ietfa.amsl.com>; Thu, 30 Aug 2018 08:33:27 -0700 (PDT)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (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 A36F5128BAC for <acme@ietf.org>; Thu, 30 Aug 2018 08:33:27 -0700 (PDT)
Received: from Svantevit.roach.at (99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id w7UFXPqQ081053 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 30 Aug 2018 10:33:26 -0500 (CDT) (envelope-from adam@nostrum.com)
X-Authentication-Warning: raven.nostrum.com: Host 99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228] claimed to be Svantevit.roach.at
To: Felix Fontein <felix=40fontein.de@dmarc.ietf.org>, acme@ietf.org
References: <153560463159.14901.5253843942494748934.idtracker@ietfa.amsl.com> <CAL02cgS0_d5qfraPoN2rmrZ9qGqmVdGdHu_a8knNkFcD1kcwpQ@mail.gmail.com> <8b419e1e-1bea-a1c3-159f-ad049a6c113e@nostrum.com> <20180830154850.21a82df5@rovaniemi>
From: Adam Roach <adam@nostrum.com>
Message-ID: <bcfd8b8d-2485-b170-f055-001a987af0e9@nostrum.com>
Date: Thu, 30 Aug 2018 10:33:20 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.0
MIME-Version: 1.0
In-Reply-To: <20180830154850.21a82df5@rovaniemi>
Content-Type: multipart/alternative; boundary="------------7A46525C537846F90723C701"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/acme/mLwxbeW2ybl_nkAYCHLPH_oK3-w>
Subject: Re: [Acme] Adam Roach's Discuss on draft-ietf-acme-acme-14: (with DISCUSS and COMMENT)
X-BeenThere: acme@ietf.org
X-Mailman-Version: 2.1.27
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: Thu, 30 Aug 2018 15:33:31 -0000

On 8/30/18 8:48 AM, Felix Fontein wrote:
> Hello,
>
>> On 8/30/18 7:55 AM, Richard Barnes wrote:
>>> Focusing on DISCUSS comment for now, will pick up COMMENTs later.
>>>
>>> On your DISCUSS, I think you're off on a couple of small things
>>
>> Yeah, I woke up with the sudden realization that I'd had the wrong
>> model in my head when I talked through the cert endpoint. All that's
>> there is a signed public cert rather than a public/private pair, so
>> it's not sensitive.
> what happens if the cert URL is not
> https://example.com/acme/cert/somerandomlookingidentifier, but
> https://example.com/acme/acct/2/order/1/cert? Then someone can still do
> identification correlation when the certificate can be downloaded
> without authentication.


That's a good point as well.

After some further discussion, I think there are two potential paths 
forward:

 1. Remove all uses of GET from the specification (except for retrieving
    the directory), which causes all requests to be authenticated, or
 2. Scrub all of the ACME documents to ensure that the resources that
    can be retrieved without authentication cannot be correlated with
    each other.

Approach 1 (which is a stronger form of what Richard proposed in his PR) 
has the advantage of closing all privacy holes, even the ones that we 
can't identify at the moment. It has the disadvantage of differing from 
current deployed implementations.

Approach 2 has the advantage of being consistent with today's 
deployments, but has the drawback that it it requires significant new 
work to identify and address means of correlating resources with each 
other. It's worth noting that the extensibility of the protocol makes it 
necessary to perform this analysis every time a new field is added to a 
structure and every time a new HTTP endpoint type is defined, which 
makes this approach extremely fragile. In particular, the fact that 
individual implementations can include arbitrary JSON fields for 
debugging and/or proprietary behavior means that we're going to require 
implementations to independently perform this analysis for every 
nonstandard field they add to the structure as well.

/a