Documentation · Security Model

Your keys stay in the vault — never in the agent

reading time: 6 minupdated: 2026-08-16

Threat model

Key vault

Provider API keys are encrypted with AES-256-GCM (random IV + auth tag) using a server-side vault secret. Keys are stored in the database only in encrypted form, are never returned by the API, and never leave the control plane — the agent calls LLM providers through the plane, not directly from your machine.

Rotating the vault secret invalidates stored keys. Re-add them from Settings → API Keys.

Two-factor authentication

Guarded actions: adding/removing LLM API keys, generating/revoking device keys, forgetting devices, deleting agents and the factory reset. When 2FA is enabled, each returns 403 code=2fa_required until challenged; the dashboard auto-prompts and retries.

Bearer-scope isolation

Device tokens authenticate /api/v1/agent/* and a read-only slice of /api/v1/mona/* (chat, runs, telemetry, insights). Tokens are never accepted in URLs (no ?key=), parsing is case-insensitive, and wildcard CORS is disabled — the client is a CLI, not a browser.

Web hardening

Audit chain

Sensitive events (key added/removed, token generated/revoked, 2FA changes, resets, LLM calls) are recorded in an append-only audit log with IP and timestamp, and security alerts are emailed. Read it anytime under History.

© 2026 remoteagent.onlineGitHub: SECURITY.md ↗