<div dir="ltr">In the last six months, by our count there have been at least:<div>- 7 bugzilla incident reports due to not marking the basicConstraints extension critical (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1888060">1</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1887008">2</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1883416">3</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1888104">4</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1885132">5</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1886135">6</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1875820">7</a>)</div><div>- 5 bugzilla incident reports due to encoding Subject attributes in an incorrect order (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1864204">1</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1886624">2</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1883731">3</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1883620">4</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1883779">5</a>)</div><div>- 3 bugzilla incident reports due to not including the CPS URI in an EV certificate (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1883843">1</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1886257">2</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1888016">3</a>)</div><div>- and 7 other incidents due to missing various other requirements from the profiles ballot (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1861069">1</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1876565">2</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1884532">3</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1884714">4</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1886406">5</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1887096">6</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1875942">7</a>).</div><div><br></div><div>Many of these incidents cite reliance on linting systems (such as <a href="https://github.com/zmap/zlint">zlint</a>, <a href="https://github.com/digicert/pkilint">pkilint</a>, <a href="https://github.com/amazon-archives/certlint">cablint</a>, and <a href="https://github.com/kroeckx/x509lint">x509lint</a>) to report whether actual issuance practices are in line with the required profiles. And many of these incidents cite the fact that ballot SC-062 was not enforced by zlint immediately on 2023-09-15 as a reason that the non-compliance was not caught.</div><div><br></div><div>Obviously there are many potential improvements that can be made here, including both process and technical improvements within each CA, and we're sure that they will be. But the scale of these incidents suggests to me that there may be systemic changes <i>we</i> can make to enable easier compliance with certificate profile changes.</div><div><br></div><div>We think that it would make sense for any proposed ballot which touches Section 7 of the BRs (or equivalent sections in the EVGs) to be accompanied by a PR against zlint which adds or modifies checks to enforce the proposed ballot text.</div><div><br></div><div>Such a ballot would not necessarily have to be written by the ballot author (this is what endorsers are for!), and zlint already has capabilities to not start enforcing a lint until a specified Effective Date in the future, so incorporating upcoming ballot requirements into zlint ahead of time should be fairly easy and straightforward.</div><div><br></div><div>We know that we certainly plan to do this for any future ballots we propose. What we don't know is how we would go about actually encouraging this behavior. Just setting new community norms about asking for such PRs during the discussion period? Adding something to our bylaws to require such a PR in the official ballot proposal? Do others have ideas?</div><div><br></div><div>Thanks,</div><div>Samantha Frank & Aaron Gable</div></div>