Ballot SC-103: Require EKUs for Cross-Certified Subordinate CAs
--- Ballot Background ---
The CCADB Policy v2.1 requires that the Extended Key Usage extension exist and have specific values in "cross-certificates [whose] Subject CA’s public key [...] might exist in a publicly-trusted self-signed Root CA certificate whose hierarchy should be considered dedicated to a specific PKI use case".
Simultaneously, several Root Program Policies require that all CA certificates be dedicated as such. For example, the Chrome Policy v1.8 requires that all Subordinate CA Certificates must include the EKU extension and assert only id-kp-serverAuth. Similarly, the Mozilla Policy v3.0 requires that all Subordinate CA Certificates assert either id-kp-serverAuth or both that and id-kp-clientAuth.
This ballot is an attempt to harmonize the Baseline Requirements with those existing root program requirements.
--- Ballot Summary ---
In the Cross-Certified Subordinate CA Certificate Profile, indicate that the Extended Key Usage extension is required in all circumstances. Remove the language distinguishing between "unrestricted" and "restricted" cases. In the table, direct readers to the subsection detailing restricted EKUs.
Remove the contents of the old "unrestricted" subsection, marking it as deprecated.
Rewrite the "restricted" subsection to clearly indicate exactly what combinations of EKU OIDs are acceptable. This is significantly stricter than the current version of the BRs, as the current language allows many combinations of EKU OIDs, as long as the certificate does not also assert id-kp-serverAuth. But it mirrors the restrictions in existing root program policy, and is much simpler to read and understand.
This ballot does not currently have an effective date, as generation of Cross-Certified Subordinate CA Certificates is a comparatively rare event, and this change is only intended to harmonize the BRs with existing root program policy. However, an effective date in the future could be added if others deem it necessary.
This ballot is endorsed by Chris Clements (Google / Chrome) and Ben Wilson (Mozilla).
"This requirement applies only when the Subject CA's public key exists in, or may exist in, a publicly trusted Root CA hierarchy that is dedicated to a specific PKI use case. A hierarchy shall be considered dedicated to a specific PKI use case when the publicly trusted certificates issued from that hierarchy are limited to that use case."
However, I see potential confusion with this when/if a hierarchy transitions from being multi-purpose to dedicated to a specific PKI use case. At what point, if any, should these restrictions begin to apply? I think the various root programs have different ways of determining whether a hierarchy is dedicated to a particular use case.
Ben
Hi Aaron
While I can follow the deprecation of unrestricted CAs’ section, I wonder about the proposed updates for the restricted section.
The CCADB policy defines requirements from the root store point of view, with various use cases.
When we bring these use cases in scope of the TLS BRs (through the EKU table), I wonder if we are not expanding the scope of the TLS BRs too much.
Additionally, the conversation provides a few examples of edge cases related to single-use/multi-purpose/other EKU use cases (how will we make sure we cover all possible EKUs?).
I’m generally not sure whether the TLS BR is the appropriate document to mirror this requirement of the CCADB policy, and see a risk of unintended side effects given the complexity of cross-signing as seen by the examples. Any thoughts?
Kind regards,
Christophe
Hi Aaron,
What clarifies things in the CCADB policy is the “If the subject hierarchy is dedicated to” condition, which to me also implies that “if the subject hierarchy is not dedicated to any of the following EKUs, then the table does not pose a restriction”. This allows other EKUs such as the DocumentSigning. – from a CCADB point of view only of course, other root program restrictions may apply.
Also note that the CCADB policy mentions “In support of ubiquity use cases, CA Owners sometimes issue cross-certificates from non-dedicated hierarchy Root CAs (i.e., “multi-purpose hierarchies”) to dedicated-use hierarchy Root CAs.” With the proposed changes in the TLS BRs, we’re focusing a lot on the Single-purpose Root case, not the multi-purpose hierarchy the CCADB policy describes.
From this point of view, I would expect the TLS BRs to define the permitted EKUs for crosses dedicated to TLS, and not restrict others?
Perhaps this achieves the objective of aligning with the CCADB requirement, while not completely copying it over.
If the new hierarchy is also multi-purpose, then all bets are off. It also does not forbid the creation of a new cross-certificate for a new hierarchy that is out of scope of the CCADB (e.g. document signing, VMC, IoT, QES, etc) that may include other EKUs than the ones listed.
Based on that interpretation, the best course of action would be to add language in the BRs in relation to the server TLS use case only. A high level description would be: "If the CA wants to cross sign a dedicated server TLS hierarchy with a legacy multi-purpose hierarchy, the cross-certificate must include an EKU extension with allowed values (`id-kp-serverAuth`) or (`id-kp-serverAuth` AND `id-kp-clientAuth`). No other combination is allowed". We could even extend this to "If the subject hierarchy does not intend to support server TLS, then the cross-certificate must include an EKU extension and the value `id-kp-serverAuth` MUST NOT be included".
That means if the CA wants to cross-sign something that IS NOT a "dedicated server TLS hierarchy", the BRs remain silent or at a minimum mandate that the `id-kp-serverAuth` EKU is not included in the cross-certificate. CCADB rules or other WG BRs might apply but the TLS BRs should not really mandate exactly what kind of EKUs should be included in a cross-certificate that is not intended for server TLS. It would make sense to mandate not to include the `id-kp-serverAuth` which is "controlled" by the SCWG.