What Scrinium protects — and what it cannot do
The core promise
Scrinium is designed so that the server is architecturally unable to read your notes. Plaintext exists only in your browser's memory while you are editing. At rest, in transit, and on the server, your notes are ciphertext.
Assets we protect
- Your note content (plaintext).
- Your search queries (run client-side over decrypted content).
- Your account/key material (Account Key, Vault Key, per-note Note Keys).
- Your metadata to the extent possible (we minimize how much we keep).
Threat actors considered
The server / service provider
The server stores ciphertext plus an SRP verifier. It has no plaintext, no decryption keys, and no way to derive them from what it holds. A compromised server cannot recover your notes from stored data alone.
Network observers / man-in-the-middle
Transport is encrypted, and SRP-6a provides mutual authentication so the password never travels and the server proves it knows your verifier — defeating an impostor server.
Account / password recovery
A BLAKE2b recovery key lets you regain access. Anyone who obtains your password or recovery key can decrypt. We take steps to keep these only on your device.
Local adversaries on your device
Once your device is unlocked, the app must handle your plaintext to function. We rely on your device's security (screen lock, disk encryption). We do not claim to protect against a fully compromised device.
What Scrinium does NOT protect against
- A compromised or unlocked device, or a malicious browser extension with access to your session.
- Side-channel or physical attacks on your hardware; we assume the device is trusted.
- A browser-level compromise or supply-chain issue in the JavaScript that runs the crypto. This is why we publish the design and the source.
- You willingly sharing your account key, password, or recovery key.
Design commitments
- Password derives the Master Unlock Key via Argon2id (never stored, never sent).
- Key hierarchy: Master Unlock Key → Account Key → Vault Key → per-note Note Keys.
- XChaCha20-Poly1305 AEAD for note encryption; integrity checked on every decrypt.
- The server stores ciphertext and an SRP verifier only.
- Sync is a dumb encrypted-blob store; content is opaque to the backend.
- Open source and independently verifiable.
Controls & verification