Re: [Acme] orders, authorizations, and identifiers (oh my)

2019-07-16 Thread Daniel McCarney
>
> I get that; what I’m looking to confirm--and I’m reasonably sure is the
> case--is that, given a failed order, it’s up to server policy to spell out
> whether a client may reasonably suppose that a 2nd order against a subset
> of the identifiers from the 1st order would pass all of the 2nd set of
> authzs.


Ahhh, gotcha! Apologies for misunderstanding that was the crux of the
follow-up q.

Going back to the hypothetical Fred/Jane/Pat CA, though, for a client to
> know how to submit that 2nd order there would need to be some policy
> external to ACME that would indicate the feasibility of such a thing.

Does that sound right?


Yes, I think it does. Maybe there's something clever you could do with the
problems returned during the initial order flow that would help hint to
this but I'm uncertain.



On Tue, Jul 16, 2019 at 10:35 AM Felipe Gasper 
wrote:

> I get that; what I’m looking to confirm--and I’m reasonably sure is the
> case--is that, given a failed order, it’s up to server policy to spell out
> whether a client may reasonably suppose that a 2nd order against a subset
> of the identifiers from the 1st order would pass all of the 2nd set of
> authzs.
>
> For LE, for example, a client can simply look at the ids of the failed
> authzs and omit those ids from the 2nd order.
>
> Going back to the hypothetical Fred/Jane/Pat CA, though, for a client to
> know how to submit that 2nd order there would need to be some policy
> external to ACME that would indicate the feasibility of such a thing.
>
> Does that sound right?
>
> -F
>
> > On Jul 16, 2019, at 10:24 AM, Daniel McCarney 
> wrote:
> >
> > So if we tell the human operator, “Jane & Pat gave the OK, but Fred said
> not”, then it’s left to server policy to determine whether that means a
> hypothetical order with just one or the other domain would pass all authzs?
> >
> > No, if the server returned three authorizations all three must be
> status=valid for the order to be ready for issuance. Earlier drafts had a
> notion of challenge combinations that would allow something sort of similar
> but it was dropped.
> >
> > Per 7.1.6:
> >
> > Order objects are created in the "pending" state. Once all of the
> authorizations listed in the order object are in the "valid" state, the
> order transitions to the "ready" state.
> >
> > The server policy is exercised by the choice of
> authorizations/challenges in the pending order, not by the client deciding
> which authorizations in an order to satisfy.
> >
> > On Tue, Jul 16, 2019 at 10:11 AM Felipe Gasper 
> wrote:
> >
> > > On Jul 16, 2019, at 9:28 AM, Daniel McCarney 
> wrote:
> > >
> > > So it would be reasonable for this order to contain a single authz …
> and would that authz’s identifier be just “example.com”, then? Thus that
> authz object would not reference “www”, even though it is that domain’s
> corresponding authz object? Or would a client be accountable for
> implementing a “best-match authz” lookup to determine which authz
> corresponds to a given domain?
> > >
> > > Yes, I would expect the order's one authorization to have the
> identifier "example.com".
> > >
> > > I believe the confusion here is when you say "even though it is that
> domain's corresponding authz object" and "Since the order requires
> successful authz for both domains".
> > >
> > > For the first part, as I understand there is no guaranteed
> correspondence between any of the identifiers in the order request and the
> identifiers in the returned authorizations. That's what the sentence you
> quoted on p26 is meant to convey. The client shouldn't attempt to match
> authz's to requested identifiers at all, it should just look at the
> identifiers in the authorizations returned by the server and prove control
> of those identifiers with the challenges available.
> >
> > Thank your for your response. I think I see what’s going on.
> >
> > To flesh out a hypothetical a bit more:
> >
> > order identifiers: example.com, www.example.com
> >
> > authzs:
> >   0)
> > - identifier: { type: person, value: Fred }
> > - challenge: ask if it’s ok
> >   1)
> > - identifier: { type: person, value: Jane }
> > - challenge: ask if it’s ok
> >   2)
> > - identifier: { type: person, value: Pat }
> > - challenge: ask if it’s ok
> >
> > So if we tell the human operator, “Jane & Pat gave the OK, but Fred said
> not”, then it’s left to server policy to determine whether that means a
> hypothetical order with just one or the other domain would pass all authzs?
> >
> > -F
> > ___
> > 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


Re: [Acme] orders, authorizations, and identifiers (oh my)

2019-07-16 Thread Felipe Gasper
I get that; what I’m looking to confirm--and I’m reasonably sure is the 
case--is that, given a failed order, it’s up to server policy to spell out 
whether a client may reasonably suppose that a 2nd order against a subset of 
the identifiers from the 1st order would pass all of the 2nd set of authzs.

For LE, for example, a client can simply look at the ids of the failed authzs 
and omit those ids from the 2nd order.

Going back to the hypothetical Fred/Jane/Pat CA, though, for a client to know 
how to submit that 2nd order there would need to be some policy external to 
ACME that would indicate the feasibility of such a thing.

Does that sound right?

-F

> On Jul 16, 2019, at 10:24 AM, Daniel McCarney  wrote:
> 
> So if we tell the human operator, “Jane & Pat gave the OK, but Fred said 
> not”, then it’s left to server policy to determine whether that means a 
> hypothetical order with just one or the other domain would pass all authzs?
> 
> No, if the server returned three authorizations all three must be 
> status=valid for the order to be ready for issuance. Earlier drafts had a 
> notion of challenge combinations that would allow something sort of similar 
> but it was dropped.
> 
> Per 7.1.6:
> 
> Order objects are created in the "pending" state. Once all of the 
> authorizations listed in the order object are in the "valid" state, the order 
> transitions to the "ready" state.
> 
> The server policy is exercised by the choice of authorizations/challenges in 
> the pending order, not by the client deciding which authorizations in an 
> order to satisfy.
> 
> On Tue, Jul 16, 2019 at 10:11 AM Felipe Gasper  
> wrote:
> 
> > On Jul 16, 2019, at 9:28 AM, Daniel McCarney  wrote:
> > 
> > So it would be reasonable for this order to contain a single authz … and 
> > would that authz’s identifier be just “example.com”, then? Thus that authz 
> > object would not reference “www”, even though it is that domain’s 
> > corresponding authz object? Or would a client be accountable for 
> > implementing a “best-match authz” lookup to determine which authz 
> > corresponds to a given domain?
> > 
> > Yes, I would expect the order's one authorization to have the identifier 
> > "example.com".
> > 
> > I believe the confusion here is when you say "even though it is that 
> > domain's corresponding authz object" and "Since the order requires 
> > successful authz for both domains".
> > 
> > For the first part, as I understand there is no guaranteed correspondence 
> > between any of the identifiers in the order request and the identifiers in 
> > the returned authorizations. That's what the sentence you quoted on p26 is 
> > meant to convey. The client shouldn't attempt to match authz's to requested 
> > identifiers at all, it should just look at the identifiers in the 
> > authorizations returned by the server and prove control of those 
> > identifiers with the challenges available.
> 
> Thank your for your response. I think I see what’s going on.
> 
> To flesh out a hypothetical a bit more:
> 
> order identifiers: example.com, www.example.com
> 
> authzs:
>   0)
> - identifier: { type: person, value: Fred }
> - challenge: ask if it’s ok
>   1)
> - identifier: { type: person, value: Jane }
> - challenge: ask if it’s ok
>   2)
> - identifier: { type: person, value: Pat }
> - challenge: ask if it’s ok
> 
> So if we tell the human operator, “Jane & Pat gave the OK, but Fred said 
> not”, then it’s left to server policy to determine whether that means a 
> hypothetical order with just one or the other domain would pass all authzs?
> 
> -F
> ___
> 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


Re: [Acme] orders, authorizations, and identifiers (oh my)

2019-07-16 Thread Daniel McCarney
>
> So it would be reasonable for this order to contain a single authz … and
> would that authz’s identifier be just “example.com”, then? Thus that
> authz object would not reference “www”, even though it is that domain’s
> corresponding authz object? Or would a client be accountable for
> implementing a “best-match authz” lookup to determine which authz
> corresponds to a given domain?


Yes, I would expect the order's one authorization to have the identifier "
example.com".

I believe the confusion here is when you say "even though it is that
domain's corresponding authz object" and "Since the order requires
successful authz for both domains".

For the first part, as I understand there is no guaranteed correspondence
between any of the identifiers in the order request and the identifiers in
the returned authorizations. That's what the sentence you quoted on p26 is
meant to convey. The client shouldn't attempt to match authz's to requested
identifiers at all, it should just look at the identifiers in the
authorizations returned by the server and prove control of those
identifiers with the challenges available.

For the second part, the server decides what identifiers the client needs
to prove control of in order to authorize the overall order. It may not be
both identifiers in the requested order. It happens that Let's Encrypt
return orders with an authorization matching each requested identifier and
requires all to be validated but the returned authorizations and associated
challenges are entirely up to server policy.

Hope that helps,



On Mon, Jul 15, 2019 at 5:56 PM Felipe Gasper 
wrote:

> Hi all,
>
> The new RFC (8555) states (on p26), for order objects, that a 1:1
> relationship may not exist between an order’s identifiers and its authzs.
>
> Given that each authz object contains exactly 1 identifier, how
> would this play out for CAs that accept authz against a base domain as
> substitutive for authz on a subdomain?
>
> Consider an order to the hypothetical “AwesomeSSL” CA for
> example.com and www.example.com. AwesomeSSL considers authz against “
> example.com” to implicitly demonstrate control over “www.example.com”.
> Since the order requires successful authz for both domains, and (for
> AwesomeSSL) authz for “example.com” suffices for both domains, having a
> separate authz against “www” is superfluous. So it would be reasonable for
> this order to contain a single authz … and would that authz’s identifier be
> just “example.com”, then? Thus that authz object would not reference
> “www”, even though it is that domain’s corresponding authz object? Or would
> a client be accountable for implementing a “best-match authz” lookup to
> determine which authz corresponds to a given domain?
>
> Thank you!
>
> -Felipe Gasper
> Mississauga, Ontario
> ___
> 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] orders, authorizations, and identifiers (oh my)

2019-07-15 Thread Felipe Gasper
Hi all,

The new RFC (8555) states (on p26), for order objects, that a 1:1 
relationship may not exist between an order’s identifiers and its authzs.

Given that each authz object contains exactly 1 identifier, how would 
this play out for CAs that accept authz against a base domain as substitutive 
for authz on a subdomain?

Consider an order to the hypothetical “AwesomeSSL” CA for example.com 
and www.example.com. AwesomeSSL considers authz against “example.com” to 
implicitly demonstrate control over “www.example.com”. Since the order requires 
successful authz for both domains, and (for AwesomeSSL) authz for “example.com” 
suffices for both domains, having a separate authz against “www” is 
superfluous. So it would be reasonable for this order to contain a single authz 
… and would that authz’s identifier be just “example.com”, then? Thus that 
authz object would not reference “www”, even though it is that domain’s 
corresponding authz object? Or would a client be accountable for implementing a 
“best-match authz” lookup to determine which authz corresponds to a given 
domain?

Thank you!

-Felipe Gasper
Mississauga, Ontario
___
Acme mailing list
Acme@ietf.org
https://www.ietf.org/mailman/listinfo/acme