[Servercert-wg] [EXTERNAL] Ballot SC23: Precertificates

Kirk Hall Kirk.Hall at entrustdatacard.com
Tue Oct 22 16:56:37 MST 2019

Wayne, I did post a quick suggestion for how to amend 4.9.10 to allow (or require) CAs to provide OCSP responses for pre-certs (as some CAs are doing today), but Ryan objected – and I didn’t really understand Ryan’s objection.


Given that some CAs are already providing OCSP responses today for pre-certs, can’t we craft language to add to 4.9.10 that reflects exactly what those CAs are presently doing (unless they are doing OCSP responses for pre-cert queries wrong today… but I don’t think anyone has said that).  That’s a ballot that would be easy to understand, and so likely to pass.

Could you, or a CA that is presently providing OCSP responses for pre-certs, come up with simple, improved language for 4.9.10?


From: Servercert-wg <servercert-wg-bounces at cabforum.org> On Behalf Of Wayne Thayer via Servercert-wg
Sent: Tuesday, October 22, 2019 4:45 PM
To: Ryan Sleevi via Servercert-wg <servercert-wg at cabforum.org>
Subject: Re: [Servercert-wg] [EXTERNAL] Ballot SC23: Precertificates

I'm posting v2 of this ballot because without it the discussion period will expire and the ballot will fail. V2 adds language required to prevent conflicts with ballot SC24, but does not otherwise change the proposal.

It's not clear to me how to proceed with this. It seems that the endorsers are happy with the current ballot, but others want to limit the change to section 4.9.10. So far, no one has proposed specific language that both accounts for all of the nuances of this issue and is considered to be easily understood. Unless specific alternative proposals are made, I'm inclined to proceed to a vote on the current proposal.


Ballot SC23 v2: Precertificates

Purpose of Ballot:

This ballot intends to clarify requirements placed on precertificates in BR section

During a lengthy discussion on the mozilla.dev.security.policy forum [1], it was discovered that BR section 4.9.10 combined with BR section prevents a CA from responding “good” for a precertificate. This is a problem because there is no guarantee that a certificate corresponding to a precertificate has not been issued, resulting in root store policies such as [2] that require CAs to treat the existence of a precertificate as a presumption that a corresponding certificate has been issued and thus that a valid OCSP response is required.

This ballot intends to resolve the problem by reducing the scope of section This section was originally [3] intended only to address duplicate serial numbers that would violate RFC 5280 section In addition, this ballot removes legacy effective dates from BR section 4.9.10.

[1] https://groups.google.com/d/msg/mozilla.dev.security.policy/LC_y8yPDI9Q/NbOmVB77AQAJ

[2] https://wiki.mozilla.org/CA/Required_or_Recommended_Practices#Precertificates

[3] https://cabforum.org/pipermail/public/2014-January/002694.html

The following motion has been proposed by Wayne Thayer of Mozilla and endorsed by Jeremy Rowley of DigiCert and Rob Stradling of Sectigo.


This ballot modifies the “Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates” as follows, based on Version 1.6.6, or based on Version 1.6.6 as modified by ballot SC24:

REPLACE section of the Baseline Requirements in its entirety with: Application of RFC 5280

For purposes of clarification, any Precertificate MAY have the same serial number as exactly one certificate that is not a Precertificate, provided that the two are related as described in RFC 6962 - Certificate Transparency. This is a modification of the uniqueness requirements of RFC 5280  - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile section under these Baseline Requirements.

REPLACE section 4.9.10 of the Baseline Requirements in its entirety with:

4.9.10 On-line Revocation Checking Requirements

The CA SHALL support an OCSP capability using the GET method for Certificates issued in accordance with these Requirements.

For the status of Subscriber Certificates:

The CA SHALL update information provided via an Online Certificate Status Protocol at least every four days. OCSP responses from this service MUST have a maximum expiration time of ten days.

For the status of Subordinate CA Certificates:

The CA SHALL update information provided via an Online Certificate Status Protocol at least (i) every twelve months and (ii) within 24 hours after revoking a Subordinate CA Certificate.

If the OCSP responder receives an OCSP request but has no record of ever having issued any certificate with the certificate serial number in that request, using any current or previous issuing key for the CA subject, then the responder SHOULD NOT respond with a "good" status. OCSP responders for CAs that are not Technically Constrained in line with Section 7.1.5 MUST NOT respond with a "good" status for such certificates. The CA SHOULD monitor the responder for such requests as part of its security response procedures.


This ballot proposes a Final Maintenance Guideline.


A comparison of the changes can be found at: https://github.com/wthayer/documents/commit/f0b7c0a27fe51e73d5ed5d8d453024c51713ed70

The procedure for approval of this ballot is as follows:

Discussion (7+ days)

Start Time: 3-October 2019 18:00 UTC

End Time: No earlier than 30-October 2019 00:00 UTC

Vote for approval (7 days)

Start Time: TBD

End Time: TBD

On Mon, Oct 21, 2019 at 2:59 PM Ryan Sleevi via Servercert-wg <servercert-wg at cabforum.org<mailto:servercert-wg at cabforum.org>> wrote:

I appreciate the desire to provide language, but I think we should be careful not to repeat the same mistakes as Ballot 134.

For example, what does it mean to "provide OCSP responses for pre-certificates". If you use a Precert Signing CA, what is literally in that text makes no sense, and will inevitably lead to the "wrong result". You wouldn't have the Precert Signing CA define an OCSP responder, nor would the OCSP response be issued from that CA, but would be from the "Issuer" that would be in the Precertificate associated with the Issuer of the Precert Signing CA.

This is why it's important not to try for "quick" solutions, but to go for technical precision.

On Mon, Oct 21, 2019 at 5:53 PM Kirk Hall via Servercert-wg <servercert-wg at cabforum.org<mailto:servercert-wg at cabforum.org>> wrote:
I agree with Dimitris – the language is too complex, and who knows if there will be any unintended consequences.

I was told a main reason for the ballot is because Rob Stradling thinks BR 4.9.10 forbids CAs from doing providing OCSP responses for pre-certificates.

@Rob – if that’s true, why don’t we just amend BR 4.9.10 to add this:

“CAs MAY provide OCSP responses for pre-certificates”  or maybe

“CAs SHALL provide OCSP responses for pre-certificates”

That’s pretty clear and easy to implement.  Of course, we may want to add something about what the correct response should be if:

  *   Pre-cert was CT logged, but the production cert has not yet been issued
  *   Related production cert has been issued and is not revoked
  *   Related production cert has been revoked or expired
  *   Related production cert is unknown.

From: Servercert-wg <servercert-wg-bounces at cabforum.org<mailto:servercert-wg-bounces at cabforum.org>> On Behalf Of Ryan Sleevi via Servercert-wg
Sent: Monday, October 21, 2019 5:53 AM
To: Dimitris Zacharopoulos (HARICA) <dzacharo at harica.gr<mailto:dzacharo at harica.gr>>
Cc: CA/B Forum Server Certificate WG Public Discussion List <servercert-wg at cabforum.org<mailto:servercert-wg at cabforum.org>>
Subject: Re: [Servercert-wg] [EXTERNAL] Ballot SC23: Precertificates

On Mon, Oct 21, 2019 at 3:23 AM Dimitris Zacharopoulos (HARICA) <dzacharo at harica.gr<mailto:dzacharo at harica.gr>> wrote:

On 2019-10-18 4:51 μ.μ., Ryan Sleevi wrote:

On Fri, Oct 18, 2019 at 3:10 AM Dimitris Zacharopoulos (HARICA) <dzacharo at harica.gr<mailto:dzacharo at harica.gr>> wrote:
I believe this language is very difficult to understand, at least for

Any other context to help understand the difficulty or confusion?

I had to read it 5 times and was still confused about how to implement it. This tells me that the language is complicated and needs more work :-) Short sentences in "simple" English will get us there.

Perhaps we should break down these sentences defining what it means
for a serial number to be "reserved" or "assigned" (we don't need to add
in section 1.6.1) and then state the requirements. I think it would be
easier to read.

Any suggestions for how to accomplish this?

I will try to find some time this week to propose a little simpler text that maintains all the requirements of your text.

That's what the text currently does, so I'm not sure if I'm understanding the concern correctly. Is it to move from prose, as it's currently written, into something like enumerated bullet points? I avoided that because a number of CAs shared concerns with expressing requirements like this during the F2F (during the discussion about the difficulty understanding the BRs), and I was trying to respect that view. I'm fully supportive of trying to make sure requirements are listed directly as that, with the exception of the interpretation issues they create ("Default-Deny" being expected, "Default-Allow" being the interpretation)

Bullet points help break down long sentences. They are not meant to exhaustively enumerate available options so IMO this is not related to the "Default-Deny", "Default-Allow" discussion.

Except the proposed text is explicitly intended to exhaustively enumerate available options. That this is not clear is a sign that we can improve wording, and I'm looking forward to better understanding the concern. I'm not sure how best to capture a construct that "This must either be X or Y. X means this. Y means that." That is, in my view, quite possibly the simplest way to break down the requirements, and I'm not sure how we could decompose further, short of

"This must be either:
  * X - which means this.
  * Y - which means that.

That's why I asked for your help in formulating something you felt would be clearer.

In the past, I have indicated some paragraphs of the BRs that are difficult to understand, especially for non-native English speakers. Breaking down these paragraphs with simple English, listed items, bullets etc, might make them easier to understand and implement.

As far as the "Default-Allow", "Default-Deny" discussion, as others have already indicated, this is how standards work.

As I've already said, this is not true, and simply repeating it doesn't make it any more true. Plenty of standards work this way, and explicitly state whether lists are exhaustive or not. My only consideration is that if you'd like to propose bullets, as I demonstrated above, you propose it in a way that you feel is absolutely clear that only X and Y are permitted, and nothing else. Prosasically, this is a bit clearer, because it's easy to say it MUST be either X or Y.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cabforum.org/pipermail/servercert-wg/attachments/20191022/a8218ac4/attachment-0001.html>

More information about the Servercert-wg mailing list