Threat model
A browser for security people that made vague claims would deserve to be ignored. Here's the honest version.
The vault
Protects against
A stolen file. Copy vault.json off the machine and you face
scrypt then AES-256-GCM, and you need the master password.
Does not protect against
Anyone already running code as you while it's unlocked. Nothing that decrypts on your own machine can. Chrome, Firefox and every OS keychain share this limit — it's a property of the problem, not a shortcut taken here.
| Layer | Choice | Why |
|---|---|---|
| Key derivation | scrypt N=32768 r=8 p=1 | Memory-hard. GPU and ASIC cracking gains far less than against PBKDF2. ~200 ms per attempt. |
| Encryption | AES-256-GCM | Authenticated. A tampered file fails loudly instead of returning garbage. |
| Nonce | 12 fresh bytes per write | GCM nonce reuse under one key is catastrophic. |
| Password check | GCM tag verification | No stored hash to leak. |
| Writes | Temp file then rename | A crash mid-write can't leave a vault that won't decrypt. |
| Key lifetime | Main process, zeroed on lock | Never crosses IPC. |
Changing the master password generates a new salt, so an old file plus the old password unlocks nothing going forward.
Private windows
In-memory session partition. Cookies and storage discarded on close, nothing reaches history — enforced in the main process from the window that owns the page, not from anything a renderer reports.
Ad blocking, DNT, the security level and any UA override still apply. A private window quietly losing its protections would be worse than not having one.
Isolation
Pages run in <webview> guests with context isolation on
and Node integration off. The bridge exposing settings, vault and bookmarks is
attached only to the browser's own internal pages. A page from the web never
receives it.
Deliberately missing
Autofill. Injecting credentials into arbitrary pages is where password managers get dangerous — a sloppy origin matcher hands your bank password to a lookalike domain. Not worth shipping half-done. Copy-to-clipboard covers it safely.
Code signing. Builds are unsigned, so SmartScreen warns. Certificates cost a few hundred euro a year. Verify the hash, or build from source.
Reporting
Think you've found something exploitable? Email the security address rather than posting publicly. You'll get confirmation of receipt and a note when a fix ships.
Everything else: get in touch.
No bug bounty. This is a personal project with no budget. What you get is a fast reply and credit in the changelog if you want it.