Ballot for draft-ietf-stir-certificates-shortlived
Discuss
Yes
No Objection
No Record
Summary: Has 3 DISCUSSes. Needs 2 more YES or NO OBJECTION positions to pass.
# Andy Newton, ART AD, comments for draft-ietf-stir-certificates-shortlived-06 CC @anewton1998 * line numbers: - https://author-tools.ietf.org/api/idnits?url=https://www.ietf.org/archive/id/draft-ietf-stir-certificates-shortlived-06.txt&submitcheck=True * comment syntax: - https://github.com/mnot/ietf-comments/blob/main/format.md * "Handling Ballot Positions": - https://ietf.org/about/groups/iesg/statements/handling-ballot-positions/ Thanks for this very well-written document. ## Discuss As noted in https://www.ietf.org/blog/handling-iesg-ballot-positions/, a DISCUSS ballot is just a request to have a discussion on the following topics. ### SHOULD or MUST Nothing major... just a simple question. 303 ... Operators SHOULD renew 304 certificates in advance of expiry with enough lead time to absorb CA 305 latency and transient failures, recognizing that the shorter the 306 certificate lifetime, the tighter that renewal margin becomes. Wouldn't failing to renew the certificates before they expire cause an interoperability issue? If so, would it be reasonable that this is a MUST instead of a SHOULD?
## Nits 298 6. Ooperational Considerations Misspelling.
# Charles Eckel, ART AD, IESG ballot: draft-ietf-stir-certificates-shortlived-06 CC @eckelcu * line numbers: - https://author-tools.ietf.org/api/idnits?url=https://www.ietf.org/archive/id/draft-ietf-stir-certificates-shortlived-06.txt&submitcheck=True * comment syntax: - https://github.com/mnot/ietf-comments/blob/main/format.md * "Handling Ballot Positions": - https://ietf.org/about/groups/iesg/statements/handling-ballot-positions/ ## Thanks to the Reviewers Thanks to the author and working group for a very clear and well written document. Thanks as well to Ben Campell for the helpful shepherd's write-up. ## Discuss As noted in https://www.ietf.org/blog/handling-iesg-ballot-positions/, a DISCUSS ballot is just a request to have a discussion on the following topics. ### normative language in operational considerations ``` 303 operationally critical to call signing. Operators SHOULD renew 304 certificates in advance of expiry with enough lead time to absorb CA 305 latency and transient failures, recognizing that the shorter the 306 certificate lifetime, the tighter that renewal margin becomes. 307 Operators should stagger renewals and apply backoff on failure rather 308 than retry aggressively against a busy CA, and the ACME STAR 309 mechanism [RFC8739] can remove the client from the synchronous 310 acquisition path by pre-issuing renewed certificates. Useful signals ``` I support Andy's DISCUSS on the "SHOULD" in line 303. My concern is with the "should" in 307. I believe that for consistency with the "SHOULD" in 303, it should be "MUST", or "SHOULD" if there are circumstances in which this should not be done. However, both of these could be viewed as operational considerations rather than actual protocol requirements. As they appear only in the operational considerations section, it is probably better that both be rephrased as strongly encouraged practices rather than as normative requirements. Let's DISCUSS.
Section 3 explicitly contemplates a design point where a single short-lived certificate carries authority over a very large TN Authorization List but is deliberately kept valid for only hours: 160 > spectrum, a large enterprise service provider could acquire a 161 > certificate valid for millions of numbers, but expire the certificate 162 > after a very short duration - on the order of hours - to reduce the 163 > risk that the certificate would be compromised. The document's stated rationale for treating a short lifetime as an adequate substitute for revocation is: 131 > Short-lived certificates offer an alternative 132 > where, if compromised, certificates will shortly expire anyway, so 133 > CRLs and OCSP are less meaningful. Such certificates cannot be 134 > cached for a long term by relying parties, minimizing their value to 135 > attackers. That reasoning holds well for a certificate scoped to one or a handful of numbers, where the blast radius of compromise is small regardless of lifetime. It doesn't obviously hold for the millions-of-numbers case the same section offers as a legitimate deployment option: if the private key of such a certificate is compromised near the start of an hours-long validity window, the attacker can sign for the entire TN Authorization List until its expiry, and by the document's own logic there is no CRL or OCSP recourse in the interim. Section 9 doesn't analyze this trade-off; it only points elsewhere: 346 > For further information on certificate security and practices, see 347 > [RFC5280], in particular its Security Considerations. 348 > Implementations should note the Security Considerations of [RFC8226] 349 > for guidance on STIR certificate usage. The Security Considerations 350 > of [RFC8555] are relevant to the use of ACME to acquire short-lived 351 > certificates, as are those of [RFC8739]. None of those referenced Security Considerations sections analyze the specific interaction this document introduces. RFC 8226's Security Considerations flag TNAuthList disclosure as a privacy risk and suggest short-lived, narrowly-scoped certificates as one mitigation, but don't address the compromise-window question for the broad-scope case Section 3 describes. I'd like Section 9 to say something about the scope/lifetime trade-off directly — at minimum, a recommendation that certificate lifetime scale inversely with the breadth of the TN Authorization List it carries, since the document itself is what introduces that combination as an option.
Section 5 states: 266 > That request will contain a CSR [RFC2986] indicating the intended 267 > scope of authority as well the validity interval of the certificate 268 > in question. RFC 2986 CSRs don't carry a validity interval. RFC 2986 is explicit that a CSR "does not include issuer name, serial number, or validity period" — validity is a CA/server decision made afterward. In ACME terms, notBefore and notAfter are fields on the newOrder request object, not on the CSR submitted later at finalization. As written, the sentence attributes to the CSR something that actually belongs to the ACME order, which could send an implementer looking for validity-interval negotiation in the wrong place. Suggest re-attributing the validity interval to the ACME order rather than the CSR. --- 254 > Note that for backward compatibility reasons, 255 > implementations MAY include both "x5u" and "x5c" in the payload 256 > header, but the two URIs MUST indicate the same certification chain. "x5c" isn't a URI — it conveys the certificate chain by value (RFC 7515 Section 4.1.6, "x5u" is the URI). Suggest rephrasing, e.g. "the x5u URI and the x5c chain MUST indicate the same certification chain." --- 196 > authentication services MUST use the "x5c" format for PASSporTs 197 > signed by certificates with a valid lifetime shorter than one week. Where does the one-week threshold come from? Section 3 describes short-lived certificates more loosely as lasting "days or even hours" (line 124), and I don't see "one week" used or justified anywhere else in the document. A sentence on the rationale for this specific bright line — and confirming it isn't meant to track any external definition of "short-lived" — would help implementers ---------------------------------------------------------------------- NIT ---------------------------------------------------------------------- The following were found with the assistance of ietf-reviewtool and a manual pass; some may be false positives, and there's no need to report back on how they were resolved. Section 2 ("Terminology") contains only the BCP 14 boilerplate. Consider renaming it "Requirements Language," which is the more common title when a Terminology section has no actual terminology in it.
Thanks for the work done in this document. ### typos Please run a spell checker to avoid typos such "ooperational" in the section 6 title. ### Section 4 Please provide guidance (i.e., what are the consequences) of bypassing the "SHOULD" in `The root certificate SHOULD NOT be included in the chain, though it may be required in some deployment environments.`. See also the IESG statement: https://datatracker.ietf.org/doc/statement-iesg-statement-on-clarifying-the-use-of-bcp-14-key-words/ ### Section 6 Unsure whether the SIP header is transported over UDP or TCP, if the former: what is the impact of this technique on packet size and UDP/IP fragmentation? Should this be mentioned ?