Encrypted doesn't mean invisible.
CipherRelay's content boundary, first-contact trust, and the limits of static keys.
- 01Plaintext in browser
- 02AES-GCM ciphertext
- 03Relay sees metadata
- 04Peer decrypts
CipherRelay encrypts message and file content in the browser. The relay transports ciphertext rather than plaintext. That is a meaningful content boundary, but not a promise that every aspect of a conversation is hidden.
The server can still observe routing, timing, and other metadata. Identity trust is separate too: trust-on-first-use fingerprints can flag later key changes, while first contact remains vulnerable to an active intermediary unless fingerprints are verified independently.
Static identity ECDH does not provide forward secrecy. Compromise of long-term key material has consequences that a ratcheting protocol is designed to reduce. Calling this an educational prototype is more accurate than presenting it as a replacement for an independently audited messenger.
The engineering lesson is to describe a threat boundary before attaching a security label. The README explicitly documents these constraints, including missing key recovery and multi-device support. Any protocol redesign should start with an explicit threat model and independent review.
Based on the documented implementation and recorded artifacts—not an independent audit. Read the repository source ↗
Explore the full case study ↗