Security practice

Security is a practice,
not a badge.

We design for hostile networks, compromised infrastructure, and the possibility that today's traffic will be read later. Our approach is simple to state and demanding to maintain: strong defaults, minimal data, separated systems, and claims you can test.

How we keep the surface small

Cryptography is one layer of security, not the whole practice. We try to make the safe path the normal path, remove data we do not need, and make the boundaries between systems visible enough to inspect.

Strong defaults

Post-quantum key exchange and signatures are part of the connection rather than an expert-only switch. There is no quiet downgrade to an older cipher suite just to make a handshake look convenient.

Data minimisation

We do not keep IP logs, vault contents in any form, or third-party analytics. Over Tor, the server receives an exit-node address instead of yours; the best data to protect is data that never arrives.

Separated systems

The Windows VM Manager keeps QEMU control local and access-controlled. Its shared folder is an explicit airlock that can be opened for a task and closed afterward, not a permanent bridge between host and guest.

Verifiable claims

We show the algorithms, explain what the client and server can see, and point to ways to check the result on the wire, through Tor's own circuit data, or by self-hosting. Trust should have an escape hatch.

Responsible disclosure

Good-faith security reports are welcome. We would rather fix a claim in public than preserve a polished story that no longer matches the software.

Honest boundaries

We publish the attacks these controls do not stop: compromised devices, traffic correlation, metadata, what the server can still read, and why calls are refused over Tor. A clear limit is part of the protection.

Our standard: if a control is optional, we label it; if a claim is measured, we show how; if something is not built yet, we mark it as in progress. Security is an operating discipline, not a green word on a landing page.

The algorithms

These are NIST's standardised post-quantum algorithms, not pre-standard drafts or in-house designs. There is no legacy cipher suite to negotiate down to.

PurposeAlgorithmWhy this one
Key exchange ML-KEM-1024; X25519 + ML-KEM-768 for TLS FIPS 203. ML-KEM-1024 seals every message, mail and file. The TLS session underneath uses the X25519 + ML-KEM-768 hybrid, secure while either half holds. Neither can be recovered from recorded traffic by a future quantum computer.
Signatures ML-DSA-87 FIPS 204, highest parameter set. Authenticates servers and clients so a recorded handshake cannot be forged later.
Bulk encryption AES-256-GCM Symmetric ciphers are far less affected by quantum attack than public-key ones; 256-bit keys retain a large margin.
Password hashing Argon2 Memory-hard, so custom hardware buys an attacker much less than it would against a fast hash.
Transport QUIC Encrypted from the first packet, with per-stream isolation and no separate unprotected handshake to observe.

How this compares

Post-quantum cryptography has two separate jobs, and almost every deployed system does one of them. The distinction is worth understanding before you take anyone's word for "quantum-safe", including ours.

PQ key exchange PQ signatures Routable over Tor Self-hostable
QuantumPost Yes — ML-KEM Yes — ML-DSA-87 Yes Yes
Signal Hybrid (PQXDH) Classical Via Orbot No
iMessage Hybrid (PQ3) Classical No No
WhatsApp Classical Classical No No

Why the two columns differ

A broken key exchange is retroactive: recover the key years later and the recorded conversation opens. A broken signature is not — it lets an attacker impersonate someone from that point on, but it does not unlock anything already sent.

So prioritising key exchange is a defensible engineering decision, not negligence, and the teams above are not careless. It is the harvest-now threat they are answering, and they are answering it.

Why we did both anyway

Signature migration is slow and painful — it touches every certificate and every trust decision in a system. Doing it at the start costs us bandwidth on every handshake today, and costs us a migration we will never have to run later.

It is the more expensive choice and we think it is the right one. You can disagree; the point is that the table above tells you what you are actually getting.

Check this table rather than trust it. Everyone here ships updates, and a comparison written by one of the parties is exactly the kind of thing that quietly goes out of date in the author's favour. Signal's PQXDH and Apple's PQ3 are both publicly documented — read them. If anything here is wrong or has moved on, tell us and we will correct it.

Verify it yourself

Everything above is a claim, and a security claim you cannot check is worth roughly nothing. These are the ways to confirm it without taking our word for any of it — including the one that is genuinely hard for us to fake.

Look at the handshake on the wire

Point Wireshark at the QUIC port and watch a connection start. This is the check we would least be able to fake, because post-quantum credentials are enormous and it shows.

An ML-DSA-87 signature is roughly 4.6 KB and its public key roughly 2.6 KB. The classical equivalent — an Ed25519 signature — is 64 bytes. A post-quantum handshake is visibly, unmistakably larger, and it takes several round trips to get through QUIC's anti-amplification limit because of it. If we were quietly using classical crypto, the handshake would be small and fast, and you would see that immediately.

Read it off the client

The algorithms are printed on the sign-in screen, before you log in — ML-KEM-1024 · ML-DSA-87 · AES-256-GCM. Not buried in an about box, and not a different list from the one on this page.

Check the Tor circuit against Tor

The client's Tor tab does not report our numbers. It reads Tor's own control port and shows you the guard, middle and exit relays it actually built, their countries and fingerprints, and live bandwidth. Cross-check any of those relays against the public Tor consensus — if they do not match, we are lying to you.

Run the server yourself

The server is self-hostable, which is the strongest form of this: you do not have to believe anything about what we log, because you are the one running it. Point your own client at your own server and inspect every byte between them.

Confirm what the server sees over Tor

Connect with Tor on, then look at the connection from the server side. The address it sees is a Tor exit node, not you — verifiable against the public list of exits. That is the network enforcing it, not our policy promising it.

Hold the browser to its own matrix

The Secure Browser's capability matrix marks only one category of ten as measured, and each claim names what was observed and what has not been run yet. Test any of them against the shipped build — the page tells you precisely what it does and does not stand behind.

If any of this does not hold up, that is a bug and we want it. Tell us at the security contact on the about page. We will not threaten anyone who reports a problem in good faith, and we would rather be corrected in public than trusted by default.

Connecting over Tor

You can route QuantumPost through Tor so that our servers never learn your address. This matters for a specific reason: it moves the guarantee from something we promise to something the network enforces.

What it hides

Your IP address, from us. We see a Tor exit node, which is not you. There is nothing for us to log, disclose, or lose in a breach, because the information never arrives.

What it doesn't

It does not hide our address — the server is public either way. It does not hide from your network that you are using Tor. And it is slower, because your traffic is taking three extra hops.

A technical note, since people ask. QuantumPost runs on QUIC, which is UDP, and Tor carries only TCP. Supporting Tor properly therefore meant building a TCP door into the UDP listener rather than simply pointing the client at a proxy. That door is rate- limited, shape-checked, and sits in front of the same authentication as every other connection — it is a route in, not a way around.

What we do not keep

A privacy policy is a promise about data you hold. This is a description of data that is never written down in the first place, which is a stronger position for everyone — including us.

No IP logging

Connection addresses are not recorded. Over Tor we never receive yours at all.

No plaintext at rest

Your vault and password entries are encrypted with keys derived on your device, and stay on it: they are files in the program's own folder, never uploaded. Your browser history, bookmarks and sessions live in an encrypted database (SQLCipher, AES-256).

No third-party analytics

No trackers in the client, and none on this website — it does not even load its fonts from anyone else. Nothing to share because nothing is collected.

Limits worth knowing

Every one of these is true of the strongest systems in the world, not just this one. Anyone who tells you otherwise is selling something.

Traffic correlation

An adversary who can watch both ends of a connection at once can often match them by timing alone, whatever the encryption. No deployed network solves this, including Tor.

A compromised device

Encryption protects data in transit and at rest. It cannot protect a machine where someone else is already reading the screen or the keyboard.

Who you talk to

Messages are encrypted. The fact that an account connected at a particular moment is inherent to any online service; Tor is the mitigation we offer for it.

Calls and Tor

Real-time calls need low latency, which Tor cannot provide. So while you are connected over Tor, the client refuses voice and video calls rather than letting them go around it. Text chat in voice and video rooms still works.

What the server can still read

The vault and the password manager never leave your computer, so the server has no copy of them at all, encrypted or otherwise. Messages, mail, files and calls do pass through it, sealed end to end. Feed posts, comments and polls, profiles, the wiki and Knowledge Base, and who is friends with whom are not yet: the server stores them where it can read them. Moving each one behind encryption is the roadmap.

Pictures you have viewed

Feed photos and videos the client has fetched are cached on your device without their own encryption, for now. Encrypting that cache is on the roadmap.

If your threat model includes a state-level adversary who can observe large portions of the internet, no consumer product — this one included — should be the only thing standing between you and them. Layer your defences, and be skeptical of anyone claiming a single tool is enough.