0Pricing
Cyber Security Academy · Lesson

Dependency and Artifact Signing

Verifying provenance with SLSA and Sigstore.

Dependency and Artifact Signing is a free Cyber Security Academy lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Cyber Security Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Why Provenance Matters

An SBOM tells you what is inside an artifact. Provenance tells you where it came from and how it was built. Signing binds an artifact to a verifiable origin so consumers can reject anything that was not produced by your trusted pipeline.

Without provenance, an attacker who swaps a tarball in your registry is indistinguishable from a legitimate release.

Digests, Not Tags

The foundation of integrity is content addressing. A cryptographic hash (digest) of an artifact uniquely identifies that exact bytes. Mutable tags like latest can be re-pointed; a digest cannot.

# pull by immutable digest, not a tag
docker pull my-app@sha256:1d52838af602b4b5a831beb13a0e4d073280665ea7be7f69ce2382f29c5a613f

# compute a file digest
sha256sum release-1.4.0.tar.gz

Digital Signatures Basics

A digital signature uses a private key to sign the artifact's hash; anyone with the matching public key can verify it. This gives two guarantees:

  • Integrity — the artifact was not modified after signing
  • Authenticity — it was signed by the holder of the private key

The hard part is not the math; it is key management and trust distribution: how does a verifier know which public key to trust?

Keyless Signing with Sigstore

Traditional signing forces teams to guard long-lived private keys, which leak. Sigstore offers keyless signing: it issues a short-lived certificate tied to an OIDC identity (like a CI workload or developer email), signs, and records the event in a public transparency log called Rekor.

There is no long-lived key to steal, and every signature is publicly auditable.

Signing with Cosign

Cosign is the Sigstore tool for signing container images and other artifacts. In keyless mode it uses the pipeline's OIDC token, so no key file lives on disk.

# keyless sign in CI (uses ambient OIDC identity)
COSIGN_EXPERIMENTAL=1 cosign sign my-registry/my-app@sha256:1d5283...

# verify, asserting the expected signer identity
cosign verify my-registry/my-app@sha256:1d5283... \
  --certificate-identity-regexp '.*@my-org\.com' \
  --certificate-oidc-issuer https://accounts.google.com

The Transparency Log

Sigstore records each signing event in Rekor, a tamper-evident, append-only public log. This is a powerful detective control:

  • You can prove when something was signed
  • An attacker who steals an identity cannot sign secretly — the event is publicly logged
  • Anomalous signatures (unexpected identity, off-hours) become detectable

Transparency turns silent compromise into observable evidence.

SLSA: Levels of Build Integrity

SLSA (Supply-chain Levels for Software Artifacts) is a framework that grades how trustworthy your build process is. Higher levels demand stronger guarantees against tampering.

  • L1 — provenance exists and is documented
  • L2 — signed provenance from a hosted build service
  • L3 — hardened, isolated builds; provenance is non-forgeable even by a pipeline insider

SLSA is a roadmap: pick a target level and close the gaps.

Build Provenance Attestations

A provenance attestation is a signed statement describing how an artifact was built: the source commit, builder identity, build parameters, and inputs. The in-toto format standardizes this.

# generate and attach SLSA provenance for an image
cosign attest --type slsaprovenance \
  --predicate provenance.json \
  my-registry/my-app@sha256:1d5283...

# verify provenance matches expected source repo
cosign verify-attestation --type slsaprovenance my-registry/my-app@sha256:1d5283...

Enforcing Signatures at Admission

Signing is only useful if something refuses unsigned artifacts. In Kubernetes, an admission controller can block any image lacking a valid signature and provenance from your trusted identity.

  • Policy controllers verify cosign signatures before a pod starts
  • Reject images signed by unexpected identities
  • Require provenance pointing to your approved source repository

This closes the loop: untrusted artifacts never run.

Signing Dependencies Upstream

Provenance is most valuable when it extends to what you consume, not just what you ship. Ecosystems are adding native signing and provenance:

  • npm provenance links a published package to its source commit and CI run
  • Container base images increasingly ship cosign signatures
  • Language registries are piloting Sigstore-backed verification

Prefer dependencies that publish verifiable provenance, and verify it during install where supported.

Putting Verification First

A practical signing strategy is layered and verified end to end:

  • Pin inputs by digest
  • Keyless-sign artifacts and attach SBOM plus provenance attestations
  • Record everything in a transparency log
  • Enforce verification at deploy with an admission policy

The chain is only as strong as its weakest unverified link, so verify at every consumption point.

Quick Check: Keyless Signing

Reason about why keyless signing improves supply chain security.

Recap: Dependency and Artifact Signing

You learned to prove provenance and enforce it.

  • Pin by digest, not mutable tags
  • Digital signatures give integrity and authenticity; the challenge is key management
  • Sigstore + cosign enable keyless signing with a public Rekor transparency log
  • SLSA grades build integrity; provenance attestations record how artifacts were built
  • Admission policies reject anything unsigned or untrusted at deploy time

Next: hardening the CI/CD pipeline that produces these artifacts.

Frequently asked questions

Is the “Dependency and Artifact Signing” lesson free?

Yes — the full text of “Dependency and Artifact Signing” is free to read here on the web, and the Cyber Security Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Cyber Security Academy course, upgrade to CoddyKit PRO.

What will I learn in “Dependency and Artifact Signing”?

Verifying provenance with SLSA and Sigstore. You practise Cyber Security Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Cyber Security Academy?

No prior experience is required. Cyber Security Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Dependency and Artifact Signing” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Cyber Security Academy lesson?

Yes. Every Cyber Security Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Supply Chain Threats
  2. Software Bill of Materials (SBOM)
  3. Dependency and Artifact Signing
  4. Securing CI/CD Pipelines
← Back to Cyber Security Academy