<div dir="ltr">Thanks Aaron. I went ahead and added your commits to the pull request: <a href="https://github.com/cabforum/servercert/pull/327">https://github.com/cabforum/servercert/pull/327</a> </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Nov 19, 2021 at 2:20 PM Aaron Gable <<a href="mailto:aaron@letsencrypt.org">aaron@letsencrypt.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 dir="ltr">Fantastic, I've added my suggested edits for the "ignore leap seconds" solution to the PR that Wayne opened.<div><br></div><div>Thanks!</div><div>Aaron</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Nov 19, 2021 at 12:10 PM Tim Hollebeek <<a href="mailto:tim.hollebeek@digicert.com" target="_blank">tim.hollebeek@digicert.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 lang="EN-US"><div><p class="MsoNormal">Yeah, directionally, we support ignoring leap seconds, too.  We discussed it a bit internally this morning.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">There’s some hilarious internal discussion that makes sense to get out onto the public list for everyone’s enjoyment: it turns out that leap seconds are only announced six months in advance.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">This means that, in a quest to develop a system with absolute precision and certainty about which certificate validity periods are legal we have instead created a system where a validly issued certificate can have an invalid lifetime due to a leap second that was announced after it was issued.  And tools like zlint would have to periodically download the latest version of the official leap second list in order to accurately make difference calculations.  And the tools would have to take into account whether the leap second was announced yet or not at the time of issuance … ugh.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">So, yeah.  Let’s ignore leap seconds.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">-Tim<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><div style="border-color:currentcolor currentcolor currentcolor blue;border-style:none none none solid;border-width:medium medium medium 1.5pt;padding:0in 0in 0in 4pt"><div><div style="border-color:rgb(225,225,225) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0in 0in"><p class="MsoNormal"><b>From:</b> Wayne Thayer <<a href="mailto:wthayer@gmail.com" target="_blank">wthayer@gmail.com</a>> <br><b>Sent:</b> Friday, November 19, 2021 12:54 PM<br><b>To:</b> Aaron Gable <<a href="mailto:aaron@letsencrypt.org" target="_blank">aaron@letsencrypt.org</a>>; CA/B Forum Server Certificate WG Public Discussion List <<a href="mailto:servercert-wg@cabforum.org" target="_blank">servercert-wg@cabforum.org</a>><br><b>Cc:</b> Tim Hollebeek <<a href="mailto:tim.hollebeek@digicert.com" target="_blank">tim.hollebeek@digicert.com</a>><br><b>Subject:</b> Re: [Servercert-wg] Discussion Period Begins: SC-52: Specify CRL Validity Intervals in Seconds<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">Thank you Aaron. I went ahead and created a pull request since I originally drafted the ballot: <a href="https://github.com/cabforum/servercert/pull/327" target="_blank">https://github.com/cabforum/servercert/pull/327</a><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I will defer to Tim as the official proposer of the ballot, but I support making these proposed changes and would be happy to add them to the PR.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">- Wayne<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">On Fri, Nov 19, 2021 at 10:19 AM Aaron Gable via Servercert-wg <<a href="mailto:servercert-wg@cabforum.org" target="_blank">servercert-wg@cabforum.org</a>> wrote:<u></u><u></u></p></div><blockquote style="border-color:currentcolor currentcolor currentcolor rgb(204,204,204);border-style:none none none solid;border-width:medium medium medium 1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="MsoNormal">Absolutely; I have three proposals below. I don't expect the fixed-width formatting and diff coloring to come through on servercert-wg, but hopefully it'll make it to your personal inbox intact.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Personally, I'd prefer that all time periods be computed ignoring leap seconds. Counting leap seconds, and therefore having the time between two timestamps which are ostensibly represent an interval of 24 hours (e.g. 2021-11-01 12:34:56 and 2021-11-02 12:34:55) *sometimes* represent more than 24 hours feels like a "gotcha!". It does encourage CAs to not push right up against the specified limits, which is a good thing, but it feels to me like it would be preferable to incentivise that in a way that doesn't rely on random fluctuations in the Earth's rotational period. (Also, thanks to global climate disaster, the melting ice caps have contributed to the last five years having some of the fastest Earth rotation on record, and the IERS is currently considering *negative* leap seconds.)<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">So my personal favorite diff to include in this ballot would be:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">```<u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">diff --git a/docs/BR.md b/docs/BR.md<br>index 912cbf1..b0220dd 100644<br>--- a/docs/BR.md<br>+++ b/docs/BR.md<br>@@ -573,7 +573,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S<br><br> By convention, this document omits time and timezones when listing effective requirements such as dates. Except when explicitly specified, the associated time with a date shall be 00:00:00 UTC.<br><br><span style="color:black;background:rgb(244,204,204) none repeat scroll 0% 0%">-**Effective 2022-06-01:** For purposes of computing differences, a difference of 3,600 seconds shall be equal to one hour, and a difference of 86,400 seconds shall be equal to one day. Any amount of time greater than this, including fractional seconds and/or leap seconds, shall represent an additional unit of measure, such as an additional hour or additional day.<br></span><span style="color:black;background:rgb(217,234,211) none repeat scroll 0% 0%">+**Effective 2022-06-01:** For purposes of computing differences, a difference of 3,600 seconds shall be equal to one hour, and a difference of 86,400 seconds shall be equal to one day, ignoring leap seconds. Any amount of time greater than this, including fractional seconds, shall represent an additional unit of measure, such as an additional hour or additional day.<br></span><br> # 2. PUBLICATION AND REPOSITORY RESPONSIBILITIES<br><br>@@ -1324,7 +1324,7 @@ defined by RFC6960.<br><br> OCSP responders operated by the CA SHALL support the HTTP GET method, as described in RFC 6960 and/or RFC 5019.<br><br><span style="color:black;background:rgb(244,204,204) none repeat scroll 0% 0%">-For the purpose of computing an OCSP Validity Interval, a difference of 3,600 seconds shall be equal to one hour, and a difference of 86,400 seconds shall be equal to one day, ignoring leap-seconds.<br></span><span style="color:black;background:rgb(217,234,211) none repeat scroll 0% 0%">+As stated in [Section 1.6.4](#164-conventions), for the purpose of computing an OCSP Validity Interval, an hour is measured as 3,600 seconds and a day is measured as 86,400 seconds, ignoring leap seconds.<br></span><br> For the status of Subscriber Certificates:<br><br>@@ -1748,7 +1748,9 @@ Subscriber Certificates issued on or after 1 September 2020 SHOULD NOT have a Va<br> Subscriber Certificates issued after 1 March 2018, but prior to 1 September 2020, MUST NOT have a Validity Period greater than 825 days.<br> Subscriber Certificates issued after 1 July 2016 but prior to 1 March 2018 MUST NOT have a Validity Period greater than 39 months.<br><br><span style="color:black;background:rgb(244,204,204) none repeat scroll 0% 0%">-As stated in [Section 1.6.4](#164-conventions), a day is measured as 86,400 seconds. Any amount of time greater than this, including fractional seconds and/or leap seconds, shall represent an additional day. For this reason, Subscriber Certificates SHOULD NOT be issued for the maximum permissible time by default, in order to account for such adjustments.<br></span><span style="color:black;background:rgb(217,234,211) none repeat scroll 0% 0%">+**For Certificates issued prior to 2022-06-01:** For the purpose of calculations, a day is measured as 86,400 seconds. Any amount of time greater than this, including fractional seconds and/or leap seconds, shall represent an additional day. For this reason, Subscriber Certificates SHOULD NOT be issued for the maximum permissible time by default, in order to account for such adjustments.<br>+<br>+**For Certificates issued on or after 2022-06-01:** As stated in [Section 1.6.4](#164-conventions), a day is measured as 86,400 seconds, ignoring leap seconds. Any amount of time greater than this, including fractional seconds, shall represent an additional day. For this reason, Subscriber Certificates SHOULD NOT be issued for the maximum permissible time by default.</span><br><br> ## 6.4 Activation data</span><u></u><u></u></p></div><div><p class="MsoNormal">```<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">But I recognize that such a change is perhaps larger than this ballot wants to tackle, and would bring in more discussion. So for taking things the other way, I would propose the following simple diff, which changes how OCSP validity intervals are calculated (to include leap seconds, instead of ignoring them) as of the effective date of the ballot:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">```<br><span style="font-family:"Courier New"">diff --git a/docs/BR.md b/docs/BR.md<br>index 912cbf1..b90eb98 100644<br>--- a/docs/BR.md<br>+++ b/docs/BR.md<br>@@ -1324,7 +1324,7 @@ defined by RFC6960.<br><br> OCSP responders operated by the CA SHALL support the HTTP GET method, as described in RFC 6960 and/or RFC 5019.<br><br><span style="color:black;background:rgb(244,204,204) none repeat scroll 0% 0%">-For the purpose of computing an OCSP Validity Interval, a difference of 3,600 seconds shall be equal to one hour, and a difference of 86,400 seconds shall be equal to one day, ignoring leap-seconds.<br></span><span style="color:black;background:rgb(217,234,211) none repeat scroll 0% 0%">+**For OCSP responses issued prior to 2022-06-01:** For the purpose of computing an OCSP Validity Interval, a difference of 3,600 seconds shall be equal to one hour, and a difference of 86,400 seconds shall be equal to one day, ignoring leap-seconds.<br></span><br> For the status of Subscriber Certificates:</span><u></u><u></u></p></div><div><p class="MsoNormal">```<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">If folks don't think that is explicit enough, then I would borrow the language from the section on Certificate Profiles to make the point clear:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">```<u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">diff --git a/docs/BR.md b/docs/BR.md<br>index 912cbf1..b2071ac 100644<br>--- a/docs/BR.md<br>+++ b/docs/BR.md<br>@@ -1324,7 +1324,9 @@ defined by RFC6960.<br><br> OCSP responders operated by the CA SHALL support the HTTP GET method, as described in RFC 6960 and/or RFC 5019.<br><br><span style="color:black;background:rgb(244,204,204) none repeat scroll 0% 0%">-For the purpose of computing an OCSP Validity Interval, a difference of 3,600 seconds shall be equal to one hour, and a difference of 86,400 seconds shall be equal to one day, ignoring leap-seconds.<br></span><span style="color:black;background:rgb(217,234,211) none repeat scroll 0% 0%">+**For OCSP responses issued prior to 2022-06-01:** For the purpose of computing an OCSP Validity Interval, a difference of 3,600 seconds shall be equal to one hour, and a difference of 86,400 seconds shall be equal to one day, ignoring leap-seconds.<br>+<br>+**For OCSP responses issued on or after 2022-06-01:** As stated in [Section 1.6.4](#164-conventions), an hour is measured as 3,600 seconds, and a day is measured as 86,400 seconds. Any amount of time greater than this, including fractional seconds and/or leap seconds, shall represent an additional day. For this reason, OCSP responses SHOULD NOT be issued for the maximum permissible time by default, in order to account for such adjustments.</span><br><br> For the status of Subscriber Certificates:</span><u></u><u></u></p></div><div><p class="MsoNormal">```<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">It doesn't appear that this ballot is represented by a PR, just a diff currently, otherwise I'd use GitHub's "suggest an edit" feature directly on that PR.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Aaron<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">On Fri, Nov 19, 2021 at 7:44 AM Tim Hollebeek <<a href="mailto:tim.hollebeek@digicert.com" target="_blank">tim.hollebeek@digicert.com</a>> wrote:<u></u><u></u></p></div><blockquote style="border-color:currentcolor currentcolor currentcolor rgb(204,204,204);border-style:none none none solid;border-width:medium medium medium 1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="MsoNormal">Hey Aaron,<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Thank you very much for this detailed analysis.  As I mentioned on yesterday’s validation call, this is exactly the sort of risk I’m concerned about with this ballot.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Thanks for catching the leap second issue.  I think it’s important that we resolve that and have a consistent way of converting days -> seconds throughout the document.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">If you would like to take a whack at proposed text to fix it, I’m listening and interested.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">-Tim<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><div style="border-color:currentcolor currentcolor currentcolor blue;border-style:none none none solid;border-width:medium medium medium 1.5pt;padding:0in 0in 0in 4pt"><div><div style="border-color:currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0in 0in"><p class="MsoNormal"><b>From:</b> Aaron Gable <<a href="mailto:aaron@letsencrypt.org" target="_blank">aaron@letsencrypt.org</a>> <br><b>Sent:</b> Thursday, November 18, 2021 3:52 PM<br><b>To:</b> Tim Hollebeek <<a href="mailto:tim.hollebeek@digicert.com" target="_blank">tim.hollebeek@digicert.com</a>>; CA/B Forum Server Certificate WG Public Discussion List <<a href="mailto:servercert-wg@cabforum.org" target="_blank">servercert-wg@cabforum.org</a>><br><b>Subject:</b> Re: [Servercert-wg] Discussion Period Begins: SC-52: Specify CRL Validity Intervals in Seconds<u></u><u></u></p></div></div><p class="MsoNormal"> <u></u><u></u></p><div><div><p class="MsoNormal">Throughout the BRs, there are many different kinds of time intervals:<br>- how long a cert is valid<br>- how long a CRL is valid<br>- how long an OCSP response is valid<br>- how long a validation document can be used<br>- how long a random value can be used<br>- how long a CA has to perform a revocation<br>- how quickly CAs must provide their first audit and disclose CPS changes in CCADB<br><br>Although the purpose of this ballot is focused on CRLs, I think there are two things we need to notice about it:<br><br>First, by moving the declaration of how differences are counted into Section 1.6.4 Conventions, this method of computing time differences *does* apply to validation documents, random values, and all other time intervals. CAs should be aware that these lifetimes will now be measured to the precision of seconds, and should take care to ensure that they are not (e.g.) reusing validation documents right up against the limit.<br><br>This does introduce a slight issue, in that some of these other intervals express some of their timetables in terms of days (now very precise) and some of their timetables in months (still imprecise). But that can be solved in a follow-up ballot.<br><br>Second, although this ballot does not *change* how OCSP validity intervals are calculated, I believe that it does increase the chances of confusion on how to do so. Calling out three lines from the ballot diff:<br><br>Section 1.6.1 Definitions:<br>> **Validity Interval**: For CRLs and OCSP responses, the difference in time between the thisUpdate and nextUpdate field, inclusive.<br><br>Section 1.6.4 Conventions:<br>> **Effective 2022-06-01:** For purposes of computing differences, a difference of 3,600 seconds shall be equal to one hour, and a difference of 86,400 seconds shall be equal to one day. Any amount of time greater than this, including fractional seconds and/or leap seconds, shall represent an additional unit of measure, such as an additional hour or additional day.<br><br>Section 4.9.10 On-line revocation checking requirements<br>> For the purpose of computing an OCSP Validity Interval, a difference of 3,600 seconds shall be equal to one hour, and a difference of 86,400 seconds shall be equal to one day, ignoring leap-seconds.<br><br>The first two quotes appear to combine to say that, for OCSP responses, the validity interval shall be the difference in time between the thisUpdate and the nextUpdate, and that any amount of time greater than that (such as leap seconds) shall represent an additional day of validity interval. However, this definition is then superseded by 4.9.10, which says that OCSP validity intervals ignore leap seconds.<br><br>I believe that the BRs should unify on either always including leap seconds (and that therefore CAs should be careful to not run right up against the limits, in case a leap second is inserted), or on always ignoring leap seconds. In particular, I propose the following text be included in section 4.9.10 in this ballot:<br>> **Effective prior to 2022-06-01:** For the purpose of computing an OCSP Validity Interval, a difference... <br><br>If folks believe that that change should not be included in this ballot, then I think that this ballot should not attempt to unify the calculation of the validity interval for OCSP and CRLs, as doing so leads to this confusion.<br><br>Aaron<u></u><u></u></p></div><p class="MsoNormal"> <u></u><u></u></p><div><div><p class="MsoNormal">On Thu, Nov 18, 2021 at 7:43 AM Tim Hollebeek via Servercert-wg <<a href="mailto:servercert-wg@cabforum.org" target="_blank">servercert-wg@cabforum.org</a>> wrote:<u></u><u></u></p></div><blockquote style="border-color:currentcolor currentcolor currentcolor rgb(204,204,204);border-style:none none none solid;border-width:medium medium medium 1pt;padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt"><div><div><p class="MsoNormal">Ballot SC-52: Specify CRL Validity Intervals in Seconds<u></u><u></u></p><p class="MsoNormal">Purpose of Ballot: Similar to Ballot SC-31 which modified the specification of<u></u><u></u></p><p class="MsoNormal">OCSP validity periods to be in seconds, this ballot modifies the specification<u></u><u></u></p><p class="MsoNormal">of CRL validity periods to be in seconds to avoid confusion about exactly which<u></u><u></u></p><p class="MsoNormal">periods are valid and which are not.  The ballot also specifies that other time <u></u><u></u></p><p class="MsoNormal">periods should be handled the same way, which has broader impacts throughout <u></u><u></u></p><p class="MsoNormal">the document.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">The following motion has been proposed by Tim Hollebeek of DigiCert and endorsed <u></u><u></u></p><p class="MsoNormal">by Trevoli Ponds-White of Amazon and Kati Davids of GoDaddy.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">---MOTION BEGINS---<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">This ballot modifies the “Baseline Requirements for the Issuance and Management <u></u><u></u></p><p class="MsoNormal">of Publicly-Trusted Certificates” (“Baseline Requirements”), based on Version 1.8.0:<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">MODIFY the Baseline Requirements as specified in the following Redline:<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><a href="https://github.com/cabforum/servercert/compare/cda0f92ee70121fd5d692685b97ebb6669c74fb7...0c265a673b10c460264a721214b902484c0d1c1f" target="_blank">https://github.com/cabforum/servercert/compare/cda0f92ee70121fd5d692685b97ebb6669c74fb7...0c265a673b10c460264a721214b902484c0d1c1f</a><u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">---MOTION ENDS---<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">This ballot proposes a Final Maintenance Guideline. <u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">The procedure for approval of this ballot is as follows: <u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Discussion (7+ days)<u></u><u></u></p><p class="MsoNormal">Start Time: November 18, 2021 10:30am Eastern<u></u><u></u></p><p class="MsoNormal">End Time: No earlier than November 25, 2021 10:30 am Eastern<u></u><u></u></p><p class="MsoNormal">Vote for approval (7 days)<u></u><u></u></p><p class="MsoNormal">Start Time: TBD<u></u><u></u></p><p class="MsoNormal">End Time: TBD<u></u><u></u></p></div></div><p class="MsoNormal">_______________________________________________<br>Servercert-wg mailing list<br><a href="mailto:Servercert-wg@cabforum.org" target="_blank">Servercert-wg@cabforum.org</a><br><a href="https://lists.cabforum.org/mailman/listinfo/servercert-wg" target="_blank">https://lists.cabforum.org/mailman/listinfo/servercert-wg</a><u></u><u></u></p></blockquote></div></div></div></div></div></blockquote></div><p class="MsoNormal">_______________________________________________<br>Servercert-wg mailing list<br><a href="mailto:Servercert-wg@cabforum.org" target="_blank">Servercert-wg@cabforum.org</a><br><a href="https://lists.cabforum.org/mailman/listinfo/servercert-wg" target="_blank">https://lists.cabforum.org/mailman/listinfo/servercert-wg</a><u></u><u></u></p></blockquote></div></div></div></div></blockquote></div>
</blockquote></div>