plutonium --threat-model

Threat model

A browser for security people that made vague claims would deserve to be ignored. Here's the honest version.

Not audited. Standard primitives, correctly applied as far as I can test. That is not review by cryptographers. Don't make this the only copy of anything irreplaceable.

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.

LayerChoiceWhy
Key derivationscrypt N=32768 r=8 p=1Memory-hard. GPU and ASIC cracking gains far less than against PBKDF2. ~200 ms per attempt.
EncryptionAES-256-GCMAuthenticated. A tampered file fails loudly instead of returning garbage.
Nonce12 fresh bytes per writeGCM nonce reuse under one key is catastrophic.
Password checkGCM tag verificationNo stored hash to leak.
WritesTemp file then renameA crash mid-write can't leave a vault that won't decrypt.
Key lifetimeMain process, zeroed on lockNever 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.

This is not Tor. It stops the browser remembering. It does nothing about what your network, your ISP or the sites you visit can see. If you need that, use Tor Browser — different problem, properly solved.

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.

PLUTONIUM v1.0.0 win/linux mit detecting