AuthG

Security Architecture

How AuthG stores your 2FA secrets, and what that does and doesn't protect against.

How the Vault Is Encrypted

Accounts are saved to a single file, vault.enc, in your user's app data folder, readable only by your user (0600 on macOS and Linux). It is encrypted with AES-256-GCM, with a fresh random nonce on every save.

macOS: the encryption key is a random 256-bit key created on first launch and kept in the system keystore (the macOS Keychain), never in the vault file. Copying vault.enc to another machine gets an attacker nothing.

Linux: the vault is encrypted, but the key is derived from data stored in the file itself, so it only protects against casual reading, not against someone who has the file. Keep your disk encrypted. A keystore-backed key for Linux is planned.

Google Authenticator exports (otpauth-migration:// QR codes) are decoded on your computer. Nothing is sent anywhere.

What It Protects Against

A stolen laptop or copied vault file

On macOS the vault is unreadable without the keystore key, which requires your login. Use full-disk encryption (FileVault) as well.

Network snooping

Your secrets are never sent over the network. The only network request AuthG makes is the update check, and only when you click Check for Updates.

Screen sharing

Privacy Mode blurs every code until you hover over it or select it with the keyboard.

Clipboard managers

Copied codes are marked as concealed so clipboard managers skip them, and are cleared after 30 seconds by default (adjustable) if the clipboard still holds that code.

What it can't protect against

Malware already running as your user can read what you can. No desktop authenticator can fully defend against that, so keep your system up to date.

Audit the Source Code

AuthG is open-source under the MIT license. Read exactly how the vault and codes work.

View on GitHub