Sigstore is an OpenSSF project, initiated by Google, Red Hat, and Purdue University, that provides a free public-good infrastructure for cryptographically signing software artifacts — container images, binaries, SBOMs, attestations — without the operational burden of managing long-lived private keys. Its founding insight is that the two hardest problems in code signing are key management (generating, protecting, distributing, rotating, and revoking signing keys across thousands of developers and CI pipelines) and signature discoverability (how does a verifier find and trust the correct public key for an artifact it has never seen before). Sigstore solves both by eliminating long-lived keys entirely: every signing operation generates a fresh ephemeral key pair, uses it once, discards the private key, and records the event in a public transparency log — replacing “do you trust this key?” with “do you trust this identity at this moment in time?”.
Sigstore’s architecture consists of four components. Fulcio is the certificate authority: when a developer or CI pipeline wants to sign, it first authenticates to an OIDC provider (Google, GitHub, Microsoft — or any provider Fulcio trusts) and presents the resulting ID token to Fulcio. Fulcio verifies the token, extracts the identity claim (a GitHub Actions workflow path like https://github.com/org/repo/.github/workflows/release.yaml@refs/heads/main, or an email address), generates an ephemeral key pair, issues a short-lived X.509 certificate (valid for approximately 10 minutes) binding the public key to that identity, and logs the certificate to a certificate transparency log. The private key exists only in memory for the duration of the signing operation and is then discarded. Rekor is the signature transparency log: every signing event (the artifact digest, the signature, and the Fulcio certificate) is appended as an immutable entry in a Merkle-tree-backed log, and Rekor returns a Signed Entry Timestamp (SET) — a countersigned inclusion proof that the entry was logged at a specific time. The SET is the critical artifact that proves the signature was produced while the Fulcio certificate was valid, enabling verification long after the 10-minute certificate has expired. cosign is the primary client tool: cosign sign orchestrates the full flow (OIDC authentication → Fulcio certificate → sign → Rekor log → push signature to OCI registry as a referrer), and cosign verify fetches the signature, Rekor entry, and Fulcio certificate and verifies the complete chain. TUF (The Update Framework) distributes Sigstore’s root of trust — Fulcio’s root CA certificate and Rekor’s public key — securely to clients, protecting against key substitution attacks on the trust anchor itself.
Sigstore integrates throughout the supply chain stack in this glossary. Signatures and SLSA provenance attestations produced by cosign are stored as OCI referrers alongside container images, discoverable via the referrers API and fetchable by ORAS. Kubernetes admission controllers (Policy Controller from Sigstore, Kyverno with cosign support) can enforce that all images admitted to a cluster carry a valid Sigstore signature from an approved identity — a GitHub Actions workflow in a specific repository, a specific CI platform’s OIDC subject — before the image runs. SBOM documents and VEX assertions are signed with cosign and attached as referrers, so the entire supply chain metadata set (signature + SBOM + VEX + SLSA provenance) travels with the image in the registry. gitsign brings the same keyless model to Git commit signing, replacing long-lived GPG keys with OIDC-bound ephemeral certificates recorded in Rekor — every git commit --gpg-sign becomes a Rekor entry that can be verified years later without the signer maintaining a key. For private or air-gapped deployments, all Sigstore components (Fulcio, Rekor, cosign) can be self-hosted, with custom OIDC providers and private trust roots — enabling the same keyless signing model in environments that cannot use the public-good infrastructure. The PQC transition for Sigstore requires migrating Fulcio’s root CA to ML-DSA (so that the short-lived certificates it issues carry quantum-safe signatures) and Rekor’s signing key to ML-DSA (so that SETs remain unforgeable); the cosign and Sigstore library ecosystem will follow OpenSSL 3.4+ and Go’s PQC library support.
