Security
How it is built
Plain language, no hand-waving. If something here reads as a promise rather than a mechanism, ask about it.
Two secrets go in
Unlocking stands on a master password, which only you know and which is stored nowhere, and a secret key — 128 random bits made on your first device. Both are fed to Argon2id with 64 MiB of memory, three passes and four lanes, and out comes the account unlock key.
The memory cost is not arbitrary. It is the ceiling that still fits inside the roughly 120 MB an iOS autofill extension is allowed, measured rather than guessed: about a tenth of a second on an M-series Mac. Raising it later does not mean re-encrypting the vault — only the envelope around one private key is re-keyed.
What the keys open
The unlock key opens the account's private key. That opens the key of each vault, and a vault key opens its items and attachments with XChaCha20-Poly1305. Nothing is encrypted with a key derived straight from your password, which is why a stronger password later, or a shared vault, does not mean re-encrypting everything.
Item contents are padded before sealing, so the length of a ciphertext says as little as possible about the length of what is inside.
What is where
- Your device holds the whole vault, encrypted, in SQLite. It also holds the secret key in the system keychain, marked so it never travels to another device.
- The server holds sealed blobs and a sequence number per change. It has no password of yours: devices sign in with an Ed25519 signature.
- Nowhere holds the master password. There is no reset link, because there is nothing to reset against.
What an attacker gets
| If they take | What they can do |
|---|---|
| The whole server database | Read sizes and timestamps. Guessing your master password offline is not on the table: they are missing the secret key, which never reached the server. |
| Your laptop, locked | Read the encrypted vault file. The secret key sits in the keychain behind the account you are logged into; the master password is still missing. |
| Your laptop, unlocked and the vault open | Everything. No password manager survives this one, and any that claims to is selling something. |
| Your emergency kit alone | Nothing usable. The secret key is half the input. |
Where the code is
The cryptography is written once, in Rust, and called from every platform through UniFFI and a C ABI — not rewritten per platform. That is deliberate: one surface small enough to read end to end is worth more than five that each look fine on their own.
The vault format is documented and the export holds everything back to nothing, including one-time-code secrets and attachments. Leaving has to be easy, or the rest is talk.
What is not true yet
SilentKey has not been audited by anyone outside the project. That is planned before 1.0, not after. Until then, treat this page as a description of intent that you are welcome to check against the code.
3 September 2026