OpenRadarBLOG

Video evidence that holds: integrity, timestamp, audit

A file on the left produces a band of blocks standing for the cryptographic digest; on the right, two comparisons, one with a green check mark and the other with a red mark of mismatch.

Short answer

A cryptographic hash proves one thing only: that these bytes are the same ones that existed when the hash was computed. The standard that defines SHA-256, NIST's FIPS 180-4, says exactly that — the digests serve to detect whether messages have changed since the digests were generated, and any change to the message produces, with very high probability, a different digest.

What the hash does not prove: that the scene happened as claimed, that the stated time is true, or that the file was not swapped before the computation. Each of those three gaps calls for a different instrument — a stamp inside the measured pixels, an external time reference, and verification that any third party can redo on their own.

In this piece
  1. What the hash proves
  2. What the hash does not prove
  3. Stamp inside the pixels
  4. Who guarantees the time
  5. When to compute the hash
  6. Independent verification
  7. How to check it yourself

What does a cryptographic hash actually prove?

A hash turns a file of any size into a value of fixed size. In SHA-256 that value is 256 bits long, usually written as 64 hexadecimal characters.

FIPS 180-4, published by NIST in August 2015, declares the algorithms secure because it is computationally infeasible to find a message that corresponds to a given digest and to find two different messages that produce the same digest. It is the second property that supports evidentiary use: nobody can manufacture a second file, with different content, that shows the same code.

In forensic practice that becomes a narrow, strong claim: this file is bit for bit the same as the one that existed when the code was computed. Cropping, brightening, recompressing or saving again in another program breaks the match.

What the hash does not prove

The most expensive confusion in any argument about digital evidence is treating integrity as authenticity. They are different things, and the hash settles only the first.

A green dashed area called the reach of the hash containing only the bytes of the file, and two red boxes outside it: the truth of the scene and the time; below, the three instruments that cover those gaps.
What sits inside and what sits outside the reach of the hash. Inside the dashed area there are only the bytes of the file. Outside it sit the truth of the scene and the stated time — and each gap is covered by a different instrument: a stamp inside the pixels, an external time reference and third-party verification. None of them is the hash.
Typical claims about an item of video evidence and which instrument supports each one. Columns built from FIPS 180-4 (NIST, 2015) and RFC 3161 (IETF, 2001).
Claim Does the hash support it? What would support it
The file has not been altered since the computation Yes The hash itself, recomputed by whoever doubts it.
The file already existed before a given date No A timestamp issued by a third party over the hash.
The time printed on the image is the real time No A clock synchronized with an external source, plus the third-party stamp.
The scene depicts what is claimed No Context, testimony, consistency with other records, expert examination.
Nothing was swapped before the hash was computed No Chain of custody and computation as close to the origin as possible.
Whoever produced the file is who they say they are No A digital signature with a key tied to an identity.

The last row deserves a note. A hash is not a signature: a hash is public and anyone can compute it; a signature involves a private key and binds the result to a holder. A system can have perfect integrity and no demonstrable authorship — acceptable, as long as it is stated clearly.

Why the visual stamp has to sit inside the pixels the hash covers

Every item of video evidence carries information about itself: date, time, camera identification, place, and in our case the speed measured. What decides whether that information is worth anything is where it lives.

If it lives outside what was measured — editable metadata, the file name, a spreadsheet alongside — the date can be changed without breaking the hash: the code still matches and the claim about time still has nothing holding it up. If it is drawn inside the pixels themselves, altering it changes the image, changes the hash, and the conflict shows up immediately.

This is a general principle, not an implementation trick: what the hash does not cover, the hash does not protect. It holds for the date stamp, the camera identification and any annotation someone intends to use as a statement of fact.

Who guarantees the time?

Nobody, if the only source is the clock of whoever produced the file. The clock in a video recorder runs slow, gets reconfigured, loses its battery and returns to a factory date. And it is controlled by one of the parties to the argument.

The internet's standard answer is the time-stamping authority of RFC 3161: a trusted third party that provides proof of existence of a piece of data at an instant in time, required to use a trustworthy time source. Two details in the same standard say where that stops: the authority stamps only a hash representation of the data, never the data itself; and it is required not to examine what it stamps, beyond checking the length of the value.

In other words: the outside witness attests to the instant and declares complete disinterest in the content. That is a virtue, because it preserves confidentiality, and it is a limit, because no timestamp says the image is true. It says the image is old.

Where we come in

Every record OpenRadar produces comes out with a SHA-256 signature that anyone can recompute without talking to us. The verification page is public, runs entirely in the browser of whoever is checking and sends the image to no server at all — including when the result is that the file does not match.

Verify an item of evidence now

At what moment should the hash be computed?

As close to the origin as possible. Every interval between the instant the image was formed and the instant the digest was computed is a period the hash does not cover — and it is in that period that a file swap would go unnoticed.

The architectural consequence is direct: computing the digest on the central server, after the file has crossed the network, the recorder and the management system, protects far less than computing it at the edge. The algorithm is the same, but the claim shrinks — from “nothing changed since the record was made” to “nothing changed since it reached the server”.

That is why integrity does not replace the chain of custody. It documents one stretch of the file's life with mathematical precision; who answers for each earlier stretch remains a matter of organization, contract and access logging.

Independent verification is what gives you strength in a dispute

An evidence system has two possible architectures. In the first, the vendor keeps the truth and issues reports: whoever doubts either believes the vendor or hires an expert. In the second, the vendor publishes enough for anyone to redo the check with ordinary tools, and the answer does not depend on anybody acting in good faith.

The difference shows up the moment the system is attacked. At an HOA meeting or in a hearing, the question is not whether the vendor is serious — it is whether the other side can check on their own. Independent verification trades trust for arithmetic, and arithmetic takes no side.

From which follow three design requirements, all of them verifiable by the buyer.

  1. A public, standardized algorithm.
  2. A reference value published with the evidence or through a separate channel.
  3. A check that works with tools already present on anybody's computer.

How do you check the integrity of a file yourself?

If you have received a file and its corresponding SHA-256 value, the check takes less than a minute and requires installing nothing.

  1. Download the original file, without opening and saving it again. Forwarding it through an app that recompresses images already invalidates the check — that is not a defect in the method, it is the method working.
  2. Compute the digest. On macOS or Linux: shasum -a 256 file.jpg. On Windows, at the Command Prompt: certutil -hashfile file.jpg SHA256.
  3. Compare it with the stated value. There are 64 characters: compare all of them, not just the start and the end.
  4. Write down what you did. The date of the check, the command used and the value obtained. That is what makes your check citable by someone else.

For OpenRadar evidence there is a short route: the page verify an item of evidence recomputes the signature of the photo inside your own browser, without sending the image to any server. And the warning holds: a positive result says the file is unaltered, not that the record is right. Integrity is the floor of the argument, not the ceiling — which is why it has to come with a stated method, as in measuring speed from video.

What this piece does not claim

It does not claim that a hash proves when the image was made, nor that the image depicts reality. It proves only that the file has not changed since the computation.

It does not claim that a third-party timestamp validates content. RFC 3161 requires the authority not to examine what is being stamped, which is exactly the opposite of attesting to truthfulness.

It does not describe the internal format of the OpenRadar marker, the layout of the stamp, or how the signature travels with the file. Everything here holds for any system that uses a standardized hash.

It is not legal guidance on the admissibility of evidence. It describes what each technical instrument supports; what a court or an HOA meeting accepts is another discussion.

Sources

  1. NIST. FIPS PUB 180-4 — Secure Hash Standard (SHS), August 2015. nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf Source of the definition that the digests serve to detect whether messages have changed since they were generated, of the two computational infeasibility properties, and of the statement that any change produces, with very high probability, a different digest. Consulted on 4 September 2026.
  2. Adams, C.; Cain, P.; Pinkas, D.; Zuccherato, R. RFC 3161 — Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP). IETF, August 2001. rfc-editor.org/rfc/rfc3161.txt Source of the description of the time-stamping authority as a trusted third party providing proof of existence of data at an instant, of the requirement to use a trustworthy time source, of the rule to stamp only a hash representation, and of the obligation not to examine the value stamped. Consulted on 4 September 2026.
Juliano Baladão Engineering at OpenRadar — measuring vehicle speed from video and producing auditable evidence on private roads.
About OpenRadar

We work on the cameras that are already there and produce a record signed with SHA-256, with a public check that does not pass through us. We would rather have a system anyone can audit than a system that only works while people take our word for it.

Talk about auditable evidence

Also available

All posts on the blog · RSS feed