Skip to content

Feature Request: support validation of additional git commit signature types #1996

@bb-Ricardo

Description

@bb-Ricardo

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions