[Acme] Usage of HTTP Re: ACME or EST?

Richard Barnes <rlb@ipv.sx> Tue, 25 November 2014 23:00 UTC

Return-Path: <rlb@ipv.sx>
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 E5BFE1A6FC5 for <acme@ietfa.amsl.com>; Tue, 25 Nov 2014 15:00:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.977
X-Spam-Level:
X-Spam-Status: No, score=-1.977 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] 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 jKTsusS-fuZV for <acme@ietfa.amsl.com>; Tue, 25 Nov 2014 15:00:22 -0800 (PST)
Received: from mail-vc0-f182.google.com (mail-vc0-f182.google.com [209.85.220.182]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 840351A1EF5 for <acme@ietf.org>; Tue, 25 Nov 2014 15:00:19 -0800 (PST)
Received: by mail-vc0-f182.google.com with SMTP id hq12so742731vcb.41 for <acme@ietf.org>; Tue, 25 Nov 2014 15:00:18 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc :content-type; bh=CryceV2Xb4PexH6RhfhSJlXq4ineNFj3CNAq0GvZ/pQ=; b=EsDmWKJdF3fFuYueg1c4qRthIPrnKKZLGYivWDE9o4gyRDAhu+6gl+nWz3s/Tb6bG4 6A1uWUiW9nYb6/iBAsdkERP8Ya6eQdKSTUicBwsXGSS6zwcKbCUQvXqFRFYRPHJVSCpM qFhsxWpRfRnU5qibo+jeyNPYr26hJdPOJBaoCMoowXqs9DW+4VmK0V9sBg9417/7Uhr4 m+iP7zM5CJB0fYWi1NHpwHlZAliSAnJxG/pwbrhPGwl5I/rG7FM0xm/Gz6bu7nsmwSaS K27MaxCs8cUSmMwk9gtSKDuTBD6tomBvPCqYLFot2CLYNae54yfIy/rliAlTueYeF2Ck uRrA==
X-Gm-Message-State: ALoCoQkVwlNZE46Lqu+mCea4wWqlc8/M75ZIy1Xeoi66Rtt91s+xNoz7Sr7dwcDNqi51OgiGvvYj
MIME-Version: 1.0
X-Received: by 10.52.138.70 with SMTP id qo6mr13794747vdb.68.1416956418663; Tue, 25 Nov 2014 15:00:18 -0800 (PST)
Received: by 10.31.149.1 with HTTP; Tue, 25 Nov 2014 15:00:18 -0800 (PST)
Date: Tue, 25 Nov 2014 18:00:18 -0500
Message-ID: <CAL02cgTSiugToRqMWAHqcBOVR0RGxLhjkJ-3FyPt6HP-qcV16w@mail.gmail.com>
From: Richard Barnes <rlb@ipv.sx>
To: Nico Williams <nico@cryptonector.com>
Content-Type: multipart/alternative; boundary="bcaec52c5ba9ff3cbb0508b6df3e"
Archived-At: http://mailarchive.ietf.org/arch/msg/acme/ZB32agphuTFECe1txb-X1zVsVr4
Cc: "acme@ietf.org" <acme@ietf.org>, Paul Hoffman <paul.hoffman@vpnc.org>
Subject: [Acme] Usage of HTTP Re: ACME or EST?
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: <http://www.ietf.org/mail-archive/web/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: Tue, 25 Nov 2014 23:00:28 -0000

(new subject, since we're diverging from EST)

On Tue, Nov 25, 2014 at 5:37 PM, Nico Williams <nico@cryptonector.com>
wrote:

> On Tue, Nov 25, 2014 at 04:55:51PM -0500, Richard Barnes wrote:
> > On Tue, Nov 25, 2014 at 4:41 PM, Paul Hoffman <paul.hoffman@vpnc.org>
> wrote:
> > > This overlaps a lot with "Enrollment over Secure Transport" (EST), <
> > > https://tools.ietf.org/html/rfc7030>.
> > >
> > > For many people who saw last week's announcement, the main use case of
> > > ACME is "make it easy to create a client that can create a key, get it
> > > enrolled with a server, get the new certificate back, and install that
> > > certificate in a web server". What does/will ACME offer that EST does
> not
> > > already?
> >
> > A few things off the top of my head:
> >
> > * If nothing else, much less ASN.1.  (Cf. JOSE vs. CMS)
>
> RFC7030 defines very few new ASN.1 types... oh.  It uses the ASN.1 IOS.
> Eww.  Yeah, OK, I see your point.
>

It's not just the new ASN.1, it's the re-use of CMC structures as well.



> That ugly ASN.1 in RFC7030 is for the response to a "request
> required/desired attributes" request.  Your I-D doesn't have this
> feature, presumably because there's no real need for it.  Can you
> confirm?
>

Right now, there's nothing similar.  It will probably ultimately be useful
to have some sort of description of what CSRs will be acceptable, but it
seems like you could do that in JSON.



> A request for supported attributes might be useful, but probably only
> for purposes _other_ than HTTPS servers.
>
> (If there were a need for such a thing then defining ASN.1 types that
> don't use the IOS would be trivial.  Using JSON would be fine too, and
> since that's what you prefer, go for it.)
>
> > * Support for other certificate management functions, e.g., revocation
>
> And rollover?  And re-certification?
>

Rollover, yes.  When re-validation of possession of the identifier isn't
needed, there's a renewal URI.

Re-certification, yes.  Just re-do the identifier validation, possibly
using the "proof of possession of previous key" to ensure continuity (or
just observing that the same key pair is used).


I mean, one of the most useful features would be to have fresh and/or
> short-lived cert management to avoid revocation: re-certify the
> EE's cert frequently, even when there is no key rollover.
>
> Among other things it'd make OCSP stapling less necessary.
>

Right.  That's the idea of the renewal URI in the certificate message -- so
that you can get new certs with the same content as long as the
authorization for the identifiers in the cert is valid.



> > * Validation of possession of identifiers
> > * Cleaner use of HTTP
>
> "
>    All requests for a given ACME server are sent to the same HTTPS URI.
> "
>
> I'd expect different kinds of requests to use differen URIs (that seems
> to be best practice, but then again, you're not claiming that ACME is
> RESTful, so hey).
>

The guidance I've gotten from the HTTP community is: "DO NOT place
constraints on the format of URIs, except for within .well-known"

The two ways to comply with that are (1) to use the same URI for
everything, or (2) to start from a single URI and discover other URIs
through the protocol.  Option (1) seemed simpler for this protocol.



> "
>    It is assumed that clients are configured with this URI out of band.
> "
>
> Clients could learn it via RFC5988 link relations, no?
>

Sure.  That would still be out-of-band w.r.t. ACME.



> "
>    ACME requests MUST use the POST method, and since they carry JSON
>    ...
> "
>
> Er, are there no requests for information?  E.g., OCSP Responses,
> acceptable attributes (for CSRs), ...?
>

There are, but I had considered them outside of ACME.  For example, for
cert renewal, you just do a GET to a URL provided by the server.

--Richard



>
> Nico
> --
>