> If the RFC does not strictly require an empty payload, that solves half of my 
> problem. It might be worth considering updating the language used in the RFC 
> to something like -
> "The client indicates to the server that it is ready for the challenge 
> validation by sending a JSON POST request to the challenge UIRL (not the 
> authorization URL). The client MUST send an empty JSON body ("{}") carried in 
> a POST or MAY optionally send an object supporting server-specific 
> challenges."

Sending again...

Does the following Verified erratum already address this concern?

https://www.rfc-editor.org/errata/eid5729

________________________________
From: Jeremy Hahn <m...@jeremyhahn.com>
Sent: 16 November 2024 18:57
To: Michael Richardson <mcr+i...@sandelman.ca>
Cc: Jacob Hoffman-Andrews <j...@letsencrypt.org>; acme@ietf.org <acme@ietf.org>
Subject: [Acme] Re: RFC 8555 challenge response proposal

This Message Is From an External Sender
This message came from outside your organization.
Report 
Suspicious<https://us-phishalarm-ewt.proofpoint.com/EWT/v1/J5K_pWsD!B8YZvmQUdQw35tzo9zc1jvOVHCeJLNuOmWnJtgeZpNuvSeBPn9_c_XcRcuJOC8sML0Fti22wkrlaefMsNGGX4mHDUCN17_-ZcgmgyJWX0u9PHlbarNu6Uvgd$>

If the RFC does not strictly require an empty payload, that solves half of my 
problem. It might be worth considering updating the language used in the RFC to 
something like -

"The client indicates to the server that it is ready for the challenge 
validation by sending a JSON POST request to the challenge UIRL (not the 
authorization URL). The client MUST send an empty JSON body ("{}") carried in a 
POST or MAY optionally send an object supporting server-specific challenges."

I think the way it reads now comes across as the empty payload being part of 
the protocol specification, leading to hard coded client implementations:
https://github.com/golang/crypto/blob/master/acme/acme.go#L517<https://urldefense.com/v3/__https://github.com/golang/crypto/blob/master/acme/acme.go*L517__;Iw!!J5K_pWsD!0d6oW64ItwkFjd8gQODGe45yTxyadLKsOiE1tLiYPZn2ZR4ns5XQnVkC2A7UtgCnh6f3ZW_s9pI6$>

"I really think it's a mistake to lump attestation responses in with
authorization challenges."

I'm interested in hearing more about the concerns here and what you feel is the 
right solution. In an effort to try to clarify the issue -

I'm supporting device based attestations where the CA administrator imports the 
root certs of the hardware manufacturer devices they want to support as part of 
their initial setup or ongoing support (IE., a TPM or HSM). After the CA has 
the root cert imported, the devices can be verified by the CA to be genuine 
devices from a trusted manufacturer, and then used to perform attestations 
regarding the security properties of the keys, configurations, OS configs, etc 
on the systems they are installed. Therefore, when the CA gets the "Accept" 
request as defined in RFC 8555, section 7.5.1 from a client with the ability to 
produce a device attestation, this client has the ability to include the 
challenge key authorization in an attestation statement / payload at the same 
time it notifies the CA that it's ready for validation. Since the CA has 
everything it needs to both verify the request is from a trusted device, and 
that the key authorization is correct, it does not necessitate any further 
activity or round trips between the client and server.

If you don't think submitting the payload at this time is appropriate, what do 
you feel is the right implementation. Section 7.5.1 seems to indicate that it's 
intention is to both prove control of the identifier (a custom device id and 
public key defined by the TPM/HSM manufacturer in the case of device 
attestations), to provision the "required" challenge response based on the 
challenge type and indicate to the serve that it is ready for validation.

It seemed to me like this stage in the protocol would be the appropriate time 
to submit the payload and perform the validation in a synchronous manner, but 
if there is a better way, I would prefer that approach, and have documentation 
based on RFC's to support the design decision.

What are your thoughts?









On Fri, Nov 15, 2024 at 12:09 PM Michael Richardson 
<mcr+i...@sandelman.ca<mailto:mcr%2bi...@sandelman.ca>> wrote:

Jeremy Hahn <m...@jeremyhahn.com<mailto:m...@jeremyhahn.com>> wrote:
    > An attestation authorization still needs to be verified with a challenge,
    > so setting it to valid in the new-order request does not seem like it 
would
    > work. I think what's best for device attestation is the ability to send 
the
    > attestation / challenge response at the same time the challenge is

If I'm understanding this thread correctly...
I really think it's a mistake to lump attestation responses in with
authorization challenges.  As I said in the WG session, I think that the
terminology is an attractive nuissance and we need a new term that describes
the process by which a client proves they are "sane" enough to be issued a
certificate, and that this is very different from proving authorization for a
name.

OTH, I may mis-understand this discussion.

--
Michael Richardson <mcr+i...@sandelman.ca<mailto:mcr%2bi...@sandelman.ca>>   . 
o O ( IPv6 IøT consulting )
           Sandelman Software Works Inc, Ottawa and Worldwide




_______________________________________________
Acme mailing list -- acme@ietf.org
To unsubscribe send an email to acme-le...@ietf.org

Reply via email to