Skip to content

Operations

Security

Authentication, encryption, the audit hash chain, and the hardening the panel applies to itself.

Updated Edit this page on GitHub

Authentication

  • Passwords are hashed with Argon2id; a policy is enforced on every change.
  • Brute-force lockout with progressive delays on the login screen.
  • TOTP 2FA with recovery codes; forced password change on first login.
  • Sessions are server-side, revocable (individually or all), and expire.
  • Three roles: admin, developer, viewer — checked server-side on every API call.

Secrets & encryption

  • Provider tokens (Cloudflare) and 2FA secrets are encrypted at rest with AES-256-GCM using a per-install key.
  • Secrets are never returned to the browser — only fingerprints (····Fe).
  • Terminal access uses single-use 30-second tickets, not long-lived tokens.

Audit log

Every meaningful action (logins, DNS writes, app deploys, firewall changes, rotations…) is written to an append-only audit log that forms a hash chain — tampering with an entry breaks the chain and is detectable (GET /api/audit/verify).

Self-hardening

  • The panel runs as its own system user with a hardened systemd unit (no root).
  • Firewall changes require confirmation within 60 seconds or they roll back.
  • The web surface is a secret URL with byte-identical 404s for unknown tokens and per-IP rate limiting/bans at the relay.

Reporting a vulnerability

Open a private security advisory at github.com/Arsh0712/HypnoPanel/security/advisories/new — never a public issue. Response target: 72 hours.