Skip to content

Security & Compliance

Keshless implements comprehensive cybersecurity and data protection measures designed to meet the regulatory requirements of the Central Bank of Eswatini and international financial services standards.

Regulatory Framework

Our security architecture is built to comply with:

  • POPIA (Protection of Personal Information Act) - South African data protection law applicable to cross-border transactions
  • FATF Recommendations - International AML/CFT standards
  • Eswatini Financial Services Act - Local regulatory requirements
  • PCI DSS - Payment Card Industry Data Security Standards (principles)

Security Documentation

DocumentIDPurpose
Information Security PolicyISP-001Cybersecurity policy, access controls, cryptographic standards
Data Privacy PolicyDPP-001Data protection, PII handling, retention, subject rights
Incident Response PlanIRP-001Security incident handling, emergency controls, escalation
Disaster Recovery PlanBCP-DRP-001Business continuity, backup systems, recovery procedures
Access Control & PermissionsACP-001Complete RBAC breakdown, auth mechanisms, permission matrices, data scoping

Security Architecture Overview

┌─────────────────────────────────────────────────────────────────┐
│                    CLIENT LAYER                                  │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │   User App   │  │  Vendor App  │  │  Dashboard   │          │
│  │  (Flutter)   │  │  (Flutter)   │  │   (React)    │          │
│  └──────────────┘  └──────────────┘  └──────────────┘          │
└─────────────────────────────────────────────────────────────────┘

                     TLS 1.3 (HTTPS)

┌─────────────────────────────────────────────────────────────────┐
│                    API GATEWAY                                   │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │                    Cloud Run                              │  │
│  │  ┌──────────┐  ┌──────────┐  ┌──────────────────────┐   │  │
│  │  │ Rate     │  │ Auth     │  │ Emergency Control    │   │  │
│  │  │ Limiter  │  │ Middleware│  │ Middleware           │   │  │
│  │  └──────────┘  └──────────┘  └──────────────────────┘   │  │
│  └──────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                    APPLICATION LAYER                             │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌──────────┐ │
│  │ Auth       │  │ KYC/AML    │  │ Transaction│  │ Audit    │ │
│  │ Service    │  │ Service    │  │ Service    │  │ Service  │ │
│  │ (JWT+OTP)  │  │ (Screening)│  │ (Ledger)   │  │ (SHA-256)│ │
│  └────────────┘  └────────────┘  └────────────┘  └──────────┘ │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                    DATA LAYER                                    │
│  ┌────────────────────┐  ┌────────────────────────────────────┐│
│  │  PostgreSQL        │  │  GCP Cloud Storage                 ││
│  │  (Cloud SQL)       │  │  (Document Storage)                ││
│  │  - Encrypted       │  │  - KYC Images (signed URLs)        ││
│  │  - Daily Backups   │  │  - Selfies                         ││
│  │  - europe-west1    │  │  - Private buckets                 ││
│  └────────────────────┘  └────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────┘

Key Security Features

Authentication & Access Control

FeatureImplementation
Password Hashingbcrypt with 12 salt rounds
Access TokensJWT (7-day expiry)
Refresh TokensJWT (30-day expiry)
OTP Verification6-digit, 5-minute expiry, 3 attempts max
Role-Based AccessUSER, ADMIN, SUPER_ADMIN
API KeysSHA-256 hashed, IP whitelisting

Cryptographic Controls

PurposeAlgorithmKey Size
Password Storagebcrypt12 rounds
Secrets BackupAES-256-GCM256-bit
Audit Log IntegritySHA-256256-bit
Data in TransitTLS 1.3256-bit

AML/CFT Controls

  • UN Sanctions Screening - Real-time screening against UN Security Council consolidated list
  • PEP Database - Politically Exposed Persons matching
  • Risk Scoring - 0-100 score with automatic rating (LOW to CRITICAL)
  • Transaction Monitoring - Real-time suspicious activity detection
  • Alert System - 4 severity levels (LOW, MEDIUM, HIGH, CRITICAL)
  • SAR Workflow - DRAFT → SUBMITTED → APPROVED workflow for regulatory reporting

Emergency Controls (Kill Switches)

8 emergency controls for rapid incident response:

ControlSeverityImpact
SYSTEM_SHUTDOWNCriticalAll API requests blocked
DISABLE_ALL_TRANSACTIONSCriticalNo financial operations
READ_ONLY_MODEHighNo write operations
DISABLE_WITHDRAWALSHighFraud protection
DISABLE_P2P_TRANSFERSMediumBlock user transfers
DISABLE_BILL_PAYMENTSMediumBlock bill payments
DISABLE_TOPUPSMediumBlock deposits
RATE_LIMIT_EXTREMEMediumDDoS protection

Backup & Recovery

Backup TypeScheduleRetention
PostgreSQL Daily2:00 AM UTC2 years
PostgreSQL Monthly1st of month5 years
Backup CleanupMondays 5:00 AMWeekly
Secrets BackupSundays 4:00 AM2 years

Recovery Time Objectives:

  • Critical systems: 2 hours
  • Non-critical systems: 24 hours

Compliance Dashboard

For regulatory demonstrations, the admin dashboard includes a Compliance Demo page (/compliance-demo) that provides interactive demonstrations of:

  1. Incident Response - Emergency control activation/deactivation
  2. AML Screening - Sanctions and PEP checking
  3. Backup & Recovery - Backup status and verification
  4. Access Control - Authentication and authorization flows
  5. Data Privacy - Encryption and deletion workflows

Document Version Control

DocumentVersionLast UpdatedNext Review
Information Security Policy1.0January 2026July 2026
Data Privacy Policy1.0January 2026July 2026
Incident Response Plan1.0January 2026July 2026
Disaster Recovery Plan1.0January 2026July 2026
Access Control & Permissions1.0March 2026September 2026

Contact

Security Officer: compliance@keshless.app Incident Reporting: security@keshless.app Data Protection Inquiries: privacy@keshless.app

Internal use only - Keshless Payment Platform