Security
Security
How VaultWell protects what you keep in it, in plain words. Including the parts it can't protect, and what we haven't done yet.
Who and what we protect against
VaultWell is designed for everyday privacy threats, the kind most people actually face.
- Someone picks up your phone. A partner, a relative, a colleague, or a stranger who finds it. Without the path, the vault stays shut, even if they know your phone's passcode.
- Someone pressures you to unlock. You can open an everyday vault or the duress vault. Nothing on screen shows that other vaults exist.
- Someone copies the app's files. The keys are tied to your phone's security hardware, so guesses can't be run on a fast computer.
- Someone tampers with stored files. Every encrypted piece is authenticated, so changes are detected rather than shown.
It is not designed to resist an attacker who has already installed malware on your phone, who watches you trace your path, or who can force you to reveal every path you have. No app can promise that.
How the encryption works
- Path. The order of cells you trace on the comb (at least eight, no repeats) becomes the input.
- Argon2id. That input is stretched with Argon2id using 64 MiB of memory and two passes, so each guess takes real time and memory.
- Hardware binding. The result is combined with a secret held in the Secure Enclave on iPhone, or the Android Keystore (StrongBox where available). This secret can't be exported, so the key can only be worked out on your phone.
- Master key. Each vault has a random 256-bit master key, stored only in encrypted form under the key from your path.
- Chunked AES-GCM. Items are encrypted with AES-256-GCM in 1 MiB chunks. Each chunk is bound to its item and position, so chunks can't be swapped, reordered or cut off without failing. Thumbnails, the item list and settings are encrypted too.
There is no account and no server. Your keys never leave your phone, and nothing in your vaults is sent to us.
Hidden vaults, and what an examiner might still see
On screen, VaultWell gives nothing away. The lock screen is only the comb. A wrong path and a path that was never used look the same. There's no list or count of vaults. Every vault's settings file is padded to the same size, so a vault's options, including whether it's the duress vault, can't be told from outside.
On disk, we want to be precise. Each vault is stored as its own encrypted folder. Someone with full access to the app's raw files, for example through a forensic extraction of an unlocked phone, could count those folders, and could count how many vaults have a recovery phrase set. They couldn't open them or see what's inside, but they could infer that more than one vault exists. We plan to reduce this, for example with decoy entries, and we'll publish details when it changes.
On the screen
Gives nothing away
- Only the comb is shown
- No list or count of vaults
- A wrong path looks like a path never used
In the raw files, with full access
Could be counted
- How many encrypted vault folders exist
- How many vaults have a recovery phrase set
Stays unreadable
- What any vault contains
- Which vault is the duress vault
The duress vault
When the duress vault is opened with its path, VaultWell first deletes the key file of every other vault and their recovery files, then removes those vaults' folders. Without the key files the data can't be decrypted. Then the duress vault opens like any other, with no message on screen.
- The erasure is permanent on the phone. There is no undo.
- Opening the duress vault with its recovery phrase doesn't erase anything.
- Backups and shares stored elsewhere are not affected.
Backups and shares
Backups (.vwbackup) must open on a new phone, so they can't use your old phone's hardware. Instead, each backup locks the vault's master key with Argon2id from your path (and phrase, if set) under a fresh random salt. Items stay encrypted exactly as stored. A backup's safety rests on the strength of your path or phrase, so keep backup files private.
Shares (.vwshare) use a fresh random key, locked by a separate share phrase. Items are re-encrypted into it, so the recipient never learns your vault's key. Limits on opens, expiry and saving out are enforced by the app, not by cryptography, because there's no server. Someone determined who has the phrase could still copy what they see.
What we don't claim
- No completed audit yet. An independent security audit is planned before launch. We'll publish the outcome.
- Not invisible. The app is visible on your phone, even with a disguise icon, and a forensic examination may show that several vaults exist.
- Not screenshot-proof on iPhone. VaultWell protects against screen capture, but iOS doesn't let apps block screenshots; VaultWell tells you when one is taken. No app can stop a photo of the screen.
- No recovery by us. If you lose your path and phrase, we can't help. We never have them.
Reporting a problem
If you find a security problem, we'd be grateful to hear about it privately first, and we'll credit you if you'd like. Contact details will be added before launch.