An attestation is a statement about an artifact or an event. In a software supply chain, it might describe a build, a test result, or the inputs used by a tool. A signed attestation lets a verifier check who signed the statement and whether it has changed.
It is not a certificate that the software is safe. A signed false claim remains false.
Why provide attestations for software?
A consumer needs more than an artifact name to decide whether a release meets its requirements. Evidence can identify the exact artifact, the producer, and the results the consumer’s policy expects. The in-toto statement format gives these claims a structured representation using subjects, digests, and typed predicates.
What can I do with an attestation?
You can compare recorded evidence with a defined policy: require a scan of the exact artifact, accept only an expected producer, or reject a missing result. The policy must run at the decision point that depends on it.
The verifier also needs a trust model. If the actor doing the work controls the observer and signing authority, it may fabricate a convincing record. Producer isolation and authenticated identity matter independently of the format.
What should the evidence describe?
Materials identify the inputs observed by a step. Products identify its observed outputs. Process information can describe the invoked command and its result. Environment observations provide relevant context within the collector’s scope.These are useful categories, not a rule that exactly four attestations prove every build. A digest identifies content; it is not an authenticated workload identity. Environment metadata is not automatically remote attestation of an entire machine.
Example: a compiler invocation
A record can bind a source digest, a configured compiler invocation, and the output digest. That gives a reviewer a specific claim to evaluate. It does not prove reproducibility, capture every hidden input, or establish that the compiler was uncompromised.
Example: a security scan
Bind the result to the exact source or artifact scanned. Retain the scanner version, relevant configuration, and result where available. A clean report supports the test’s defined scope; it does not establish that the artifact has no vulnerabilities.
What is the difference between an SBOM and an attestation?
An SBOM describes software components. An attestation makes a claim about a subject and may carry an SBOM as its predicate or refer to one. An SBOM can exist without a signature or an attestation. These are related but distinct concepts.
How do I create attestations?
For open-source Witness workflows, use the Witness documentation. For TestifySec’s enterprise workflow, start with CI/lock. Pushgate checks the push, and the platform manages multiple gates and technical control evidence. Read the trust model before deciding which producer a gate should accept.