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.