Desktop Integration Security
How Passwall Extension and Passwall Desktop communicate securely via native messaging, how long sessions work, and what data boundaries are enforced.
Browser extensions cannot directly access OS-protected key stores (for example macOS Keychain, Windows DPAPI, or Linux Secret Service). Passwall Desktop acts as the trusted local component that talks to the OS and exposes only minimal key-related operations to the extension.
- Extension sends request over browser native messaging API.
- Desktop host validates extension origin against allowlist.
- Desktop can read encrypted key blob from OS-secured storage.
- Sensitive responses are returned through encrypted IPC session.
- After successful unlock/login, a user key is stored in desktop secure storage.
- On extension startup, it attempts a secure handshake with desktop.
- If authorized and desktop is unlocked, extension retrieves the user key through encrypted IPC.
- Extension restores active session from that key without asking master password again.
- When the desktop is locked, desktop notifies extension and extension clears in-memory/session key material.
The master password is never required for persistence operations and is not written to disk by this flow.
- Allowlisted extension IDs only
- Unauthorized origins rejected immediately
- Strict native message schema checks
- Ephemeral ECDH P-256 handshake
- AES-256-GCM payload protection
- Monotonic nonces for replay protection
- Key blobs encrypted via Electron safeStorage
- OS account bound decryption (Keychain/DPAPI/Secret Service)
- No plaintext key files on disk
- Desktop lock events invalidate extension session key
- Request timeout and backpressure limits
- Paired-browser metadata validation and size caps
Native messaging is not used to read webpage content.
It does not send browsing history, keystrokes, or tab content to Passwall Desktop.
The channel is dedicated to key retrieval/status signals and is separate from normal vault API traffic.
Made in Europe
Privacy by default