Re: [Acme] Spec change to allow retrieval of Terms of Service URL

Yoav Nir <ynir.ietf@gmail.com> Thu, 12 November 2015 07:10 UTC

Return-Path: <ynir.ietf@gmail.com>
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 2E7551A0545 for <acme@ietfa.amsl.com>; Wed, 11 Nov 2015 23:10:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] 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 PruUMLNJsMEI for <acme@ietfa.amsl.com>; Wed, 11 Nov 2015 23:10:30 -0800 (PST)
Received: from mail-wm0-x22b.google.com (mail-wm0-x22b.google.com [IPv6:2a00:1450:400c:c09::22b]) (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 029E21A00C8 for <acme@ietf.org>; Wed, 11 Nov 2015 23:10:29 -0800 (PST)
Received: by wmec201 with SMTP id c201so18168377wme.0 for <acme@ietf.org>; Wed, 11 Nov 2015 23:10:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=f+uLb4QbHdqvKLF9V3mnIinAomtkj1gMHJZ/J5dUWjM=; b=w54xyeB8Ql1mYsQxTOnP3/PteApAeL86YRbB08yhtcSvWdHtNyzJZNxwHQ7B5JC2cU z+wZs7jzZqJMlAsdgD1na/RLWLHwWIA78U0yWM0h5VUCXHIfv+bPRlUkiP7HjjO0pZvn CpgpK1aBb7fq3C+aoeLL++6+epa9SVUEEfWa8SzUNOg+28zlbWmDUr6PrLtXWWw6vWPa Qd3gKTDFpT5XDlqSDyKx34xs0E9F3jJTW3y8LWT9sphbucXAtY62RbNkPlY6tBkFcaWa u6UIpz80FJEaCViFa7XbWNw8QpW9TbPMm2HH9U3qmFZ7lmh+9Os3MhPt5aTXZ4WbxU1K mFEQ==
X-Received: by 10.28.170.18 with SMTP id t18mr16490659wme.73.1447312228595; Wed, 11 Nov 2015 23:10:28 -0800 (PST)
Received: from yoavs-mbp.mshome.net ([176.13.16.49]) by smtp.gmail.com with ESMTPSA id 71sm13394098wmt.15.2015.11.11.23.10.22 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 11 Nov 2015 23:10:27 -0800 (PST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Yoav Nir <ynir.ietf@gmail.com>
In-Reply-To: <87mvuknf8u.fsf@alice.fifthhorseman.net>
Date: Thu, 12 Nov 2015 09:10:18 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <2F76834B-FCC6-40B2-9735-11765BEE9D1D@gmail.com>
References: <CAPWFDXWx-STKyM-wUvg78onZyh7vROxXm0_8g2+6n79v9Qc+cQ@mail.gmail.com> <87mvuknf8u.fsf@alice.fifthhorseman.net>
To: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
X-Mailer: Apple Mail (2.3096.5)
Archived-At: <http://mailarchive.ietf.org/arch/msg/acme/lt-TXd3wqaw5YKY6VjEGv_9bI4g>
Cc: Matthew Holt <matthew.holt@gmail.com>, acme@ietf.org
Subject: Re: [Acme] Spec change to allow retrieval of Terms of Service URL
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: Thu, 12 Nov 2015 07:10:32 -0000

> On 12 Nov 2015, at 4:06 AM, Daniel Kahn Gillmor <dkg@fifthhorseman.net> wrote:
> 
> On Fri 2015-11-06 14:03:35 -0500, Matthew Holt wrote:
>> I'd like to propose a change that allows clients of the ACME protocol to
>> obtain the URL to the CA's current Terms of Service (if any) without
>> re-registering or trying to obtain a certificate and getting a failure
>> response.
>> 
>> This proposal has two parts: adding an entry to the directory, and adding
>> the current ToS URL to response headers.
>> 
>> Section 6.2 explains the directory, and adding an entry to the directory
>> seems logical:
>> 
>> {
>>  "new-reg": "https://example.com/acme/new-reg",
>>  "recover-reg": "https://example.com/acme/recover-reg",
>>  "new-authz": "https://example.com/acme/new-authz",
>>  "new-cert": "https://example.com/acme/new-cert",
>>  "revoke-cert": "https://example.com/acme/revoke-cert",
>> *  "agreement-url": "https://example.com/acme/subscriber-agreement-v01.pdf
>> <https://example.com/acme/subscriber-agreement-v01.pdf>",*
>> }
>> 
>> Additionally, including the current ToS in response headers of a failed
>> request will allow clients to show the current terms and re-prompt the user
>> immediately, if available. Something like this:
>> 
>> *Agreement-URL: https://example.com/acme/subscriber-agreement-v01.pdf
>> <https://example.com/acme/subscriber-agreement-v01.pdf>*
>> 
>> Both of these could be optional (as the CA sees fit), but it makes it
>> possible for clients to offer a better user experience.
> 
> Doesn't this depend on the nature of the data fetched at the given URL?
> I'd hope that any inclusion of some mechanism like this would be tightly
> constrained with guidance that makes the data both self-contained and
> immutable.  Something like:
> 
> a) all the necessary data to understand the subscriber agreement is
>    available from that specific URL, without requiring any additional
>    resource fetches, arbitrary code execution, etc.  I shouldn't need
>    to pull in external stylesheets or images, to run javascript,
>    receive or send cookies, etc. in order to be able to render the
>    document to the user.  You've used .pdf in your example above: there
>    are now PDFs that violate all these assumptions.  Maybe we could
>    limit to text/plain; charset=UTF-8, or (if PDF is needed) to PDF/A
>    or some similar archival-quality subset of PDF?

Lawyers use PDFs, and often use the cringeworthy practice of scanning type-written or printed pages into a PDF. So I don’t think we can require text/plain. I think it’s fine to require PDF/A, especially because there are a lot of PDF viewers out there and not all of them support the advanced stuff like attachments. Realistically, this would not be enforced. I wouldn’t write my ACME client such that it downloads the PDF and validates that it is valid plaintext or PDF/A.

> b) That the resource fetched from that URL will never change.  I don't
>    want to retrieve the URL at time T, display it to the user, and then
>    have the user continue the process at time T+2 when the document
>    changed at time T+1.

Definitely a good idea to keep the agreement stable at least as long as certificates that were issued under it are still unexpired, probably a few more years. The name in the example does suggest versioning to support just that.

Yoav