| name | implementing-sigstore-for-software-signing |
| description | Implements Sigstore-based software signing and verification using Cosign keyless signing, Rekor transparency log verification, and Fulcio certificate authority integration to establish cryptographic provenance for container images, binaries, and software artifacts, including OIDC-based identity binding and CI/CD pipeline integration. Use when setting up keyless container/artifact signing, verifying signatures against the Rekor transparency log, or deploying Sigstore in a supply-chain security workflow.
|
| domain | cybersecurity |
| subdomain | supply-chain-security |
| tags | ["sigstore","cosign","rekor","fulcio","software-signing","supply-chain","keyless-signing","OIDC","transparency-log"] |
| version | 1.0.0 |
| author | mukul975 |
| license | Apache-2.0 |
| nist_csf | ["GV.SC-01","GV.SC-03","GV.SC-06","GV.SC-07"] |
| mitre_attack | ["T1078","T1190","T1059","T1610","T1611"] |
| mitre_f3 | {"version":"1.1","tactics":["resource-development","initial-access","stealth"],"techniques":[{"id":"T1195","name":"Supply Chain Compromise","tactic":"initial-access","source":"attack"},{"id":"T1608","name":"Stage Capabilities","tactic":"resource-development","source":"attack"},{"id":"T1608.006","name":"Stage Capabilities: SEO Poisoning","tactic":"resource-development","source":"attack"},{"id":"T1586","name":"Compromise Accounts","tactic":"resource-development","source":"attack"},{"id":"T1070","name":"Indicator Removal","tactic":"stealth","source":"attack"}]} |
Implementing Sigstore for Software Signing
When to Use
- Signing container images and software artifacts without managing long-lived cryptographic keys
- Establishing verifiable provenance for build outputs in CI/CD pipelines using OIDC identity binding
- Querying the Rekor transparency log to audit when and by whom an artifact was signed
- Verifying that container images pulled from registries were signed by authorized identities and issuers
- Integrating Sigstore verification into Kubernetes admission controllers to enforce signed-image policies
Do not use for signing artifacts that require air-gapped or offline signing workflows where OIDC authentication is unavailable, for environments that cannot reach the public Sigstore infrastructure (Fulcio, Rekor) and have no private instance deployed, or as a replacement for traditional PGP/GPG signing where regulatory compliance mandates specific key management procedures.
Prerequisites
- Cosign CLI v2.4+ installed (
go install github.com/sigstore/cosign/v2/cmd/cosign@latest or binary release)
- Access to an OIDC identity provider supported by Fulcio (Google, GitHub, Microsoft, or a custom OIDC issuer)
- Container registry credentials (for signing container images) with push access to store signature objects
- Python 3.9+ with
sigstore, requests, and cryptography packages for the automation agent
- Network access to
fulcio.sigstore.dev, rekor.sigstore.dev, and tuf-repo-cdn.sigstore.dev (or private Sigstore instance URLs)
Workflow
Step 1: Install and Configure Cosign
Install Cosign and verify it can reach the Sigstore infrastructure:
- Install from binary release: Download the appropriate binary from the Cosign GitHub releases page and verify its checksum. On Linux:
curl -LO https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64 && chmod +x cosign-linux-amd64 && sudo mv cosign-linux-amd64 /usr/local/bin/cosign
- Verify installation: Run
cosign version to confirm the version and check connectivity to Sigstore services with cosign initialize which fetches the TUF root of trust
- Configure custom infrastructure (optional): If running a private Sigstore stack, set
--fulcio-url, --rekor-url, and --oidc-issuer flags or use environment variables and