The security model, in plain terms
What LocalGateKeys is designed to protect, what it cannot protect, and what has and has not been checked by someone else.
Audit status: not yet audited. LocalGateKeys has not had an independent cryptographic review, penetration test or supply-chain audit. An external audit is planned. When it happens, the report and our response to every finding will be published on this page.
How your vault is encrypted
A random 256-bit key encrypts the vault. That key is never stored as it is; it is wrapped (encrypted) separately by each way you can unlock, so changing your password does not mean re-encrypting everything, and a wrapper copied from another vault is rejected.
- Vault encryption
- AES-256-GCM with a fresh random nonce for every save
- Master password
- Argon2id, 64 MiB memory, 3 passes, parallelism 4, random salt per wrapper
- Recovery phrase
- Optional 24-word BIP39 phrase (256 bits), expanded with HKDF-SHA256
- Windows Hello
- Wraps the vault key, never the master password
- Backups and transfers
- Argon2id and AES-256-GCM with the parameters stored in the authenticated header
- Device sync
- Pairwise keys from X25519 and HKDF-SHA256; every record sealed with AES-256-GCM and bound to its item, revision and sender
- Writes to disk
- Temporary file, flush, then atomic replace, so a crash cannot leave half a vault
Designed to protect against
- Someone who copies your vault file or a backup and does not know your master password
- A website getting logins saved for a different website
- Another program on your PC talking to LocalGateKeys without the session secret it hands to its own browser helper
- Filling a desktop app that has been swapped, updated or changed since you bound it
- Passwords sitting unencrypted on disk
- Forms being submitted without you
- Your cloud provider reading synced data: it only stores ciphertext
Not able to protect against
- Malware, or anyone with administrator control, already running on your PC
- A compromised browser, Windows installation or dependency
- A website you deliberately fill a password into
- Someone using your PC while the vault is unlocked
- Phishing inside a genuine app that shows attacker-controlled content
- Losing your vault, your backups and your master password with no recovery phrase: nobody, including us, can open it
Things LocalGateKeys never does
Some ways of filling passwords are indistinguishable from spyware, so they are ruled out by design. LocalGateKeys contains no:
- keyboard hooks or keystroke recording
- clipboard monitoring
- screen reading or OCR to find credentials
- scanning of other programs' memory
- decryption of your browser's saved-password database
- code injection into other programs or games
- automatic sign-in submission
The network, honestly
There is no LocalGateKeys account and no server that holds vaults. The app connects to the internet in only these cases:
- Update checks. When you choose Check for updates, the app downloads one small file and verifies its signature with a key built into the app. It never downloads or runs an installer by itself.
- Licence revocation list. Together with each update check, the app downloads a signed list of refunded licences and checks your licence against it on your PC. It sends nothing about your licence.
- Sync, if you set it up. Over your home network, devices talk to each other directly. Through a cloud folder, your cloud-drive app does the uploading.
Strict offline mode turns all of this off. The privacy policy lists exactly what our servers see when you do check for updates.
Known limitations
- The app is written in Python, which cannot guarantee that every copy of a password in memory is wiped. Keys are held in buffers that are overwritten on lock, but the master password itself is an immutable string.
- The camera unlock is a convenience check, not certified protection against photos or masks. Windows Hello is the stronger choice.
- Windows app fill does not work with programs running as administrator, custom-drawn game interfaces, or embedded web views it cannot verify.
- The vault detects being rolled back to an older copy, but an attacker who can delete both the vault and its local anchor file can defeat that check.
- Passkeys are not supported yet.
Report a vulnerability
Email security@localgatekeys.app. The vulnerability disclosure policy explains what is in scope, how quickly we respond and how we credit researchers.