Security & privacy
Security & privacy
An honest summary of what the product does today.
What it does today
- Local-first: client data lives on your machine in an encrypted SQLCipher database; the audit trail is a separate encrypted database.
- Evidence files encrypted at rest.
- Sign-in with the platform authenticator (Touch ID on macOS; Windows Hello on Windows).
- Roles (Admin, Analyst, Auditor, Viewer) with segregation of duties.
- Single-use recovery codes; account lockout after failed attempts; re-authentication for sensitive actions.
- 7-year audit-log retention with Auditor-gated purge; cryptographic erasure when a project is deleted.
- Assessed internally against CIS Controls v8, Implementation Group 1 (IG1), and run through static and dynamic scans in September 2026.
What we do not claim
- These are internal assessments, not third-party certifications or audits.
- The Certificate of Self-Assessment carries a SHA-256 content integrity hash; it is not a digital signature or a legal certification.
- The application does not guarantee legal compliance: it supports documentation and assessment.
This website uses no tracking cookies and no third-party scripts.
Architecture & threat model
Ports: none listening · the only outbound connection is HTTPS (TLS) to one fixed origin, to fetch signed updates. Every download is verified (Ed25519 + SHA-256) before use, and the application never patches itself.
The interface is treated as hostile by design: it can reach the Rust core only through the small set of IPC commands the application registers, and only within the capability grant shown above. No component opens a listening port; internal “traffic” means in-process function calls and local file I/O, not network hops. Update connections are made by the Rust core, never by the interface.
Data at rest is protected two ways at once: the database is SQLCipher-encrypted, and the key that unlocks it is held in the operating system’s protected vault. So a copied database file is useless without also compromising that specific OS account. Sign-in runs through the platform’s own biometric hardware.
These values were verified against the application’s configuration (tauri.conf.json and capabilities/default.json), not assumed.
If files or a computer are stolen
Copying a project’s files to another computer does not give access to the data.
- The key that opens the database is not in the files. It is held in the operating system’s protected store (Windows DPAPI, bound to the Windows account; or the macOS login Keychain), and the project’s keyfile holds only a reference to it.
- If someone copies the database, the evidence and the keyfile to another machine, the key is not there: the project cannot be opened and access to the database is denied.
- Even on the original machine, opening a project requires Touch ID (macOS) or Windows Hello (Windows).
What you should know
- The recovery code exists for a lost computer and can open the project on another computer together with the files. Keep it separate and offline, never with the computer. It is single-use: using it issues a new one.
- A stolen computer that is already unlocked, with the user signed in, is protected only by the computer’s own security. We recommend full-disk encryption, a screen lock and signing out.
Cryptography
The algorithms that protect the database and evidence files are FIPS-approved: AES-256, SHA-256 and Ed25519. Argon2 key derivation is the one exception, explained below.
| Use | Algorithm | Standard |
|---|---|---|
| Project database (encrypted at rest, with per-page authentication) | AES-256 with HMAC, via SQLCipher | FIPS 197; FIPS 198-1 |
| Each project’s master key | 256 random bits from the operating system’s generator, handed to SQLCipher as a raw key | Operating-system random bit generator |
| Master-key protection and evidence-file encryption | AES-256-GCM | FIPS 197; NIST SP 800-38D |
| Report integrity hash and update verification | SHA-256 | FIPS 180-4 |
| Update-manifest signing | Ed25519 | FIPS 186-5 |
- Argon2: the key that wraps the master key is derived with Argon2, a modern and strong standard that is not a FIPS-approved key-derivation function.
- These are FIPS-approved algorithms. The implementations are not FIPS 140-2/140-3 validated cryptographic modules.