Skip to content

eCall Security Architecture Proposal

Zero-Trust E2EE — Military-grade security for calls

Version: 1.0 Date: April 16, 2026 Author: Security Engineering Team Classification: CONFIDENTIAL — Internal Use Only


1. Executive Summary

eCall currently implements End-to-End Encryption (E2EE) for voice and video calls, utilizing AES-256-GCM (audio) and P-256 ECDH via the Secure Enclave (key exchange). However, after a comprehensive security review (STRIDE + OWASP), we discovered 2 Critical vulnerabilities and 4 High vulnerabilities that require immediate remediation, alongside the realization that the current Key Transparency (KT) architecture is insufficient against scenarios where the Provider is compromised or acting maliciously.

Proposal: Deploy the "5-Layer Zero-Trust Shield" architecture — a security model equivalent to Signal, surpassing WhatsApp, and integrating the benefits of Apple iMessage Contact Key Verification, within a 10-week timeframe.


2. Problem: Why upgrade?

2.1. Vulnerabilities in the current system

Level Count Notable Examples
🔴 Critical 2 Video E2EE uses weak encryption (AES-CTR without Auth Tag — allows stream tampering); API Secret exposed via logs
🟠 High 4 Debug flag disables E2EE in Production; SSL Pinning disabled in Staging; AES key lacks access control
🟡 Medium 5 User IP exposed via STUN; Google knows call metadata; Thread-safety race condition
🔵 Low 3 Silent fallback instead of error reporting; Timing bug in WebSocket

2.2. Unmitigated Attack Scenarios

Scenario Description Beneficiary
Split-View Attack Server provides different public keys to each user → Undetected MITM Provider / Coerced Entity
Rollback Attack Server reverts to an old Merkle tree, reusing compromised keys Hacker controlling server
Key Signing Compromise Private key for checkpoint signing leaked → hacker signs fake checkpoint Hacker / Insider
Malicious Update Provider releases an iOS update disabling E2EE Coerced Provider
Enumeration Hacker scans KT API to map entire user network Hacker / Surveillance

3. Proposed Solution: "5-Layer Zero-Trust Shield"

3.1. Architecture Overview

╔═══════════════════════════════════════════════════════════════════╗
║                 eCall Zero-Trust Security Shield                  ║
║                                                                   ║
║  ┌─────────────────────────────────────────────────────────────┐  ║
║  │ Layer 5: OUT-OF-BAND VERIFICATION                          │  ║
║  │ QR Code / Safety Number — Human verifies human             │  ║
║  │ → Mitigates ALL scenarios (even compromised Provider)      │  ║
║  └─────────────────────────────────────────────────────────────┘  ║
║  ┌─────────────────────────────────────────────────────────────┐  ║
║  │ Layer 4: PUBLIC TRANSPARENCY MONITOR                       │  ║
║  │ GitHub + Public API — Publicly auditable                   │  ║
║  │ → Mitigates Split-View, early detection of Key Leaks       │  ║
║  └─────────────────────────────────────────────────────────────┘  ║
║  ┌─────────────────────────────────────────────────────────────┐  ║
║  │ Layer 3: THIRD-PARTY AUDITOR                               │  ║
║  │ Independent service cross-checks every 5 minutes           │  ║
║  │ → Mitigates Split-View via neutral third-party             │  ║
║  └─────────────────────────────────────────────────────────────┘  ║
║  ┌─────────────────────────────────────────────────────────────┐  ║
║  │ Layer 2: CONSISTENCY PROOF                                 │  ║
║  │ App remembers old Root, detects rewrite/rollback           │  ║
║  │ → Mitigates Split-View + Rollback Attack                   │  ║
║  └─────────────────────────────────────────────────────────────┘  ║
║  ┌─────────────────────────────────────────────────────────────┐  ║
║  │ Layer 1: INCLUSION PROOF (Implemented)                     │  ║
║  │ Ed25519 Signature + Merkle Proof                           │  ║
║  │ → Mitigates basic Fake Key attacks                         │  ║
║  └─────────────────────────────────────────────────────────────┘  ║
╚═══════════════════════════════════════════════════════════════════╝

3.2. Layer Details

Layer 1: Inclusion Proof ✅ (Existing)

  • Mechanism: When App A requests B's public key, the KT Server returns the key with a Merkle proof proving its inclusion in the tree. The App verifies the Ed25519 signature on the checkpoint.
  • Status: Implemented in KTVerifier.swift. Stabilizing test suite.

Layer 2: Consistency Proof 🆕

  • Mechanism: App stores the last (TreeSize, RootHash) in Keychain. On subsequent queries, the Server must include a Consistency Proof — proving the new Root is a valid extension of the old Root.
  • Mitigates:
  • Split-View: If Server creates different trees for users, consistency proof fails.
  • Rollback: If Server reverts to an older tree, TreeSize decreases → App detects immediately.
  • Effort: ~2 weeks (iOS + Server API)

Layer 3: Third-Party Auditor 🆕

  • Mechanism: An independent service (Cloudflare Worker / AWS Lambda) pings the KT Server every 5 minutes and records the checkpoint. iOS App cross-checks checkpoints from the Auditor.
  • Mitigates: Split-View — If Server sends a different Root to the App vs Auditor → immediate detection.
  • Effort: ~1 week (Cloudflare Worker + iOS integration)

Layer 4: Public Transparency Monitor 🆕

  • Mechanism: All checkpoints are published to a public GitHub repo or Public API. Anyone (journalists, researchers, community) can verify.
  • Value: Builds brand trust — proves eCall "walks the talk" on security.
  • Effort: ~1 week (CI/CD automation)

Layer 5: Out-of-Band Verification (QR / Safety Number) 🆕

  • Mechanism: Each user pair has a unique "Safety Number" (10 groups × 5 digits = 50 digits). Users compare this number in person or scan a QR code. Mismatch indicates Provider tampering.
  • Mitigates: ALL scenarios — even if Provider controls server + auditor + malicious update. Validation is human-to-human.
  • Effort: ~2 weeks (UI/UX + crypto logic)

3.3. Defense Matrix

Attack Scenario L1 L2 L3 L4 L5
Fake Key (MITM)
Split-View
Rollback Attack
Key Signing Leak ⚠️
Enumeration VRF
Malicious Update ⚠️

Conclusion: A minimum of 5 layers is required to defend against ALL scenarios, including intentional Provider tampering.


4. Competitor Comparison

Feature Signal WhatsApp Apple iMessage Telegram eCall (Current) eCall (Upgraded)
E2EE Audio/Video ❌ (Server-side)
Key Transparency ⚠️
Inclusion Proof
Consistency Proof
Third-party Auditor ✅ (Cloudflare)
Safety Number / QR
Public Monitor ⚠️ ✅ (Unique!)
Secure Enclave Key
IP Privacy (TURN) N/A
Open Source Partial TBD

Highlight: Post-upgrade, eCall will be the only calling app featuring a Public Transparency Monitor + Secure Enclave + Third-party Auditor combination — surpassing Signal (no Auditor) and WhatsApp (no Secure Enclave).


5. Implementation Roadmap

Phase 0: Critical Security Fixes — Week 1

Absolute Priority — Fix vulnerabilities currently in production

Task Details Impact
Video E2EE: AES-CTR → AES-GCM Replace entire CRTEncryptionManager (Obj-C) with native AES-GCM Mitigate bit-flip attack
Redact Janus API Secret Remove secret from logs + plan per-session JWT Mitigate secret leak
simulateWrongKey#if DEBUG Wrap debug flag Prevent E2EE disabling
AES key access control private(set) for session keys Mitigate key theft

Phase 1: Consistency Proof — Week 2-3

Task Details
Server: API GET /kt/consistency Return Merkle consistency proof between 2 tree sizes
iOS: KTConsistencyStore Store epoch state in Keychain
iOS: KTVerifier extension Verify consistency proof before accepting key

Phase 2: Safety Number & QR Verification — Week 4-5

Task Details
Safety Number algorithm SHA-512 based numeric fingerprint (Signal-compatible)
QR Code generation/scan Encode Safety Number into QR
UI: Contact Profile "Security" section Display Safety Number + verification status
Key Change Warning Alert upon unexpected key changes

Phase 3: Third-Party Auditor — Week 6

Task Details
Cloudflare Worker: KT Checkpoint Monitor 5-minute cron, verify + store checkpoint
iOS: Cross-check API App verifies Root against both KT Server + Auditor
Dashboard: Audit log viewer Web dashboard for team monitoring

Phase 4: Public Transparency Monitor — Week 7

Task Details
GitHub Action: Auto-publish checkpoints Push JSON checkpoint every epoch
Public API: kt-monitor.ecall.org REST API for community audit
Documentation Guide for community verification

Phase 5: Server Hardening — Week 8-9

Task Details
Rate Limiting KT API Max 10 lookups/min/device
DeviceCheck / AppAttest integration Defend against bots + Sybil attacks
Ed25519 Key Rotation HSM-backed key + 90-day rotation
STUN → TURN-only (relay) Hide true user IP

Phase 6: Stabilization & Third-party Audit — Week 10

Task Details
Penetration Testing Hire third-party firm for evaluation
Security Documentation Publish whitepaper
App Store Release Production deployment

6. Cost Estimation

Item Cost
iOS Development (10 weeks × 1 dev) Internal
Server Development (6 weeks × 1 dev) Internal
Cloudflare Worker (Auditor) $0 (Free tier: 100K req/day is sufficient)
GitHub (Public Monitor) $0 (Public repo)
AWS KMS / GCP Cloud HSM (Key rotation) ~$1/month
Third-party Penetration Testing $5,000 - $15,000 (one-time)
Total External Cost ~$5,001 - $15,001

ROI: Very low cost (primarily dev time) with massive brand value — eCall can claim "security surpassing WhatsApp" with concrete technical proof.


7. Risks & Mitigations

Risk Probability Mitigation
Video AES-GCM causes lag on old devices Low Benchmark on iPhone 11; fallback to AES-GCM-SIV if necessary
Server KT lacks Consistency API Medium Parallel iOS + Server development
Users ignore Safety Number High Gentle UX integration (non-blocking, but clearly visible)
Auditor service downtime Low Graceful degradation — App functions normally, missing only 1 verification layer

8. Conclusion

Why approve this proposal?

  1. Absolute Security: 5 overlapping layers — attackers must breach all 5 layers simultaneously to eavesdrop. Even if the Provider is coerced, Layer 5 (human-to-human verification) will detect it.
  2. Low Cost: ~10 weeks dev time + <$15K external cost. No complex infrastructure required.
  3. Competitive Advantage: eCall will be the only calling app in the market with a Public Transparency Monitor — anyone can verify eCall is not cheating. Strong selling point for B2B/Gov clients.
  4. Legal Compliance: Meets GDPR (data encryption), HIPAA (healthcare call encryption), and military security standards (Zero-Knowledge architecture).

Approval:

Role Name Signature Date
CTO / Tech Lead _____ _____ //2026
Security Officer _____ _____ //2026
Product Manager _____ _____ //2026