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

Discuss signing key expiry #87

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

shizhMSFT
Copy link
Contributor

Resolves #84

Signed-off-by: Shiwei Zhang <shizh@microsoft.com>

* As the key expiry is shorter, timestamping MUST be used where the artifact is expected to be consumed beyond the key expiry.
* Lowers risks of signing key compromise due to lower blast radius, when used along with timestamping.
* Key storage can be simpler as compromised keys have limited blast radius and does not need to be protected for longer periods.
Copy link
Contributor

@priteshbandi priteshbandi Aug 9, 2021

Choose a reason for hiding this comment

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

Unless all artifacts signed by the key are not timestamped or If the artifact are timestamped, all Deployers are validating timestamp with configured trusted TSAs, the compromise of short term key can have high blast radius as malicious actor can backdate the signing time and select a local TSA to sign the artifact. Thus they needs to be protected all the time(until deleted).


Since the key has short expiry that expires in days or even in minutes, the signer has to generate the key pair and get the public key certified more often by a issuing CA. This requires a robust and secure signing infrastructure that is online and can issue certificates at a higher frequency. Community developers can choose a common trusted public CA to authenticate themselves and certify their short-term ephemeral keys.

* As the key expiry is shorter, timestamping MUST be used where the artifact is expected to be consumed beyond the key expiry.
Copy link
Contributor

Choose a reason for hiding this comment

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

Typically key expiry is used to limit how long a signed artifact would be considered valid before requiring it to be resigned. One advantage of this is the CA signing the key's certificate can choose how long to trust that key which gives an upper limit on how long a breached key's signed artifacts may be encountered in the wild. If we allow a TSA to arbitrarily extend that limit, that removes the control the CA has on how long signed artifacts from that key are trusted.

This is trading off the fixed trust on both the key and artifact, for a short trust on the key and a potentially unlimited trust on the artifacts that short term key signs. I personally won't want to trust a TSA extended artifact unless there's some assurance the organization issuing the original signing key has some control on the max lifetime of those signed artifacts.

@SteveLasker
Copy link
Contributor

@priteshbandi, do we want to close this as this seems to be covered in the signature specs?

@gillg
Copy link

gillg commented Dec 29, 2022

You should also take a look on my notes here : #208 (comment)
I really think it's a important subject, and possibly consider a build artifact as a long term signed object. Obviously, util we can revoke a key by security.

Copy link

This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 30 days.

@github-actions github-actions bot added the Stale label Oct 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Key Management - Signing Key Expiry
5 participants