<div dir="ltr">Corey,<div><br></div><div>Could you see if <a href="https://github.com/sleevi/cabforum-docs/pull/30">https://github.com/sleevi/cabforum-docs/pull/30</a> makes this clearer? I appreciate your careful review, as it did reveal a small gap here in handling existing certificates that were issued for "hybrid" issuing CAs.</div><div><br>That is, if a single Issuing CA was issuing, say, smartcard certs NOT subject to the BRs, and TLS certs subject to the BRs, then the Issuing CA was also subject to the BRs, and would not be able to suspend the smartcard certificates. The above PR tries to resolve that, by having CAs transition to separate issuing intermediates, which is also covered within this SC31.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 25, 2020 at 12:40 PM Ryan Sleevi <<a href="mailto:sleevi@google.com">sleevi@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 25, 2020 at 12:12 PM Corey Bonnell via Servercert-wg <<a href="mailto:servercert-wg@cabforum.org" target="_blank">servercert-wg@cabforum.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div><p class="MsoNormal">In giving another pass on the SC31 ballot text, I have the following questions/comments:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">>From 7.2.2 (<a href="https://github.com/cabforum/documents/pull/195/files#diff-7f6d14a20e7f3beb696b45e1bf8196f2R1986" target="_blank">https://github.com/cabforum/documents/pull/195/files#diff-7f6d14a20e7f3beb696b45e1bf8196f2R1986</a>):<u></u><u></u></p><p class="MsoNormal">> The `CRLReason` indicated MUST NOT be unspecified (0), MUST NOT be certificateHold (6), and MUST indicate the most appropriate reason for revocation of the certificate.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">1. Does this requirement apply to end-entity certificate CRL entries? The formatting makes it appear that it does, but the Root Program requirement where this is derived from only is for CA certificates. </p></div></div></blockquote><div><br></div><div>So there's two parts to unpack:</div><div>A)  Is the reason code required</div><div>B) If the reason code is present, what's expected</div><div><br></div><div>The attempt to answer A is</div><div><a href="https://github.com/cabforum/documents/pull/195/files#diff-7f6d14a20e7f3beb696b45e1bf8196f2R1990-R1994" target="_blank">https://github.com/cabforum/documents/pull/195/files#diff-7f6d14a20e7f3beb696b45e1bf8196f2R1990-R1994</a><br></div><div><br></div><div>It MUST be present for Intermediates. This comes from Microsoft.</div><div>It SHOULD be present for end-entities. This comes from browsers consuming CRLs and acting on them (Apple, Google, Mozilla), and those that prioritize reason status (Google).</div><div><br></div><div>The answer for B is</div><div><a href="https://github.com/cabforum/documents/pull/195/files#diff-7f6d14a20e7f3beb696b45e1bf8196f2R1995-R1997" target="_blank">https://github.com/cabforum/documents/pull/195/files#diff-7f6d14a20e7f3beb696b45e1bf8196f2R1995-R1997</a><br></div><div><br></div><div>This is profiling a SHOULD of the relevant RFCs into a MUST, and is effectively saying "Use the smallest possible encoding". If a Subscriber certificate is revoked for an unspecified reason, the "minimal encoding" is actually to omit the CRLReason entirely. It has the same semantics, but saves twelve bytes.</div><div><br></div><div>Here, this applies to *all* entries in the CRL. The prohibition on certificateHold reflects the prohibition on certificate suspension.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div><p class="MsoNormal"><u></u><u></u></p><p class="MsoNormal">2. Given that the semantics of the X.509 reasonCodes are not well defined [1], do Root Programs have guidance on what each allowed reasonCode means and when it is most appropriate to use? Absent this, I think the “MUST” requirement should be relaxed to a “SHOULD” (or eliminated entirely) until there are commonly agreed-upon semantics for the allowed set of reasonCodes.</p></div></div></blockquote><div><br></div><div>The intent here is that the CA defines this, and what they define, they follow. I agree that there's an opportunity to improve the consistency across CAs, but I think similar to SC30, or past work (e.g. CAA), the first step is to permit CAs to work through their policies as to what most appropriate means, based on the criteria they define and the guidance within RFC 5280 and, where appropriate, ITU-T X.509.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div><p class="MsoNormal"><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">From 7.3 (<a href="https://github.com/cabforum/documents/pull/195/files#diff-7f6d14a20e7f3beb696b45e1bf8196f2R1998" target="_blank">https://github.com/cabforum/documents/pull/195/files#diff-7f6d14a20e7f3beb696b45e1bf8196f2R1998</a>):<u></u><u></u></p><p class="MsoNormal">> The `CRLReason` used SHALL contain a value permitted for CRLs, as specified in Section 7.2.2.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Similar to question #1 above, does this apply to OCSP responses for end-entity certificates?</p></div></div></blockquote><div><br></div><div> If present, yes.</div><div><br></div><div>Similar to answer A, this is optional for end-entity certificates to be present, but when it is present, it should follow a consistent form as the CRL, since OCSP and CRLs are meant to be interchangeable to an extent.</div></div></div>
</blockquote></div>