-
Notifications
You must be signed in to change notification settings - Fork 229
Description
Hi,
I'm currently looking into improving the validation of git commit and tag signatures. I already opened a PR to support SSH signature validation here: fluxcd/pkg#1141
I would be happy to implement the support in the source-controller as well but had a few questions regarding the design of the implementation.
In general the GPG validation lacks the configuration options to define a list of valid commiters or authors. This is especially troublesome if an instance key is used to sign the commits (GitLab, GitHub).
To give users the option to use "signed web commits" I would propose following options and implementation:
- GPG and SSH:
- Verify signatures (GPG and SSH) with provided public keys
- Verify commit commiter against list of valid commiters, if provided via configuration
- Verify commit auther against list of valid authers, if provided via configuration
- x509:
- Verify signature certificate CN against list of valid commiters, if provided via configuration
- Verify signature certificate agains a CA certificate, if provided
- support implementations for smimesign and gitsign
- provide config option to pass further configuration to gitsign (rekor and fulcio configuration)
What are your thoughts on this?
Implementing this would enable our organisation to enforce signed Git commits for Kubernetes deployments. Then the user and organisation can choose which type of git signatures are used which level will be enforced.