What "Zero-Knowledge Encryption" Actually Means (and How IronSeal Implements It)
Zero-knowledge encryption means the service can't read your data — even if it wanted to. Here's what that actually means and how IronSeal makes it real.
The phrase everyone uses and few define
"Zero-knowledge" gets thrown around in security marketing constantly. Here's a precise, non-hand-wavy definition: a zero-knowledge service has zero knowledge of your content. It can route it, store it, and deliver it — but it cannot read it, because it never holds the keys to unlock it.
That's a higher bar than "encrypted," and the difference is where most apps quietly fall short.
Encrypted in transit vs end-to-end vs zero-knowledge
- Encrypted in transit (TLS): protects data between your device and the server. The server then decrypts and can read it. This is the padlock in your browser — necessary, but not sufficient.
- End-to-end encrypted (E2E): only the endpoints can decrypt. The server relays ciphertext. Good — this is the right category.
- Zero-knowledge is E2E plus a design discipline: the operator deliberately holds no key, no backdoor, and no recoverable copy of your secrets. Even under pressure, it can't produce your plaintext.
How IronSeal implements it
- When you register, your device generates an ECDH P-256 key pair. The public key is uploaded; the private key stays on your device, itself encrypted with a key derived from your passphrase (PBKDF2, 600,000 iterations).
- To send a message, your client fetches the recipient's public key, derives a shared secret with ECDH, and encrypts the text with AES-256-GCM.
- The server receives only
{ ciphertext, iv, ephemeral_public_key }. It checks those fields exist and relays them. It never inspects content. - The recipient re-derives the same shared secret on their device and decrypts locally, after passing a biometric check.
What the server can and cannot see
It can see metadata: that an encrypted message moved, between which accounts, and when. It cannot see message content, your private keys, or anything that would let it decrypt. There is no master key.
We're deliberate about stating both halves. A trust product that overstates its protection is worse than one that's honest about its limits.
Why it matters
"We promise not to read your messages" and "we are unable to read your messages" are different guarantees. The first survives only as long as the company's good behavior and security do. The second is a property of the system itself.
IronSeal is built for the second.