Skip to the content
nullroute
Browse the docs

What verification does not give you

The argument here, trusting arithmetic instead of people, has limits.

It does not verify the operating system. The manifest covers the application. The card's operating system is Debian, built with mmdebstrap; if the image you flashed was backdoored, the root hash it displays is whatever the backdoor wants. Half the usual answer exists: make image builds a card from this repository, and CI builds the system partition and checks the unit hardening assertions (INV-PROV-18, INV-PROV-19) against it. The other half does not: no image is published or signed, and Raspberry Pi bring-up is the next milestone. Until both are done, this is the largest gap in what this document promises. Verification defends the application and cannot bootstrap trust in what runs it.

It does not verify the hardware. We check the software supply chain. We cannot check that your Pi is a real Pi.

It does not prove the specs are the right specs. make verify proves the code does what the specifications say. Whether they describe a secure design is for human review, which the readable spec format exists to allow.

It does not prove the dependencies are correct. Cross-checking against an independent implementation catches disagreement, not both being wrong the same way.

It does not prove the absence of bugs. It proves the absence of one class of drift: code that no longer matches its documented behaviour, and builds that no longer match their sources.


Rendered from docs/VERIFICATION.md, the same bytes that ship with the code. SHA-256 15ae2ba12417b4691f63d9a4777eba2c328ff694961efea68f5e7dec4ae2e0bd