Hi Yaron and Thomas!

> -----Original Message-----
> From: Yaron Sheffer <[email protected]>
> Sent: Wednesday, February 24, 2021 9:08 AM
> To: Roman Danyliw <[email protected]>; IETF ACME <[email protected]>
> Subject: Re: [Acme] AD Review: draft-ietf-acme-star-delegation-04
> 
> Hi Roman,
> 
> (1) In fact the existing language is more accurate. The CSR template is sent 
> to
> the NDC in order to constrain what the NDC puts in the CSR. So the text that
> describes the mapping *from* the CSR template *to* the CSR is correct. Also,
> SPKI is freshly generated by the NDC, guided by the constraint on which key
> types it may use. So maybe:
> 
> The subject field and its subfields are mapped into the subject field of the 
> CSR,
> as per [RFC5280], Sec. 4.1.2.6. Other extension fields of the CSR template are
> mapped into the CSR according to the table in Section 5.6. The Subject Public
> Key Info field of the CSR is generated by the NDC according to the constraints
> defined by the "keyTypes" object of the template.
> 
> (2) It turns out that my coauthor Thomas is a native CDDL speaker. So we will
> include a CDDL schema in addition to the JSON Schema. I concur that
> developers are much more likely to use the latter.

Great. Thanks for adding this unexpected element.

Roman

> Thanks,
>       Yaron
> 
> On 2/23/21, 18:31, "Roman Danyliw" <[email protected]> wrote:
> 
>     Hi Yaron!
> 
>     Thanks for all of the work that went into -05.  It addresses all of my 
> concerns
> but the following:
> 
>     (1) Section 3.1.  The updated language is helpful, but I recommend a bit 
> more
> precision to cover all of the fields.
> 
>     OLD
>     The subject field and its subfields are mapped into the subject field of 
> the
> CSR, as per [RFC5280], Sec. 4.1.2.6. Other extension fields of the CSR 
> template
> are mapped into the CSR according to the table in Section 5.6.
> 
>     NEW
>     The "Subject" field and its subfields per Section 4.1.2.6 of [RFC5280] are
> mapped into the "subject" field of the CSR template. The "Subject Public Key
> Info" field and its subfields per Section 4.1.2.7 of [RFC5280] are mapped into
> the "keyTypes" field of the CSR template.  Other extension fields are mapped 
> as
> subfields of the "extensions" field in the CSR template according to the 
> table in
> Section 5.6.
> 
>     (2) The more thorny issue is how to handle a normative dependence on the
> JSON schema.  Short of it being in the document, whatever is the formal
> language used to define the CSR template needs an appropriate normative
> reference describing it.  Currently, [json-schema-07] in Appendix B would need
> to be normative (not informative).  I confirmed my concern with the ART ADs,
> and there is agreement that neither draft-handrews-json-schema-validation or
> http://json-schema.org will be an adequate normative references (i.e., [json-
> schema-07]).
> 
>     IMO, JSON still seems like the right architectural pattern here.  I also 
> don't
> see an issue with the Schema that was specified.
> 
>     A possible compromise (vetted with the ART ADs) is to follow the pattern 
> of
> RFC8727 which also tried to use JSON Schema but couldn't find a usable
> normative reference -- full disclosure, I was a co-author.  This RFC 
> normatively
> specified the "schema" via CDDL but also informatively provided the same
> schema via [json-schema-07].  Practically, implementers ignore the CDDL and
> use the more assessible JSON.  I appreciate this approach is additional work 
> and
> pulls in another "technology" that isn't a natural fit in the ACME ecosystem.
> 
>     Do you see any alternatives?
> 
>     Regards,
>     Roman
> 
>     > -----Original Message-----
>     > From: Yaron Sheffer <[email protected]>
>     > Sent: Friday, February 5, 2021 5:45 PM
>     > To: Roman Danyliw <[email protected]>; IETF ACME <[email protected]>
>     > Subject: Re: [Acme] AD Review: draft-ietf-acme-star-delegation-04
>     >
>     > Hi Roman,
>     >
>     > Thank you for the detailed review. We will go through your comments and
> will
>     > rev the document accordingly, but in the meantime, let me respond
> specifically
>     > to the issue of the CSR template syntax.
>     >
>     > The CSR template is potentially a long/complicated JSON document
> (example:
>     > [1]), and we felt that rather than including an informal definition 
> which is
> easy
>     > to get wrong or a long sequence of examples, our audience would be
> better
>     > served by a formal definition.
>     >
>     > To the best of my knowledge, by far the most common way to specify a
> JSON
>     > document format is with JSON Schema documents. Granted this spec is 
> still
> a
>     > moving target, but it's already widely implemented. Also, there are
> discussions
>     > between the leaders of the JSON Schema effort and people on the HTTP-
> API
>     > working group, with the goal of standardizing it there.
>     >
>     > JSON Schema draft-7 is defined by draft-handrews-json-schema-validation-
> 01
>     > (and a few companion document), and not (as we incorrectly noted) by the
>     > latest version of that draft. Clearly it's not ideal to refer to a 
> specific,
> expired
>     > version of an I-D. The situation is mitigated to a certain degree by the
> schema
>     > document [2] mentioning explicitly the supported version:
>     >
>     >   "$schema": "http://json-schema.org/draft-07/schema#";
>     >
>     > I hope this clarifies things. Regarding your two related comments:
>     >
>     > - Yes, we should have specified the mapping of fields into X.509, and 
> will
> do
>     > that when we address your comments.
>     > - The notion of "snippet" is actually well defined when we say, "a JSON
> Schema
>     > snippet that defines a type". Formally this is a valid JSON object with 
> a
> "type"
>     > attribute, per draft-handrews-json-schema-validation-01 Sec. 6.1.1.
>     >
>     > Thanks,
>     >         Yaron
>     >
>     >
>     > [1] https://raw.githubusercontent.com/yaronf/I-D/master/STAR-
>     > Delegation/CSR-template/example-template.json
>     > [2] https://raw.githubusercontent.com/yaronf/I-D/master/STAR-
>     > Delegation/CSR-template/template-schema.json
>     >
>     >
>     > On 2/5/21, 00:50, "Roman Danyliw" <[email protected]> wrote:
>     >
>     >     Hi!
>     >
>     >     I did an AD review of draft-ietf-acme-star-delegation-04.  Thanks 
> for this
>     > work to apply the STAR profile (rfc8739).  Below are my comments.  There
> are
>     > a number of editorial clarifications proposed below.  The item that 
> likely
> needs
>     > some discussion is the syntax of the CSR template.
>     >
>     >     ** Idnit:
>     >       ** Obsolete normative reference: RFC 6844 (Obsoleted by RFC 8659)
>     >
>     >       == Outdated reference: A later version (-04) exists of
>     >          draft-ietf-cdni-interfaces-https-delegation-03
>     >
>     >       -- Unexpected draft version: The latest known version of
>     >          draft-ietf-stir-cert-delegation is -02, but you're referring 
> to -03.
>     >
>     >     ** Section 1.  Editorial.  Missing preposition.
>     >     OLD
>     >        This document describes a profile of the ACME protocol [RFC8555] 
> that
>     >        allows the NDC to request the IdO, acting as a profiled ACME 
> server,
>     >        a certificate for a delegated identity
>     >     NEW
>     >        This document describes a profile of the ACME protocol [RFC8555] 
> that
>     >        allows the NDC to request from the IdO, acting as a profiled ACME
> server,
>     >        a certificate for a delegated identity
>     >
>     >     ** Section 2.2.  Editorial.  Recommend symmetry in naming of the 
> orders
> and
>     > being explicit on the order in question.
>     >     -- second from last bullet.  s/reflected in the NDC order/reflected 
> in
> Order 1
>     > (i.e., the NDC Order)/
>     >     -- last bullet.  s/moves its state to "valid"/moves the Order 1 
> state to
> "valid"/
>     >
>     >     ** Section 2.2. Should the buffering requirement for the CSR be
> normative -
>     > s/The IdO must buffer/The IdO MUST buffer/
>     >
>     >     ** Section 2.2.  Per "[No identify validation]", what is meant by 
> that?
>     >
>     >     ** Section 2.3.1.  Editorial.  s/The IdO can delegate multiple names
> through
>     > each NDC/The IdO can delegate multiple names to a NDC/
>     >
>     >     ** Section 2.3.1.  Are there any constraints to what the delegation 
> URLs
>     > could point to?
>     >
>     >     ** Section 2.3.1.  Per "The value of this attribute is the URL 
> pointing to
> the
>     > delegation configuration    object that is to be used for this 
> certificate
> request",
>     > what is the error handling if the delegation attribute doesn't point to 
> a URL
>     > found in the delegations URL list?
>     >
>     >     ** Section 2.3.2.  It might be worth pointing out the obvious when
> clarifying
>     > the properties of the Order objects such as:
>     >     -- That the value field will be the delegated name
>     >
>     >     -- The expected symmetry in field values between NDC-generated order
>     > object and the one made by the IdO
>     >
>     >     ** Section 2.3.2.  Per "When the validation of the identifiers has 
> been
>     > successfully completed ...", it would be useful to clarify who is doing 
> the
>     > validation and when.  Figure 1 suggests that there is only a validation
> process
>     > between IdO client and CA server.  However, wouldn't the IdO server be
>     > checking the identifiers submitted by the NDC client too (prior to 
> passing
> them
>     > to the CA server too?
>     >
>     >     ** Section 2.3.2 and 2.3.3.  I didn't  understand the titles used to
> organize of
>     > content -- "Order Object on the NDC-IdO side" vs. "IdO-CA side".  They
> didn't
>     > follow the clear convention introduced by Figure 1 of NDC client, IdO 
> client,
> IdO
>     > server and CA server.  Additionally, Section 2.3.2 discusses behavior 
> which
>     > seems to be IdO client-to-CA Server (which doesn't seem like "NDC IdO
> side").
>     > Additionally, Section 2.3.3. seems to be describing the requirements 
> that
>     > correspond to construction of the order sent to the CA which is also
> covered at
>     > the end of Section 2.3.2.
>     >
>     >     ** Section 2.4.  Per "The authors believe that this is a very minor 
> security
>     > risk", it would be worth explicitly explaining that position (and not 
> framed
> as
>     > the belief of the authors)
>     >
>     >     ** Section 2.5.  This section introduces a new architectural 
> element,
> ACME
>     > Delegation server, but doesn't define it.  Simply referencing the use 
> cases in
>     > Section 4.1.2 isn't enough as this section doesn't even use those words
>     > ("Delegation server").
>     >
>     >     ** Section 2.5.  Per "The "Location" header must be rewritten", it 
> would
> be
>     > useful to describe the new target.
>     >
>     >     ** Section 3.1.  There are some challenges with the template syntax.
>     >     -- Where is the normative format for the syntax?  Section 3.1 
> points to
>     > Appendix B which lists JSON schema whose format is specified "draft 7 of
> JSON
>     > Schema, which may not be the latest version of the corresponding 
> Internet
>     > Draft [I-D.handrews-json-schema] at the time of publication".  As far 
> as I
> can
>     > tell "draft 7 of JSON Schema" seems to resolve to https://json-
>     > schema.org/specification-links.html which points back to draft-handrews-
> json-
>     > schema.  This draft appears to be an expired, individual draft 
> codifying.
> This
>     > ambiguity and lack of stable reference is problematic.
>     >
>     >     -- Accepting the Json schema as is, there is no annotation on the 
> fields.
> The
>     > field names very much look like X.509 fields but the text provides no
> guidance
>     > on how they should be interpreted to create a CSR beyond explaining 
> "**",
> "*"
>     > and what is mandatory.  I would have expected a field mapping but the
> text
>     > explicitly says "The mapping between X.509 CSR fields and the template
> will be
>     > defined in a future revision of this document.".
>     >
>     >     ** Section 3.1.
>     >     The NDC MUST NOT include in the CSR any fields that are not 
> specified
>     >        in the template, and in particular MUST NOT add any extensions 
> unless
>     >        those were previously negotiated out of band with the IdO.
>     >
>     >     These two normative clauses seem to conflict.  The first clause 
> says that
> the
>     > CSR can only have fields listed in the template (and nothing else).  How
> would
>     > one include extensions not in the template based on out of band
> negotiation?
>     > It seems like it is either in the template or not.
>     >
>     >     ** Section 4.  Is this entire section normative protocol guidance? 
> Or just
>     > informatively describing use cases?  If it is informative, please say 
> so.
>     >
>     >     ** Section 4.1.* Please expand UA = User Agent and CP = Content
> Provider
>     > prior to their introduction in the figures
>     >
>     >     ** Section 4.1.2.1.  Please expand SAN.
>     >
>     >     ** Section 4.1.2.1.  There is a TBD text here, "TBD bootstrap, see
>     > https://github.com/yaronf/I-D/issues/47";
>     >
>     >     ** Section 4.1.2.1  Step 2 of Figure 6.  Editorial.  Don't use 
> colloquial
>     > language "CDNI things" - s/CDNI things/CDNU meta-data/
>     >
>     >     ** Section 5.*.  Add "registry" to the name of the registry in 
> question.
> For
>     > example, in Section 5.1.: s/ACME Directory Metadata Fields/ACME
> Directory
>     > Metadata Registry/
>     >
>     >     ** Section 5.4.  If there isn't a registry, why are they in the 
> IANA section?
>     > Should we create a registry?
>     >
>     >     ** Section 5.5. Editorial.  To make the bulleted list explaining 
> the fields
>     > symmetric with the registry columns:
>     >     NEW:
>     >     An extension name
>     >
>     >     An extension type (the syntax, as a JSON Schema snippet)
>     >
>     >     The mapping to an X.509 certificate extension.
>     >
>     >     ** Section 5.5.  Per the definition of the "type" column:
>     >
>     >     -- Formally, what is a JSON Schema snippet?  In particular, the 
> three pre-
>     > loaded values reference seem to reference "Appendix B" which doesn't
> seem
>     > like a "snippet" (it containing a fully valid and well-formed XML file).
>     >
>     >     -- The registration policy is "expert review" so in theory a 
> document is
> not
>     > needed.  Is the thinking that the registry row could contain a bare JSON
>     > snippet?
>     >
>     >     ** Section 5.5.  What does "(only for the supported name formats)"
> mean in
>     > the "Mapping to X.509" of subjectAltName
>     >
>     >     ** Section 6.2. Editorial. s/cert/certificate/
>     >
>     >     ** Section 6.2.  Per the enumeration of the "two separate parts" of 
> the
>     > delegation process, isn't there also:
>     >     -- serving the certificate back to the NDC
>     >     -- a process for handling revocation of the delegation and the 
> certificate
>     > itself
>     >
>     >     Both of these seem to be discussed in Section 6.3 in some form.
>     >
>     >     ** Figure 1 and 8.  In the spirit of consistency, consider if the 
> CA should
> be
>     > named the "CA Server" (per figure 1) or "ACME server" (per figure 8).
>     >
>     >     ** Section 6.4.  s/Following is the proposed solution where/The
> following is a
>     > possible mitigation when/
>     >
>     >     Regards,
>     >     Roman
>     >
>     >
>     >
> 
> 

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

Reply via email to