skip to content

Signatures Versus Digests

A digest pins which bytes you got; a signature only says who vouched for those bytes. Interviewers push on the artifact that is correctly signed and still malicious, and on what a verifier still owes.

on this pageshow

questions

3

A vendor's Helm chart carries a valid signature from the vendor's release identity. What does that prove about the chart's behaviour?

level: juniorimportance: must knowfreq 80%

answer

  1. authenticity, not fitness
  2. identity bound to exact bytes
  3. signing never inspects content
  4. no stolen key required
  5. harmful defaults are inside the signed bytes

basics

~10 s

Nothing about behaviour. A signature binds a signer identity to one exact set of bytes: it says who vouched for them, not that the chart's contents, defaults or dependencies are safe to install.

solid answer

~50 s

It proves that whoever controls the vendor's release identity vouched for exactly these bytes, and that the bytes have not changed since. That is an authenticity and integrity claim about origin, not a claim about content. A chart whose default values enable a debug sidecar that exposes patient study data can be signed perfectly well, because signing is applied *to* content and never evaluates it. The signed-but-malicious case does not even require a stolen key: if the vendor's own build or source is compromised, or a maintainer ships something harmful on purpose, the signature that comes out is genuine. So verifying a signature narrows *who* you are trusting; deciding whether the artifact is fit to run still needs review of what the signed bytes actually do — the chart's defaults, the permissions it requests, and what it exposes once deployed.

go deeper

for a junior

Be ready to state the claim in one line: a signature says who vouched for these exact bytes. Then name one thing it does not say — that the contents are safe — without hedging.

for a middle

Explain why signing cannot evaluate content: it is computed over bytes at the end of a release process, so anything already in those bytes is signed along with them. Give a concrete harmful-default example.

for a senior

Show you would not gate an install on verification alone. Describe the content review you would run on a third-party chart and why a clean scanner result plus a valid signature is still two forms of absence of evidence.

for a principal

Own the framing problem: teams read a green check as an approval. Be ready to say what signature verification is allowed to decide in your organisation, and which decisions must stay with content review and environment constraints.

## What a signature actually asserts An artifact signature is a claim of the form: *the holder of this identity vouched for these exact bytes*. Two properties fall out of it. **Authenticity** — you can tell which signing identity produced the claim. **Integrity** — if a single byte of the artifact changes, verification fails. That is the whole assertion. Nothing in it is a statement about what the bytes *do*. ## The three things people hope it asserts Candidates routinely upgrade the claim into one of three things it is not: - *"It is safe."* Safety is a property of content and configuration. A signature is computed over content; it cannot evaluate it. - *"It is the artifact I asked for."* A signature tells you an identity stood behind some bytes. It does not tell you those bytes are the chart, the version, or the release you requested. - *"It was built the way I expect."* How something came to be is a separate claim, made by a separate document; the signature only covers whatever document it was applied to. ## The signed-but-malicious class Concretely: a medical-imaging vendor publishes a Helm chart to its own chart repo for hospital clusters. The chart is signed by the vendor's release identity. Every verification step a hospital runs succeeds. And the chart's default values enable a debug sidecar that serves imaging studies over an unauthenticated port inside the cluster. Patient data is exposed, clinical workflows are affected, and not one cryptographic control was bypassed. The signature did exactly its job and the outcome is still bad, because the harmful thing was *inside the bytes that were signed*. This is the shape of most real incidents in this space, and it is why "signed" is such a dangerous shorthand for "trusted". The attacker position that produces it is not the movie version of a thief stealing a private key. It is upstream of the signing step: - the vendor's build environment is compromised, so harmful bytes reach the signer legitimately; - a maintainer with real commit and release rights ships the change themselves; - a dependency the vendor pulls in is compromised, and the vendor rebuilds and signs in good faith; - nobody is malicious at all — the debug sidecar is a genuine mistake left on in the default values. In every one of those, the signature is not forged. It is *correct*. Signing is the last step of a release pipeline, so it inherits whatever the pipeline produced. ## What actually addresses it Because the gap is about content, the controls that close it are content controls, applied by the consumer: - read what the artifact does before you install it — for a chart, that means the default values, the privileges and mounts it requests, what it exposes, and what it reaches out to; - run your own analysis of the contents rather than accepting the publisher's assurance; - constrain the deployment environment so that a chart which asks for more than it should cannot get it; - treat a new signed release as a change requiring review, not as a green light because verification passed. Note the asymmetry that makes this hard: a clean scan and a valid signature are both *absence of evidence*. A debug sidecar in default values is a deliberate configuration, not a known vulnerability, so a vulnerability scanner has nothing to flag and the signature has nothing to object to. Two green checks, and the exposure is still there. ## Getting the direction right The compact way to hold it: a signature says **who vouched** for an artifact. It does not say **what is inside** it, and it does not say **how it was made**. Those are different claims carried by different documents, and answering "is it safe?" with "it is signed" is the canonical wrong answer in this domain. The value of signing is real but narrow — it makes tampering after release detectable and it makes the vouching party accountable, so that when something does go wrong you know whose release you are dealing with and can revoke your trust in it. That is worth having. It is not worth mistaking for a safety verdict.

  • The vendor's signing key was never stolen. Why is signed-but-malicious still the common case?
    Because signing is the last step of a release process, it inherits whatever that process produced. A compromised build environment, a maintainer acting deliberately, a compromised upstream dependency, or an ordinary mistake left in default values all reach the signer as ordinary release bytes. The signature that comes out is genuine, not forged, which is precisely why it is so persuasive to the consumer.
  • Your scanner flags nothing and the signature verifies. Is the chart cleared to install?
    No. Both results are absence of evidence, and neither is looking at the thing that hurts you. The signature attests origin, not content. A vulnerability scanner looks for known flaws in known components; a debug sidecar enabled in default values is a configuration decision, not a catalogued vulnerability, so there is nothing for it to match. Reading what the chart actually deploys is the step neither control performs.
  • So what is signature verification actually buying the hospital?
    Two real things. Tampering between the vendor's release and the cluster becomes detectable, so a middlebox or a compromised mirror cannot quietly alter the chart. And accountability becomes possible: you know whose release you installed, so if it turns out to be harmful you can revoke trust in that identity and identify every artifact you accepted under it. Neither of those is a safety verdict, and both are worth having.

A wax seal proves who closed the envelope and that nobody opened it since. It says nothing at all about whether the letter inside is a threat.

saying these in an interview costs you the question

  • Says a valid signature means the artifact is safe to run
  • Treats signing as a substitute for reviewing what ships
  • Assumes a signature covers behaviour, defaults or permissions
  • Believes harmful signed artifacts require a stolen key
  • Reports a green verification as an approval decision

context

open as a page

A device verifies a firmware update's vendor signature but never compares the signed subject digest to the bytes it flashes. What has it verified?

level: middleimportance: should knowfreq 58%

basics

~20 s

Only that the vendor signed some statement. Until the device hashes the bytes it is about to flash and matches that digest against the signed subject, the signature is not bound to the payload at all.

open as a page

An internal crates mirror ingests any crate carrying a valid publisher signature. What can still be served for a requested name?

level: seniorimportance: should knowfreq 44%

basics

~10 s

Any other genuinely signed crate. A signature answers who vouched for some bytes, never whether those bytes are the package and version that was requested, so substitution and downgrade both pass a presence check.

open as a page