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

proposal: amend extended key usage of CPPKI Root and CA certificates #4664

Open
oncilla opened this issue Dec 13, 2024 · 2 comments
Open

proposal: amend extended key usage of CPPKI Root and CA certificates #4664

oncilla opened this issue Dec 13, 2024 · 2 comments
Labels
i/proposal A new idea requiring additional input and discussion

Comments

@oncilla
Copy link
Contributor

oncilla commented Dec 13, 2024

Currently, the specification of the root and ca mandate that in the Extended key usage extension, id-kp-serverAuth and id-kp-clientAuth must not be present.

This leads to a problem when trying to use CPPKI certificates in TLS handshake, as most implementation will only have a valid verification path from leaf to root certificate, if the extended key usages of the leaf are a subset of the extended key usage of the certificates in the chain. In other words, because CA and Root certificates do not have id-kp-serverAuth set, they cannot really be used for standard TLS without additional work arounds.

This is an oversight and makes CPPKI certificates less ergonomic to use than they could be.

My proposal would be to first adjust the implementation to not validate the absence anymore, and once that has found wide adoption in the network, to adjust the specification accordingly. This needs a phased roll out, because simply starting to create Root and CA certificates with id-kp-*Auth set would lead to verification errors on all relying parties that have not been adjusted yet.

@oncilla oncilla added the i/proposal A new idea requiring additional input and discussion label Dec 13, 2024
@JordiSubira
Copy link
Contributor

IIUC, most of the TLS implementations mandate that the Extended Key Usage fields on the leaf certificate are also present in the Extended Key Usage field for every certificate in the chain?

How does this work with the RFC?

In general, this extension will appear only in end entity certificates

If this is a common practice in most of the TLS implementations, do they provide some justification for this?

@oncilla
Copy link
Contributor Author

oncilla commented Dec 16, 2024

I think you are right. Roots do not have these extend key usages, I will need to dig in more.

Current problem that I'm facing is that Go stdlib does not find a valid verification path if we use our CPPKI as a regular WebPKI root certificate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
i/proposal A new idea requiring additional input and discussion
Projects
None yet
Development

No branches or pull requests

2 participants