Skip to main content
Authsome is a local-first credential broker. It assumes the local machine and user account are trusted relative to the remote services it authenticates against. This page lists the specific risks Authsome addresses, the residual risks it does not, and the boundaries it enforces.

Asset summary

AssetWhere it livesAt-rest protection
OAuth access/refresh tokensVault (encrypted SQLite)AES-256-GCM (Argon2id DEK)
API keys & Client secretsVaultAES-256-GCM
OAuth client_idVaultPlaintext
Provider definitionsFilesystemNone (not sensitive)
Master key~/.authsome/server/master.key or OS keyringFilesystem permissions or keyring
Identity keys~/.authsome/identities/<handle>.keyFilesystem permissions
Audit logSQLite (daemon-managed)None (intentionally queryable)
In-flight auth sessionsDaemon memoryProcess boundary

What Authsome protects against

Credential sprawl. Tokens and API keys live in one encrypted store rather than as plaintext environment variables scattered across every project’s .env, shell config, or CI secret store. Secrets in process listings. authsome run injects credentials at the HTTP proxy layer. The child process never sees the real secret, preventing leaks through ps, /proc/<pid>/environ, or subprocess environment inheritance. Secrets in shell history. Tokens and API keys are never accepted as command-line arguments. They are collected through a local browser bridge or masked terminal input. Offline disk access. AES-256-GCM protects against a stolen disk image or another user reading your home directory. An attacker cannot decrypt records without the master key, which lives separately. Stale tokens. OAuth refresh is automatic. Agents get a fresh token at runtime and never need to handle expiry. There is no long-lived embedded token sitting in a script to leak. Cross-tenant contamination. Vaults belong strictly to a single Principal. Credentials owned by one Principal are invisible and inaccessible to Identities claimed by another Principal.

What Authsome does not protect against

A compromised root process. If an attacker has root access on the machine, they can read the master key and the Vault directly. Authsome is a local broker, not a sandbox. Memory inspection. Resolved credentials are held in the daemon’s memory and briefly in the proxy’s request pipeline. A process with ptrace or kernel access can read them. Malicious provider definitions. Custom providers in ~/.authsome/providers/ can declare any api_url. Authsome validates the schema, not the intent. Only register definitions you trust. Network attackers on the wire. Authsome relies on TLS to the provider. The mitmproxy CA it installs is limited to the local machine for outbound interception. Authsome does not validate certificate transparency or pin provider certificates.

Trust boundaries

BoundaryWhat’s inside is trustedWhat’s outside is not
NetworkThe daemon at 127.0.0.1:7998.Anything else on the LAN or internet.
IdentityAn agent holding a valid Ed25519 key.Any caller without a valid PoP token.
Local machineThe user’s account and processes running under it.Other user accounts on the same machine.

Responsible disclosure

If you find a security issue, please follow the process in Responsible disclosure. We accept reports privately and acknowledge them within 72 hours.