Hi all,

I agree with what Aaron says about the difficulty in validating that a
complex request from the client meets whatever requirements the CA is
adhering to. I do however think that a simple list of profiles isn't the
most suitable. Instead I propose that there is a list of profiles, and each
profile has a small number of optional boolean flags (the name, and
definition of these left to the CA).

For example a CA could have an "rsa_intermediate" and "ecdsa_intermediate"
profile, both with an "oscp_must_staple" flag. This would reduce the number
of profiles enumerated, whilst also restricting how complex the request
from the client can be.

A CA would, of course, be free to list profiles and define no flags if it
thinks that's the best approach for it.

Thoughts?
Q Misell
------------------------------

Any statements contained in this email are personal to the author and are
not necessarily the statements of the company unless specifically stated.
AS207960 Cyfyngedig, having a registered office at 13 Pen-y-lan Terrace,
Caerdydd, Cymru, CF23 9EU, trading as Glauca Digital, is a company
registered in Wales under № 12417574
<https://find-and-update.company-information.service.gov.uk/company/12417574>,
LEI 875500FXNCJPAPF3PD10. ICO register №: ZA782876
<https://ico.org.uk/ESDWebPages/Entry/ZA782876>. UK VAT №: GB378323867. EU
VAT №: EU372013983. Turkish VAT №: 0861333524. South Korean VAT №:
522-80-03080. AS207960 Ewrop OÜ, having a registered office at Lääne-Viru
maakond, Tapa vald, Porkuni küla, Lossi tn 1, 46001, trading as Glauca
Digital, is a company registered in Estonia under № 16755226. Estonian VAT
№: EE102625532. Glauca Digital and the Glauca logo are registered
trademarks in the UK, under № UK00003718474 and № UK00003718468,
respectively.


On Fri, 1 Sept 2023 at 07:41, Buschart, Rufus <rufus.buschart=
40siemens....@dmarc.ietf.org> wrote:

> Hi all!
>
>
>
> I’d like to add two ideas:
>
>
>
>    1. The profile entries in the new Profiles object should be capable to
>    link to ACME servers on a different URL. By this, one could maintain a
>    central list of ACME servers operated by various CAs within the ACME
>    protocol standards.
>    2. We should enforce, that every profile object must contain a URL to
>    the CP/CPS of the respective CA (or to the CCADB entry).
>
>
>
> Thank you very much for this proposal to extend ACME!
>
>
>
> /Rufus
>
>
>
> *Von: *Acme <acme-boun...@ietf.org> im Auftrag von Aaron Gable <aaron=
> 40letsencrypt....@dmarc.ietf.org>
> *Datum: *Donnerstag, 31. August 2023 um 00:21
> *An: *IETF ACME <acme@ietf.org>
> *Betreff: *[Acme] Proposal: ACME Profiles
>
> Hi ACME community,
>
>
>
> I believe it is time for us to seriously consider the topic of “profiles”.
>
>
>
> For the purposes of this discussion, a profile is a collection of
> characteristics which affect the contents of the final certificate issued
> by an ACME CA. For example, two different profiles might cause certificates
> to have different validity periods (e.g. 10 days vs 90 days), or different
> EKUs (e.g. ServerAuth and ClientAuth vs ServerAuth only), or even be issued
> from different intermediates.
>
>
>
> Historically, profile selection within ACME has been somewhat ad-hoc:
>
> ·         The NewOrder request contains “notBefore” and “notAfter” fields
> which allow clients to request certain validity periods, but other aspects
> of the certificate cannot be customized and support for these fields is
> minimal. Let’s Encrypt rejects requests which contain these fields, and
> Google Trust Services recommends that they be omitted, because clients are
> likely to request values which the server cannot respect (e.g. notBefore
> dates unacceptably far in the past, violating BRs requirements regarding
> backdating).
>
> ·         The CSR contained in the Finalize request message can carry
> additional information, but copying values directly from CSRs to final
> certificates has been the root cause of many CA incidents, so great care
> must be taken. Let’s Encrypt does use the presence of the “ocspMustStaple”
> extension in the CSR to cause the inclusion of the same extension in the
> final certificate, but this is the only attribute we extract from the CSR
> and frankly we’d rather not even do that much.
>
> ·         I’m aware of one CA which uses url query parameters to control
> aspects of the certificate profile. The client specifies query parameters
> in its configured directory URL, the directory object reflects those same
> parameters back in its newOrder URL, and then the newOrder endpoint
> processes those query parameters to affect the certificate profile.
>
>
>
> Recently there has been an uptick in interest in profile selection in
> ACME. For example, the recent PQC negotiation thread
> <https://mailarchive.ietf.org/arch/msg/acme/FEZYTUfhSeur-wKQI6H2xytSkvY/>
> is largely an exercise in profile selection. There’s also been significant
> discussion
> <https://community.letsencrypt.org/t/offer-a-new-endpoint-and-acme-spec-update-to-list-available-chains/203329>
> on the Let’s Encrypt community forum, largely prompted by the desire for
> more control in intermediate selection. Let’s Encrypt itself is interested
> in formalizing profile selection so that we can make backwards-incompatible
> changes to our current issuance profile without breaking clients. And of
> course I’ve spoken with other CAs who are interested in the same.
>
>
>
> Therefore I believe it is time for ACME to grow support for some form of
> profile selection. As argued above, I don’t think that the Finalize CSR is
> a good format for this, so something will need to be added to the ACME
> protocol itself. I propose the following very simple change:
>
>
>
> 1. The directory’s meta object gains a new “profiles” sub-object, whose
> keys are short profile name strings (such as “default” or “rsa 2023”) and
> whose values are human-readable descriptions of those profiles (such as
> “our standard profile, but with a validity period of only 10 days” or a URL
> pointing at more verbose documentation).
>
> 2. The Order object gains a new “profile” field, which can be set in
> NewOrder requests, or will be set automatically by the Server according to
> its own server policy if no recognized profile is requested.
>
>
>
> In some of the discussions mentioned above, much more complex systems have
> been proposed. These systems would establish a format for a CA to advertise
> every individual adjustable field and all values each field can take.
> Clients would then have the ability to both tightly customize the
> certificate they request, and to compare the offerings of multiple CAs to
> select the one that most closely matches their operator’s preferences.
> However, I believe that such a complex system would ultimately be largely a
> failure, as most operators would not have complex desires to express, most
> clients would not implement complex configuration mechanisms to allow
> operators to do so, most CAs would not advertise directly-comparable sets
> of attributes, and if we attempted to standardize the set of advertisable
> attributes we would inevitably fail to anticipate actual needs.
> Additionally, we’ve seen from TLS algorithm negotiation itself that it is
> better to offer a few well-studied options than to allow (poorly configured
> or misinformed) clients to pick-and-choose from a wide variety of options.
>
>
>
> Therefore I believe that this simple approach is best. It will be easy for
> both clients and servers to adopt. It will allow CAs to offer well-vetted
> profiles for clients who need specific attributes. And it will allow CAs to
> preview upcoming profile changes to clients that want to opt in and to
> gracefully evolve profiles over time.
>
>
>
> We are already working on a draft which formalizes the proposal above, and
> hope to implement a version of this in the near future to facilitate the
> evolution of our own issuance profile. We’d love to hear all of your
> thoughts before we embark down this path!
>
>
>
> Thanks,
>
> Aaron
> _______________________________________________
> 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

Reply via email to