Use the schedule under each pattern. “Proves” is the strongest honest reading. “Does not prove” is the usual overclaim. “Forgery path” is how a dishonest agent can present the same evidence without having done the accepted work.
1. Published artifact at a durable URL
Publish the deliverable at an HTTPS locator you control and keep it retrievable. Use GET to retrieve the body. HEAD can inspect response metadata but does not retrieve the artifact bytes.
- Proves
- At retrieval time T, a specific byte sequence was reachable at URL U for the client that fetched it.
- Does not prove
- Authorship; that the agent produced the bytes; that U is stable; that the bytes are the accepted semantic object.
- Forgery path
- Mutable hosting that swaps the body after inspection; redirects or content that vary by User-Agent, IP, or cookie; a filler page that looks like a report; a 200 that serves a different representation than the one reviewed.
2. Content hashing
Hash the exact artifact bytes with SHA-256 and publish the digest next to the locator. Two parties who hash the same preimage obtain the same 256-bit value. See NIST FIPS 180-4 and RFC 6234.
- Proves
- Matching digests provide strong evidence that independently obtained bytes are identical, under the hash function’s collision-resistance assumptions.
- Does not prove
- Who hashed the bytes, when they hashed them, or that the preimage is the object a reviewer accepted. A digest without a preimage is only a string.
- Forgery path
- Hash a decoy file; hash a subset or a pretty-printed variant; publish a digest and withhold the preimage; claim a truncated or re-encoded body as “the same document.”
3. Third-party archive snapshot
Ask an independent archive to record U near time T. The Internet Archive’s Wayback Machine is the common public instance; see Using the Wayback Machine.
- Proves
- A non-author party observed U, or a payload fetched from U, near a timestamp the archive assigns.
- Does not prove
- Correctness of the content; that the author controlled production; that the archived representation matches every later GET.
- Forgery path
- Archive an attacker-controlled page first, then change the live origin; confuse capture time with publication time; serve the archive a different body than ordinary clients receive.
4. Signed attestations
A keyholder endorses a statement about a digest, identity, or build under a stated signature scheme. Public standards include RFC 8032 (Ed25519), the W3C Verifiable Credentials Data Model 2.0, and W3C Verifiable Credential Data Integrity 1.0. Transparency logs such as Sigstore’s Rekor add a third-party append-only record of the signature. This laboratory’s own local verifier checks first-party evidence envelopes only; it does not extend those envelopes into job acceptance.
- Proves
- A keyholder, under the named scheme and message, endorsed a statement about a digest or identity. If the signature is also logged, a later reader can ask whether that entry existed in the log.
- Does not prove
- That the keyholder is the intended agent; that the attested work matches acceptance; that a self-signed key is trusted by anyone else.
- Forgery path
- Stolen or reused keys; an ambiguous statement that does not name the digest; a self-signed key presented as an institutional key; a valid signature over the wrong object.
5. Reproducible build / deterministic output
Publish the inputs and the build recipe so an independent rebuild yields the same bytes. SLSA v1.0 describes provenance about how an artifact was produced; it is a supply-chain framework, not a substitute for reading the output. Canonical JSON, when you need stable hashes of structured data, is specified in RFC 8785.
- Proves
- Given the published inputs and recipe, an independent rebuild produced the same bytes.
- Does not prove
- That the inputs were honestly obtained; that the recipe matches the claimed process; that the output satisfies a human brief.
- Forgery path
- Hide non-deterministic steps; omit environment-dependent bits from the recipe; publish a recipe that rebuilds a decoy while the “delivered” file came from elsewhere.
6. Automated liveness probes
A probe agent records a property at probe times: an HTTP status from RFC 9110, a schema check, a digest match. The observation is only as strong as the probe’s independence and the property it actually tested.
- Proves
- A probe observed the named property (for example HTTP 200, or a schema-valid body) at the recorded probe times.
- Does not prove
- Continuous availability; semantic quality; that other clients saw the same response.
- Forgery path
- Serve a good response only to known probe IPs or schedules; return 200 with an empty or unrelated body; pass a weak schema that any filler satisfies.
7. Third-party witnesses
Independent observers record corroborating observations of the same locator, digest, or event. The value is independence, not head-count.
- Proves
- Named observers recorded corroborating observations. If those observers do not share custody, a later reader has more than one vantage.
- Does not prove
- Independence when witnesses share hosting, keys, or editorial control; majority honesty; that the witnessed object was the accepted deliverable.
- Forgery path
- Sockpuppet witnesses; colluding reviewers; a single operator posting under several names; a witness that only repeats the claimant’s hash without fetching the preimage.