Security
Encrypted on your device. We can’t read it.
MyLifePapers is local-first. Your records are sealed with a key only you hold, before anything ever syncs. No account, no email, and no way for us to open your vault.
- Local-first
- End-to-end encrypted
- No account or email
- Open about the limits
What we protect, and how
Four promises, and how the app keeps them.
Sealed on your device
Your passphrase derives a key that encrypts your whole database and your files before anything syncs. The key is built on your device and never leaves it.
We never hold your key
Your passphrase, and the keys derived from it, live in memory only while you are unlocked, and are wiped when you lock. We store ciphertext we cannot open.
You choose where it syncs
Sync through your own cloud (Google Drive, Dropbox, OneDrive, or a local folder) or our encrypted backup. Either way, your records are sealed before they leave your device.
No account, no tracking
No sign-up and no email to try it. No analytics SDKs, no telemetry, no tracking of any kind.
How the lock works
One chain, from your passphrase to your records. It runs entirely on your device.
- 1
Your passphrase
Stretched with Argon2id (64 MiB of memory, 3 passes) into a key that only your device ever computes.
- 2
Unlocks your data key
That key unwraps your household data key, a random 256-bit key generated on your device that never leaves it.
- 3
Encrypts everything
The data key encrypts your local database and every record file before it syncs. Reading your records requires a device that has your passphrase.
To read your records, a device has to have your passphrase. We can’t, and neither can your sync provider.
You do not have to take our word for it
Open your sync folder, on your Desktop or in Google Drive, Dropbox, or OneDrive.
Your records live in files that end in .enc, and they hold nothing but
sealed bytes. Open one and there is nothing to read.
That is the point. If your cloud account were ever breached, your records stay sealed. The key that opens them was never there to steal.
What we’re honest about
Strong encryption comes with real trade-offs. Here are ours, stated plainly.
Lose both keys, lose the data
If you forget your passphrase and lose your recovery code, your records are gone. There is no backdoor and no master key. We would help if we could; mathematically, we cannot.
An unlocked device is an open vault
Encryption protects data at rest. A device that is unlocked and in the wrong hands can read what is on it. Use a device lock and biometrics.
A sync folder is not invisible
Whoever holds the folder can see that sealed files exist, how large they are, and when they changed. The contents stay encrypted.
The specifics
For the technically curious. Every line matches the shipping code.
- Passphrase key derivation
- Argon2id. 64 MiB of memory, 3 iterations, 1 lane, 32-byte key, 16-byte random salt.
- Vault encryption
- XSalsa20-Poly1305 (libsodium secretbox). 256-bit key, 24-byte nonce, authenticated.
- Local database
- SQLCipher whole-file encryption. Page key derived via HKDF-SHA256 from your data key.
- Household data key
- 256-bit, generated on your device. Held in memory only while unlocked, zeroed on lock.
- Adding a member
- Your data key is wrapped with a one-time key carried inside the invite, then re-sealed under the new device’s own passphrase. Neither passphrase is ever shared.
- Recovery
- Your passphrase, plus a one-time recovery code that unlocks a second, equal copy of the key. No master key exists.
- Share links (Trusted Access, Send)
- PBKDF2-SHA256, 100,000 iterations, then AES-256-GCM. The access code lives in the link and never reaches our servers.
- Unlock
- Face ID, Touch ID, or Android biometrics, with passphrase re-entry every 14 days. Desktop locks after 15 minutes idle and on sleep or screen lock.
- Randomness
- The operating system CSPRNG (libsodium randombytes / WebCrypto). Never Math.random for anything that protects data.
- Failed unlocks
- Rate-limited with backoff before any key derivation runs.
- Telemetry
- None. No analytics SDKs, no crash-reporting SDKs, no tracking.
Records that only you can open.
Buy once for your whole household. No account, no email to try it.