Repository navigation
Seal
An RFC 3161 trusted timestamp of a case: a Time-Stamping Authority signs
the hash of manifest.json, which proves the case existed, unchanged, at
that time.
| Requirement | Why |
|---|---|
A case with manifest.json
|
from device acquire, import or analyze --evidence
|
| The computer online (not the phone) | the request goes to the TSA over HTTP(S) |
| A TSA URL | e.g. https://freetsa.org/tsr, or your organization's TSA |
Only the SHA-256 of manifest.json is sent; no case content leaves the
computer.
apex seal ./case-42 --tsa https://freetsa.org/tsr
apex verify ./case-42 # now also checks the timestampTwo files next to the manifest: manifest.json.tsq (request) and
manifest.json.tsr (signed token). seal prints the time, the TSA and the
signature check, plus the openssl ts -verify command to check the chain to
a trusted root.
verify fails if manifest.json was edited after the timestamp,
even if someone recomputed manifest.json.sha256. APEX checks the token's
signature (RSA, ECDSA P-256 / P-384) against the signer certificate in the
token; the chain to a trusted root is checked with openssl.
Seal right after the acquisition, before any analysis output is written.
APEX · mlab-sh/apex · This wiki is generated from the repository's wiki/ folder: edit it there, not here.
Getting started
On the phone
From an extraction
Analysis
Reporting and procedure
Static analysis
Concepts