Security posture
How we keep your dialer safe.
Concrete, line-item answers — no “industry-leading” or “military- grade.” Everything below is in production today. If you need something specific for compliance, ask.
Hardened base image
- TLS via Let's Encrypt, auto-renewing.
- Firewall on by default, only required ports open.
- fail2ban configured against SSH brute-force.
- Default passwords removed before the server hits ACTIVE.
- SSH password authentication disabled.
SSH access architecture
- Per-provision ephemeral keypair, never reused across customers.
- Platform operations authenticated by short-lived (1h) SSH certificates from a Certificate Authority — not a static shared key.
- Customer keys live in a dedicated table, synced atomically; remove them and they're gone within seconds.
- CA private key sealed at rest with AES-256-GCM, only loaded into worker memory at sign time.
Account auth
- TOTP 2FA with 10 single-use backup codes.
- Passkey (FIDO2 / WebAuthn) support — biometric or hardware key sign-in.
- Passwords checked against the haveibeenpwned breach corpus on signup, reset, and change.
- Suspicious-login email alerts when a new IP or new device touches your account.
- Active session list per user, revoke any session with one click.
Data at rest
- Encrypted secrets (Cloudflare tokens, VICIdial admin passwords, CA private keys) sealed via AES-256-GCM with a server-side master key.
- Database connections via TLS.
- Customer payment details handled entirely by Stripe; we never see card numbers.
Audit + observability
- Every server state transition, billing event, admin action, and impersonation session is logged in a single AuditLog table.
- Admin impersonation is time-limited (1 hour), banner-marked across the UI, and requires a written justification.
- Filterable + exportable from /admin/audit. Public API access (preview).
- Suspicious activity surfaces on a public status page in real time.
Sub-users + permissions
- Three roles: Billing, Operator, Viewer. Owner is a fourth implicit role.
- Destructive actions (cancel, change plan, delete) restricted to the owner.
- Membership invitations via signed token, 7-day expiry.
- Revoking a sub-user kills all their sessions immediately.
Anti-abuse
- CAPTCHA (Cloudflare Turnstile) on signup + login.
- Disposable-email blocklist (~250 providers) on signup.
- Per-IP and per-email rate limits across auth + checkout.
- Honeypot fields on every public form.
- Stripe Radar integration with critical-severity alerts on early-fraud-warning events.
Operational safety
- Servers stuck in INSTALLING for >45 min auto-fail and trigger automatic refunds.
- Daily snapshots retained 7 days (Pro+).
- Provisioning failures within 1 hour of payment auto-refund without ticket.
- Health checks every minute; sustained failures open public incidents.
GDPR + privacy
- Self-serve account anonymization from /dashboard/settings.
- Sub-processor list at /sub-processors.
- DPA available pre-purchase — no enterprise gating.
- Data residency: your data stays in the region you pick at order time.
Reporting a security issue
We respond to every disclosure within 24 hours. If you’ve found a vulnerability, email us — public PGP key coming soon, in the meantime we accept TLS-encrypted email.
Email security@vicifast.com