This is a brand new thought (to me) and I need to get this out there before I lose it. Sorry if this has already been debated. This post is "rambly" in nature.
We're talking about 6-day certs. Cool, I'm all for it. So here's a thought ... why are the issuing CA certs in operation for longer than 12 days?
I mean if you think about it, the hardest part of a PKI's chain of trust is the root(s). Everything you do below the root is determined by your certificate lifetimes so that you can comfortably renew things at the half-life (yes, I'm applying some old school thinking here).
Is there opportunity here to apply the same logic to subscriber certificates one level higher in the chain?
I know what you're probably thinking - we don't want to bring up the HSMs all the time to sign the issuing CA certificates. I hear you. Sign the certificates, just don't put them into service.
Let me throw together an example assuming a spherical calendar in a vacuum. I'm oversimplifying.
- Create RSA issuing CA keypairs 1..30.
- Create EC issuing CA keypairs 1..30.
- Bring up the root HSM on or before 2025-01-01. Sign the R1 and E1 certificates with an expiry date of 2025-01-13. Sign the R2 and E2 certificates with an expiry date of 2025-01-25. And so on until R30 and E30's expiry date on 2025-12-27.
a. No one's signing certificates from 2025-12-27 through 2025-12-31 anyway, so we don't issue certs for those dates. /s - Export the certificates from the root HSM as needed.
- 2025-01-01 until 2025-01-07, E1 and R1 are in service and issuing certificates. None of the other CAs are in service/used by boulder to sign subscriber certs.
- 2025-01-07 until 2025-01-19, E2 and R2 are in service/used by boulder to sign subscriber certs. None of the other CAs are in service/used to sign subscriber certs.
- Extend two previous points. You get the point.
Hell why stop there, why not go 7 day issuing CAs? Issuing CA only issues for 24 hours. Beyond that? Not needed, kill it off.
As with all things the balance between convenience and security must be achieved. The current issuing CA certs are issued for 3 years. Thinking here strictly of 6-day certs, why? Obviously we'll need separate CAs for 90-day certs.
As further food for thought, consider (ignoring leaps):
- The root CAs have a lifetime of 20 years (7300 days).
- The issuing CAs have a lifetime of 3 years (1095 days).
The ratio between the root and issuing? 6.66...
The ratio between issuing and a 90-day subscriber? 12.166...
The ratio between issuing and 6-day subscriber? 182.5
Something feels off here. This train of thought isn't even convincing/persuasive to myself but I do hope this is at least being considered.