On Fri, May 06, 2016 at 03:19:56PM -0400, Richard Barnes wrote:
> Hey all,
> 
> Just posted a PR with a sketch of the "precondition" idea that we discussed
> at the F2F in Buenos Aires:

I like the idea of having more structured 'error' reporting for things
like this.


> https://github.com/ietf-wg-acme/acme/pull/124
> 
> This change seems pretty simple, and I think it lets us hit a few pain
> points:
> 
> * Wildcards: Just send the CSR in and let the CA tell you what to validate

How is this different to requesting authz for *.example.com and having
it tell you what you need to do in response to that?


> * Payment: Specify an "out-of-band" precondition
> 
> * CA issuance flows: If the CA won't tell you how to authorize until you
> send in a CSR, this now lets the ACME server lead the client to do
> authorization after the new-cert request comes in.

Related to this, I wonder if we also need a method for the client to be
able to tell the CA "You should only accept/offer authz performed with
[array of methods]".

I see (at least) two reasons this might be desirable.  In practice, we're
seeing that for many users only a subset of the possible methods are
actually practical for them to deploy (and provisioning challenges that
that the client knows it will never legitimately try to perform seems
less than optimal).

And in some cases it might be desirable to limit the privilege required
to complete a challenge.  ie. the owner of an identifier might want to
declare that only the DNS admin should be allowed to prove authz, but
they may allow people with lesser privilege to update content in their
web space (without wanting to give those people the ability to obtain
authz for issuing certificates).  That has some of the same problems
that CAA does, but it still seems better for the client to be able to
say "I only want authz with these methods" up front than to have the
server say "any of these things _we picked_ can now be used, by anyone
who can do them, to obtain authz for your requested identifier".


> We may need a little more machinery here, e.g., to be able to have the
> new-authz endpoint say "that's not going to work directly, just request the
> cert".  We may even want to just revise the flow, so that instead of
> reg-authz-cert, the default order is reg-cert-authz-cert.

I'd like to see a bit more justification for adding that extra complexity.
Having a situation where an identifier is or isn't authorised only under
some complex rules that only sending a CSR can resolve seems like something
we should be able to solve in some simpler and more straightforward way.


> But I thought I'd go ahead and send this first pass out for feedback.
> 
> What do people think?


> +Sometimes a client might make a request of an ACME-enabled CA without having
> +performed some actions that the CA requires before processing the request.

I'd like to see us precisely define which requests can invoke this
mechanism, especially if one of its side effects might be things like
pre-provisioning authz.


> +    "type": "registration",
> +    "required": ["contact", "terms"]

Did you mean ["contact", "agreement"] here?  (though it might be nice
for both that and "terms-of-service" to actually be the same field name
consistently everywhere).


> +    "type": "authorization",
> +    "url": "https://example.com/acme/authz/asdf1";

If we are going to do this, I'd like to see it also include the
"identifier" object (as would have been submitted with new-authz) so
that the client can know what retrieving that URL should return
(especially if there may be more than one of them for a single request).

But I wonder what the pre-provisioning here gains us (except yet another
path to perform the same task)?  Wouldn't it be better to just report
that you need authz for one or more identifiers and let that be done in
the normal way?

The more ways we have to do the same thing, the more likely it is that
someone will eventually find unintended consequences they can have fun
boring holes through ...


  Cheers,
  Ron


_______________________________________________
Acme mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/acme

Reply via email to