Back to HomePrivacy PolicyTerms of ServiceAdmin Login
Security

Security by design,
not just policy.

Vokrae's security architecture ensures that sensitive information is protected at every level — from data collection to storage, authentication, and infrastructure.

Last updated: March 15, 2026•5 min read•Version 1.0
Table of Contents

Contents


Zero-Knowledge Architecture

Vokrae is architected so we cannot identify reporters. No IP logs, no personal data columns, no tracking. Security is structural.

Reporter Protection

Vokrae's architecture ensures complete reporter anonymity:

✓No IP addresses logged
✓No personal data collected
✓Anonymous ID system only
✓Cryptographically secure tokens
✓Safe IDs redacted from logs
✓Optional passphrase protection

Anonymous ID Format

Each reporter receives an ID like HOPE-2847-STAR — randomly generated with no connection to their identity or device.

These IDs are hashed in the database and automatically redacted from system logs.

Authentication & Access Control

JWT-Based Authentication

All admin sessions use secure JSON Web Tokens with automatic expiration.

Password Security

  • Bcrypt hashing with 12 rounds (cost factor)
  • Password reset tokens expire after 1 hour
  • Cryptographically secure token generation

Role-Based Access Control

Granular permissions based on user roles:

•Owner: Full organization control
•Admin: Manage reports and replies
•Investigator: View and respond
•Viewer: Read-only access

Rate Limiting & Abuse Prevention

All rate limits are keyed by organization or chat ID — not by IP address — ensuring no IP data is stored:

New conversations30 per hour
Messages per chat80 per 15 min
File uploads25 per 15 min
Passphrase attempts8 per 15 min

Passphrase Brute-Force Protection

Only failed passphrase attempts count toward the limit. Legitimate reporters who enter the correct passphrase are never rate-limited. After 8 wrong guesses, the chat is locked out for 15 minutes.

Data Security

Database Security

  • PostgreSQL with SSL/TLS connections in production
  • Query parameterization to prevent SQL injection
  • Statement timeouts (15 seconds) to prevent resource exhaustion
  • Connection pooling with automatic timeouts

File Storage Security

  • Cloudflare R2 object storage (configurable)
  • 50MB file size limit per upload
  • Whitelist-based file type validation
  • MIME type resolution based on file extension
  • Files organized by organization and chat ID

Message Integrity

Messages cannot be deleted once sent. This ensures:

  • Evidence preservation for investigations
  • Complete audit trail
  • Protection against data tampering

Optional Anonymization Features

Text Style Anonymization

When a reporter opts in, text is sent to Anthropic API to neutralize writing patterns while preserving meaning.

⚠️ Opt-in only — text is processed server-side via Anthropic when the user chooses to anonymize.

Voice Anonymization

Server-side processing via ffmpeg. Audio files are processed and immediately deleted after anonymization.

No voice data persists on servers.

Image & Document Anonymization

Client-side processing only — runs in the user's browser. No image or document data is sent to servers before anonymization.

Infrastructure & Communication Security

HTTP Security Headers

  • Helmet.js for comprehensive security headers
  • Content Security Policy (CSP)
  • X-Frame-Options: DENY (prevents clickjacking)
  • X-Content-Type-Options: nosniff
  • HSTS with 1-year max age and preload

CORS Policy

  • Strict origin validation
  • Credentials allowed only for whitelisted origins
  • Production and development environments separated

Real-Time Communication (Socket.IO)

  • Authorization required before joining chat or organization rooms
  • JWT tokens verified before socket connections
  • Room-based access control
  • Reporters can only join their own chats

Note: Hosting and CDN providers may process connection metadata (IP addresses, user agents) under their own policies. Vokrae's application code does not persist reporter IP addresses.

Payment Security

Vokrae uses Paystack for all payment processing:

  • PCI-DSS compliant payment processing
  • Webhook signature verification using HMAC-SHA512
  • Payment transactions logged with reference tracking
  • Optional auto-renewal (can be cancelled anytime)
  • No credit card details stored on Vokrae servers

All payment card data is handled exclusively by Paystack's secure infrastructure. Vokrae only stores payment reference IDs and transaction metadata.

Compliance & Subprocessors

Data Logging

ReportersAnonymous ID, message content, file metadata, timestamps, urgency flags
Organization AdminsEmail, name, role, activity audit log (actions only, no IPs)
Super AdminsEmail, audit log including IP (for platform security only)

Third-Party Subprocessors

Vokrae uses the following services (all configurable):

  • Hosting/Database: Application infrastructure (configurable)
  • Cloudflare R2: Uploaded file storage (configurable to any S3-compatible storage)
  • Paystack: Payment processing (organizations only)
  • Resend: Transactional emails
  • Anthropic: Optional text anonymization & urgency detection (only when user opts in)

Audit & Transparency

  • All administrative actions logged in audit trail
  • Organization owners can view activity logs
  • Email delivery tracked and logged
  • Failed payment attempts recorded for support

Report a Security Vulnerability

We take security vulnerabilities seriously. If you discover a security issue, please report it responsibly:

Responsible Disclosure Process:

  1. Email security@vokrae.com with details
  2. Allow us reasonable time to address the issue before public disclosure
  3. Do not exploit the vulnerability or access/modify data
  4. We'll acknowledge receipt within 48 hours and provide updates

Scope

Please report vulnerabilities in Vokrae's application code and infrastructure. Issues with third-party services should be reported to those services directly.

Questions about security?

Our security team is here to help.

Machine-Readable Security Data

For programmatic verification, security audits, or automated compliance checks, access our security information as JSON:

GET /api/trust/security