[Servercert-wg] Ballot SC-75 - Pre-sign linting

Dimitris Zacharopoulos (HARICA) dzacharo at harica.gr
Thu May 30 05:57:26 UTC 2024



On 29/5/2024 10:30 π.μ., Ryan Dickson wrote:
>
> Thanks for the update, Dimitris - and to the ballot endorsers for 
> their consideration of the points made in my message.
>
>
> In general, I have no objections to the recently described adoption 
> approach or timeline.
>
>
> > I'm fine with the stated preference for pre-signing over post-signing 
> linting but the post-signing linting should not be "NOT RECOMMENDED" 
> because it doesn't do any harm on its own. The fact is that we must 
> clearly state that the pre-sign linting is mandatory and the post-sign 
> linting is optional.
>
> The point I was hoping to make was that the practice of final 
> certificate linting, if performed exclusively, should be considered 
> NOT RECOMMENDED. Sorry for not being more clear.
>

Thanks for the clarification. I believe there is consensus to push for 
the pre-signed linting going forward, leaving the post-signed linting as 
an additional control to double-check that everything went well in the 
final issuance process but also for future updated linters (see below).

> > It is also challenging to define what an "update" is, at which level (major, minor version), 
> etc. I would prefer leaving that out of this particular ballot and let 
> someone else address it in a separate ballot without risking the speed 
> and success of the linting ballot. I hope this makes sense.
>
>
> It’s not clear to me there’s urgency behind this ballot, or why we 
> should consider the speed of requirements drafting meaningful in this 
> specific case. I believe the need to adopt linting, and the value the 
> practice plays when considering preventing mis-issuance, is clear to 
> community members.
>
>
> In any event, I can appreciate the perspective of wanting to take a 
> consistent and holistic approach re: timelines within the BRs. Perhaps 
> there’s an opportunity for near-term compromise that recommends use of 
> updated software versions as described in my message (and below), 
> while also recognizing future action is needed to more completely 
> address your concern moving forward.
>
>
> For example, something like:
>
>
>  *
>
>     “CAs SHOULD evaluate and adopt relevant updates made available for
>     applicable linting packages in the context of their certificate
>     issuance practices within 30 days of their release.”
>
>
> OR
>
>
>  *
>
>     “CAs MUST describe how they evaluate and adopt relevant updates
>     made available for applicable linting packages in the context of
>     their certificate issuance practices within their CPS.”
>
>
> I think offering commentary on linting package update cadence is 
> useful because in the case of several recent incident reports 
> disclosed to Bugzilla, we see CA owners committing to updating to the 
> latest version of a tool because it’s become clear through the 
> mis-issuance incident report(s) they were not running the latest 
> version. From this perspective, establishing good practice in the BRs 
> to offer better alignment with the ballot’s problem statement is 
> considered favorable.
>

The biggest challenge with this update language is that it must be open 
to support various implementations and not be super prescriptive. I 
believe you are thinking this from the perspective that a CA will use an 
external tool for linting, and therefore installing an update 30 days 
after a new version release makes sense. However, we should take into 
consideration that the CA may be writing its own linters and the 
language in the BRs must support it.

>
> One other consideration that might be worth thinking about is how to 
> promote a recommendation that CAs evaluate new linting tools as they 
> become available and known to Forum members (e.g., added to 
> https://cabforum.org/resources/tools/). For example, pkilint (Version 
> 0.9.0 <https://github.com/digicert/pkilint/releases/tag/v0.9.0>) was 
> released about 3-weeks prior to the effective date described in SC-62 
> <https://cabforum.org/2023/03/17/ballot-sc62v2-certificate-profiles-update/>. 
> It is my understanding that the use of pkilint prior to SC-62’s 
> effective date would have identified and possibly prevented nearly all 
> of the mis-issuance incident reports disclosed over the past few 
> months. There are a few edges here that need to be considered, but I 
> think the topic is worth further discussion.
>

I'd like to provide an additional perspective. CAs have different change 
management policies, some more rigorous than others. It is not 
unreasonable to consider that when a new software package is announced 
in any industry, it passes security checks and analysis before being 
considered for adoption. When pkilint was announced, just like with 
other linters in the past, it had to be tested and analyzed until it was 
deemed appropriate and secure for production use in the certificate 
issuance pipeline. IMHO in order to do this properly, 3 weeks are not 
enough. Any new software component built by a third-party needs to be 
examined carefully (for its security and performance), and even for a CA 
with a very competent software engineering department will probably need 
more than 3-weeks to vet such a tool for production use. Judging from 
publicly disclosed incident reports, we see that a number of CAs rely on 
external vendors for software development, therefore this vetting 
process for third-party software would take even longer.

I agree that, ideally, a 30-day window to install any linting update is 
optimistic but reasonable, however we need to consider the level of 
updates (minor? major? how can we define it without knowing the exact 
software?) because a major update will require significantly more effort 
to review, test and implement.

How about:

  * "If a CA uses third party developed software for Linting , it SHOULD
    monitor for updated versions of that software and plan for updates
    no later than three (3) months from the release of the update".

While we're in this vein, it would also be useful to add a 
recommendation for CAs to lint all non-expired, non-revoked certificates 
whenever they install an update of their linting software.

  * "The CA SHOULD perform Linting on the corpus of its non-expired,
    non-revoked Subscriber Certificates whenever it updates the Linting
    software".

What do people think about these proposals?


Thanks,
Dimitris.
>
> Thanks again!
>
>
> - Ryan
>
>
>
> On Sun, May 26, 2024 at 3:41 AM Dimitris Zacharopoulos (HARICA) 
> <dzacharo at harica.gr> wrote:
>
>     Hi Ryan,
>
>     Thank you for the feedback. After some internal discussions with
>     Corey and Ben, please see comments inline.
>
>     On 20/5/2024 10:35 μ.μ., Ryan Dickson wrote:
>>
>>     Hi Dimitris, Corey, and Ben,
>>
>>
>>     Thank you for bringing this ballot forward for the group’s
>>     consideration.
>>
>>
>>     A few questions:
>>
>>       * Given the perceived value of linting, should we consider a
>>         stronger position on its adoption (i.e., MUST versus SHOULD)?
>>         While I recognize that the Baseline Requirements represent
>>         minimum expectations, consistent and reliable adoption of
>>         linting seems to provide the ecosystem with the best chance
>>         of addressing the problem statement described in the ballot
>>         summary.
>>           o To accomplish this goal, the ballot could be modified to
>>             require use of linting (either tbs certificate linting,
>>             pre-certificate linting, or final certificate linting),
>>             with tbs certificate linting being considered RECOMMENDED
>>             and final certificate linting as being considered NOT
>>             RECOMMENDED.
>>           o This goal could be further realized by either a (1)
>>             phased-implementation (i.e., SHOULD now, MUST later) - or
>>             (2) a forward-looking effective date that considers a
>>             reasonable timeline for adoption for those CA Owners
>>             looking to adhere to the BRs that do not perform linting
>>             today.
>>
>
>     I see two issues here:
>
>      1. Require linting with either a phased-approach or directly with
>         a single effective date: I'm fine with either approach with a
>         slight preference to the phased-in. CAs should have been
>         following public incidents and m.d.s.p. discussions for years,
>         so existing CAs should already be doing pre-sign linting. OTOH
>         new CAs need the additional guidance. A CA will either have to
>         create its own technical tools to check their profiles
>         accuracy or use the recommended open-source tools we reference.
>      2. I'm fine with the stated preference for pre-signing over
>         post-signing linting but the post-signing linting should not
>         be "NOT RECOMMENDED" because it doesn't do any harm on its
>         own. The fact is that we must clearly state that the pre-sign
>         linting is mandatory and the post-sign linting is optional.
>
>     With that said, Ben and Corey have agreed with a SHOULD effective
>     date of 15 September, 2024 and a SHALL effective date of 15 March,
>     2025. If people have objections to setting these effective dates,
>     please let me know.
>
>>       * Is it worth more clearly establishing expectations for the
>>         evaluation and, when applicable, deployment of updatesmade by
>>         or to linting tools. For example, can we establish a
>>         reasonable expectation that within 30(?) days after an update
>>         has been made to a linting tool relied upon by a CA, it has
>>         either (1) been adopted in the production issuance
>>         environment - or (2) considered not applicable given the
>>         scope of recent updates (for example, if a CA only issues DV
>>         certificates, and the most recent update only pertains to EV
>>         certificates, there is no expectation that the updated
>>         version is deployed).
>>
>
>     This may open a series of questions around updates in other, more
>     security-critical components of the CA pipeline. I think we should
>     address this issue more holistically as it affects updates to
>     hardware firmware, OS patches, CA vendor software updates,
>     third-party software dependencies, switches/router firmware, and
>     other dependencies in Certificate Management Systems.
>
>     It is also challenging to define what an "update" is, at which
>     level (major, minor version), etc. I would prefer leaving that out
>     of this particular ballot and let someone else address it in a
>     separate ballot without risking the speed and success of the
>     linting ballot. I hope this makes sense.
>
>     More feedback is welcome before proceeding with the changes.
>
>
>     Best regards,
>     Dimitris.
>
>>
>>     Thanks for your consideration.
>>
>>
>>     - Ryan
>>
>>
>>
>>     On Mon, May 20, 2024 at 2:04 PM Inigo Barreira via Servercert-wg
>>     <servercert-wg at cabforum.org> wrote:
>>
>>         Hi Dimitris,
>>
>>         I don´t know if the “(help to improve)” is adding any
>>         additional hidden requirement. IMO, I´d remove that.
>>
>>         Regards
>>
>>         *De:*Servercert-wg <servercert-wg-bounces at cabforum.org> *En
>>         nombre de *Dimitris Zacharopoulos (HARICA) via Servercert-wg
>>         *Enviado el:* lunes, 20 de mayo de 2024 19:57
>>         *Para:* CA/B Forum Server Certificate WG Public Discussion
>>         List <servercert-wg at cabforum.org>
>>         *Asunto:* [Servercert-wg] Ballot SC-75 - Pre-sign linting
>>
>>         CAUTION: This email originated from outside of the
>>         organization. Do not click links or open attachments unless
>>         you recognize the sender and know the content is safe.
>>
>>
>>           SC-75 Pre-sign linting
>>
>>
>>             Summary
>>
>>         There have been numerous compliance incidents publicly
>>         disclosed by CAs in which they failed to comply with the
>>         technical requirements described in standards associated with
>>         the issuance and management of publicly-trusted TLS
>>         Certificates. However, the industry has developed open-source
>>         tools, linters, that are free to use and can help CAs avoid
>>         certificate misissuance. Using such linters before issuing a
>>         precertificate from a Publicly-Trusted CA (pre-issuance
>>         linting) can prevent the mis-issuance in a wide variety of cases.
>>
>>         The following motion has been proposed by Dimitris
>>         Zacharopoulos of HARICA and endorsed by Corey Bonnell of
>>         Digicert and Ben Wilson of Mozilla.
>>
>>         You can view the GitHub pull request representing this ballot
>>         here
>>         <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcabforum%2Fservercert%2Fpull%2F518&data=05%7C02%7Cinigo.barreira%40sectigo.com%7Cba7a2f0fe37e4bb49d7a08dc78f6397c%7C0e9c48946caa465d96604b6968b49fb7%7C0%7C0%7C638518246126378220%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=ZzEsOoXvcYi%2F%2BO8TpaYY%2FIP7FV9sVmgn2sXa4fhHMTo%3D&reserved=0>.
>>
>>
>>
>>             Motion Begins
>>
>>         MODIFY the "Baseline Requirements for the Issuance and
>>         Management of Publicly-Trusted TLS Server Certificates" based
>>         on Version 2.0.4 as specified in the following redline:
>>
>>           * https://github.com/cabforum/servercert/compare/049237e096650fe01f67780b7c24bd5211ee3038...ada5d6e0db76b32be28d64edd7b0677bbef9c2f5
>>             <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcabforum%2Fservercert%2Fcompare%2F049237e096650fe01f67780b7c24bd5211ee3038...ada5d6e0db76b32be28d64edd7b0677bbef9c2f5&data=05%7C02%7Cinigo.barreira%40sectigo.com%7Cba7a2f0fe37e4bb49d7a08dc78f6397c%7C0e9c48946caa465d96604b6968b49fb7%7C0%7C0%7C638518246126388782%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=0Yf5qjQ41hV93d91TsZ2PpvnRaK4zysf1UKIW%2Btuqwg%3D&reserved=0>
>>
>>
>>
>>             Motion Ends
>>
>>         This ballot proposes a Final Maintenance Guideline. The
>>         procedure for approval of this ballot is as follows:
>>
>>
>>                 Discussion (at least 7 days)
>>
>>           * Start time: 2024-05-20 18:00:00 UTC
>>           * End time: on or after 2024-05-27 18:00:00 UTC
>>
>>
>>                 Vote for approval (7 days)
>>
>>           * Start time: TBD
>>           * End time: TBD
>>
>>         _______________________________________________
>>         Servercert-wg mailing list
>>         Servercert-wg at cabforum.org
>>         https://lists.cabforum.org/mailman/listinfo/servercert-wg
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cabforum.org/pipermail/servercert-wg/attachments/20240530/de9459ef/attachment-0001.html>


More information about the Servercert-wg mailing list