Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow multiple instances of the OU attribute in CA Certificates #394

Closed
wants to merge 1 commit into from

Conversation

dzacharo
Copy link
Contributor

@dzacharo dzacharo commented Oct 9, 2022

The current BRs are silent on the prohibition of the OU attribute in CA Certificates, thus the profiles ballot must allow multiple instances of OU in CA Certificates, despite being "NOT RECOMMENDED".

The current BRs are silent on the prohibition of the OU attribute in CA Certificates, thus the profiles ballot must allow multiple instances of OU in CA Certificates, despite being "NOT RECOMMENDED".
@dzacharo dzacharo requested a review from a team as a code owner October 9, 2022 08:53
@robstradling
Copy link
Member

@dzacharo: "silent" in what sense? Didn't the root program representatives make it clear that they expect CAs to read the BRs with a "Default Deny" mindset? See the https://lists.cabforum.org/pipermail/servercert-wg/2019-October/001154.html thread, which @sleevi started with...

However, for CA certificates, both Root and Intermediate, the Baseline
Requirements only permit the following, as defined in Section 7.1.4.3.1

  • 7.1.4.3.1.a - commonName (OID 2.5.4.3)
  • 7.1.4.3.1.b - organizationName (OID 2.5.4.10)
  • 7.1.4.3.1.c - countryName (OID 2.5.4.6)

@dzacharo
Copy link
Contributor Author

There was never conclusion on this topic and Sleevi's interpretation was never reflected in the BRs. In fact, in upcoming meetings, he acknowledged conflicts that would cause significant impact if the BRs were read as a "default deny". IMHO the BRs are neither "default deny" nor "default allow". They have clauses that explicitly allow or explicitly deny things. If we identify areas that need more strict rules, we update them accordingly, like we did with the OU in subscriber certificates. If we want to disallow OUs in CA Certificates, we can certainly introduce that and check the impact of this change.

Check the minutes of the recent validation subcommittee. One such example of significant impact is the subject:organizationIdentifier which must be included in issuing CA Certificates for qualified issuers which is practically a legal requirement enforced by eIDAS Supervisory Bodies.

@clintwilson
Copy link
Member

I'm not sure why we're reintroducing OUs here when they've effectively been sunset. My initial thought was that it sounds like, if anything, the thing that was overlooked was ensuring they're explicitly disallowed in the same timeframe as for subscriber certificates.
If the justification for this could be filled in a bit more beyond that the current BRs are silent on the matter, that would certainly be helpful from my perspective.

@dzacharo
Copy link
Contributor Author

Hi Clint,
Please review the minutes of the latest validation subcommittee meeting. This PR is supposed to be an action after that meeting.
I suggest we continue this discussion either at the validation subcommittee or the SCWG public list.

@clintwilson
Copy link
Member

Hi Dimitris,
I've reviewed the minutes again. I didn't see anything that leads me to a different conclusion than shared above. Happy to continue in calls or on list; sorry if my question/request came across critically, I was just hoping there was a bit more detail on why this is needed.

@dzacharo
Copy link
Contributor Author

I thought it was clear from the minutes, apologies if it wasn't captured with more details.

The currently proposed profiles ballot clearly forbids multiple instances of a subject attribute except for streetAddress and domainComponent (for CA and end-entity certificates). A concern was raised that the current BRs do not prohibit OUs in CA Certificate subjectDN which means that the profiles ballot should allow multiple instances of the OU attribute as well.
If we want to prohibit the OU attribute from CA Certificates, this could be introduced in a future ballot but should probably not delay or cause risks to the passing of the profiles ballot.

Ryan took an action to check CCADB and report for recent issuance of CA Certificates that contain OU fields after the prohibition in end-entity certificates.

Hope this makes things a bit clearer.

@ryancdickson
Copy link
Contributor

ryancdickson commented Oct 12, 2022 via email

@dzacharo
Copy link
Contributor Author

Thanks Ryan. I guess it would be important to see if OUs have been included on or after 2022-09-01 which was the cutoff date for forbidding OU in subscriber certificates.

If none have been created, then we might close this PR and create another one to explicitly disallow the OU in CA Certificate profile just like we do with the Subscriber Certificate profile, because there would be no impact. However, we should add a note in the ballot introduction about that normative change to make sure all CAs are aware of this.

@XolphinMartijn
Copy link
Member

Thanks Ryan. I guess it would be important to see if OUs have been included on or after 2022-09-01 which was the cutoff date for forbidding OU in subscriber certificates.

I'm not the expert on the crt.sh DB, but I ran the following query against it just now:

SELECT cc.ca_id, x509_nameattributes(certificate, '2.5.4.11', true) from ccadb_certificate
    INNER JOIN ca_certificate cc on ccadb_certificate.certificate_id = cc.certificate_id
    INNER JOIN ca c on cc.ca_id = c.id
    INNER JOIN certificate cert on cc.certificate_id = cert.id
    WHERE x509_notbefore(certificate) >= '2022-09-01' AND cc.ca_id IN (SELECT ca_id FROM ca_trust_purpose WHERE trust_purpose_id IN (SELECT id as trust_purpose_id FROM trust_purpose WHERE purpose ILIKE '%Server Auth%'))

That should capture any CA certificate that has a known Server Auth (plus EV Server Auth) trust purpose in any of the crt.sh known root stores.

0 results are found. Removing the match against trust purposes, reveals a few results, but those are not publicly trusted.

@ryancdickson
Copy link
Contributor

ryancdickson commented Oct 13, 2022 via email

@robplee
Copy link

robplee commented Oct 13, 2022

Just adding that a clear position on this (codifying default-deny in the BRs or just saying "No OUs anywhere") would be useful as we had some back and forth about an OU lint and if it should or shouldn't apply to CA certs over in the zlint project. Mainly just adding this comment here to try and add weight to this discussion topic being a useful one as teams working in this space have felt a lack of clarity on if OUs are allowed in CA certs or not and in the case of zlint our no-OUs lint doesn't currently apply to CA certs.

Relevant zlint issue that references or is referenced where this came up: zmap/zlint#690

@dzacharo
Copy link
Contributor Author

Thanks Rob. Indeed a clarification would help which is what I intend to propose in today's SCWG teleconference (https://lists.cabforum.org/pipermail/servercert-wg/2022-October/003339.html)

@dzacharo
Copy link
Contributor Author

As mentioned in #394 (comment) and agreed in today's SCWG call, I will close this PR and create another one to prohibit OUs in CA Certificates, after we double check that the requirements would allow the issuance of a non-TLS subCA that may include OUs.

@dzacharo dzacharo closed this Oct 13, 2022
Copy link

@Yowyaz Yowyaz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Data breaches

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants