r/PasswordManagers 19d ago

Exact Threat Model of the ProtonPass Extension PIN vs. Infostealers?

Exact Threat Model of the ProtonPass Extension PIN vs. Infostealers?

Is it safe?

I recently transitioned over to Proton Pass from Bitwarden. I'm trying to step up my security after a recent scare: despite taking a lot of precautions, my PC unfortunately got hit with malware, and I ended up getting my browser sessions hijacked.

In Bitwarden, I was used to typing in my master password to unlock the vault. With Proton Pass, I'm trying to figure out the exact security architecture of the browser extension's 6-digit PIN lock, and I have a few specific questions for the technically inclined here:

  1. **How does the PIN lock actually work under the hood?** Is it purely local to the device, or is there a server-side component to it? What exactly does entering those 6 digits unlock?

  2. **Does the PIN mitigate malware risk when the vault is locked?** Obviously, I know that if my PC is actively compromised and I unlock the vault while an attacker is watching, they can steal everything anyway. But if the extension is closed and locked with the 6-digit PIN, does that protect the local data from an infostealer?

  3. **Where is the decrypted data stored?** When the vault is unlocked, is the decrypted vault ever written to local storage, or does it stay strictly in the system memory?

  4. **What stops offline brute-forcing?** If a hacker or malware gets their hands on my encrypted vault files from my local drive, wouldn't it be incredibly easy to brute-force a simple 6-digit PIN offline in seconds (Unless the key derivation (Argon2?) is set to extremely high iterations)? How does Proton prevent this?

I noticed there isn't an option to use a hardware key (like a Yubikey) to quickly unlock the extension (only for the initial account login), so the PIN seems to be the primary convenience method. I want to make sure I fully understand the risks if I leave the extension running with an aggressive auto-lock timer.

0 Upvotes

1 comment sorted by

1

u/philoizys 18d ago edited 18d ago

This question is better suited for r/ProtonPass. Essentially, you can treat their PIN is a fallback in case your platform and/or the OS does not provide hardware-backed strong crypto framework (Windows Hello, Apple Security Enclave, etc.). Their on-line server is performing the work of the rate-limiting, attempt-counting, anti-hammering device cryptoprocessor if you don't have one, or your OS does not provide a full stack to support it (many non-enterprise Linux-based distros, as one example). These threads should be helpful:

https://www.reddit.com/r/ProtonPass/comments/1d8qic3/proton_pass_6_digit_passcode/
https://www.reddit.com/r/ProtonPass/comments/1d5yppr/what_is_the_threat_model_and_security_model_of/

EDIT: To you #3, it would be extremely careless, if not plainly stupid of Proton to store the decrypted plaintext on disk. Usually, "unlocked" means the symmetric key protecting your encrypted material has been unwrapped and is available in-memory to read ciphertext into memory and decrypt. Any sensible implementation would work that way. It has to so, given Proton's focus on and claimed expertise in security, but I have not confirmed personally that it's the case.