Threat model
Designed to resist: passive network interception, curious relay operators, stolen server disks, forged application envelopes, relay replay attempts at application layer, copied app files without original Android Keystore keys, and opportunistic access to a locked app.
Not designed to defeat: an unlocked compromised phone, malicious accessibility services, OS or baseband compromise, a malicious recipient, screenshots or exports, traffic-analysis adversaries, coerced key disclosure, or endpoint malware recording content before encryption or after decryption.
Cryptography
route = base64url(SHA-256(Ed25519 public key)). Node challenges each connection; device proves route-key possession.Signed envelopes bind event type, sender route, event identifier, timestamp, and encrypted content. Receivers reject invalid signatures and duplicate message identifiers.
Relay-node design
Nodes receive anonymous route identifiers and already-encrypted payloads. Offline payloads use bounded RAM queues with five-minute expiry. Queue state is not written to disk. Process restart erases it.
Route announcement requires an Ed25519 challenge signature. Rate limits, payload limits, connection limits, queue bounds, and expiry reduce abuse and memory-exhaustion risk.
Presence is opt-in. Nodes expose only current live state for users who enable sharing. No last-seen timestamp or presence-history database exists. Last-seen values displayed by app are observations stored on viewer device.
Device and local data
- Private identity material and database wrapping keys stay behind Android Keystore.
- Chat history remains in encrypted SQLCipher database.
- Android backup and device-transfer extraction are disabled.
- Optional PIN and strong-biometric unlock protect app UI.
- Secure-screen mode blocks screenshots and recent-app previews.
- Duress PIN deletes Keystore aliases, encrypted database, identities, preferences, files, and cache; Android then controls uninstall confirmation.
Hardware-backed storage depends on device capabilities. Android Keystore can be software-backed on older or low-end hardware.
Voice and video calls
Offer, answer, ICE, and hangup events travel inside signed end-to-end encrypted envelopes. WebRTC media uses DTLS-SRTP. TURN fallback relays encrypted SRTP packets and receives short-lived HMAC credentials only after signed route announcement.
Direct WebRTC can reveal peer IP addresses. TURN hides peer IP only when relay candidates are selected. Tor mode disables calls because real-time media does not inherit tracker SOCKS routing.
Background delivery
Firebase Cloud Messaging carries an opaque wake event only. It contains no message content, ciphertext, NyxPeer route, sender, contact, group, or call details. App wakes, fetches ciphertext from node, and decrypts locally.
Google can still observe installation identity, push timing, IP/network metadata, and ordinary FCM device metadata. Tor mode unregisters FCM because Google push traffic does not pass through NyxPeer Orbot routing.
Release and update chain
Release APKs are signed with stable Android signing identity. Update metadata includes version, SHA-256 digest, minimum SDK, and expected certificate digest. App verifies downloaded APK hash, package identity, signing certificate, and version before requesting Android installation.
Android remains final installation authority. NyxPeer cannot silently bypass unknown-app permission or package-installer confirmation.
Metadata exposure
Encryption does not erase network metadata. Node can observe source IP, connection timing, anonymous source and target routes, payload size, delivery result, queue expiry, and TURN use. TURN can observe endpoint IPs and encrypted media flow timing. FCM sees wake-delivery metadata described above.
Release app avoids logging bodies, keys, contact cards, routes, and encrypted envelope content. No analytics or advertising SDK is included. Infrastructure still needs narrow operational telemetry for rate limits, service health, and abuse response.
Known limitations
- Signal Double Ratchet or equivalent forward secrecy and post-compromise security.
- MLS or another formally reviewed group-key protocol.
- Production TLS SPKI pinning and signed node-identity manifest.
- Independent source review, penetration test, and cryptographic audit.
Current ECIES device-key model authenticates endpoints and hides content from nodes. Device-key compromise can affect captured historical ciphertext. Do not treat current release as offering Signal-equivalent compromise recovery.
Hardening roadmap
- Signed node manifest, offline authority root, rotating node keys, and current/next TLS SPKI pins.
- Safety-number verification UI, QR comparison, and blocking identity-change warnings.
- Envelope replay windows, bounded replay cache, and stricter protocol fuzz testing.
- Double Ratchet-style direct sessions; MLS evaluation for groups.
- Device list, device revocation, key rotation, reproducible build work, external audit.
Security-critical validation will fail closed. Node verification, signature checks, TLS validation, and cryptographic algorithms will not become “disable protection” toggles.
Responsible disclosure: [email protected]. Never send private keys, seed phrases, passwords, or live user data.