Skip to content

Threat model

Last updated 2026-09-04

This document covers the evidence protocol: who could attack a record stream, what the format detects, and what it does not defend against.

Adversary classes.

An insider at the emitting system who chooses what to record. A compromised collector between the agent and the stream. A hostile vendor, which includes NOMARK. A tampered transport. A compromised or expired signing key. Each is treated as an attacker with a specific capability, not as a category of bad actor.

What the format detects.

The conformance corpus ships 9 categories of deliberately invalid stream, and a verifier that accepts any of them has failed. The categories are named on the protocol page and each has a vector file you can read. They are:

  • broken-chain
  • expired-key
  • replayed-record
  • sequence-gap
  • signature-mismatch
  • suppressed-stream
  • tampered-payload
  • truncated-tail
  • unknown-key

What it does not defend against.

Integrity of a record is not truth of its contents. A well-formed, correctly signed stream can describe things that did not happen. The verifier sees a stream from its genesis record onward and cannot see a decision to start recording late, or never. Signing keys are held by the emitter, so an emitter that chooses what to emit can produce a stream that verifies perfectly and is still selective. Every guarantee is scoped to the files handed to the verifier. These 4 limits are published in the kit itself, and the verification page quotes them from the kit's own bytes.

Key custody.

Keys are held by the emitting system, not by NOMARK. The verifier checks signatures against a public keyring the checker supplies. Managed key infrastructure is named as open scope on the collector capability rather than described as available.

Reporting.

Reports of a defect in the format or the verifier go to the same address as everything else on this site: enterprise@nomark.ai

Status.

Drafted for counsel review. Not a contractual representation.

Derived at 2026-10-13T21:23:07.203Z

From commit be2f6c5568b6d2dfc9f370a3b85c0a7ab3277613