Web Security

QUIC and HTTP/3: Encryption Baked Into the Transport

June 4, 2026 10 min read Haven Team

For thirty years, the web rode on TCP — a transport that predates the idea that the network might be hostile, and so encrypted nothing itself. QUIC tears that layering apart and rebuilds it with encryption as a built-in assumption rather than a bolted-on layer. The result, now carrying a large share of web traffic as HTTP/3, hides things from the network that have leaked since the 1980s — while opening a few new questions of its own.


QUIC began at Google around 2012 and was standardized by the IETF as RFC 9000 in 2021; HTTP/3, the version of HTTP that runs over it, is RFC 9114. Unlike the incremental jump from HTTP/1.1 to HTTP/2, HTTP/3 changes the layer underneath: it abandons TCP entirely and runs over UDP, with QUIC reimplementing the reliability, ordering, and congestion control that TCP used to provide — this time with cryptography woven through the whole stack.

Why Reinvent the Transport At All?

The original motivation was performance, not privacy. TCP plus TLS requires multiple round trips to set up a secure connection, and TCP's single byte-stream causes head-of-line blocking: one lost packet stalls every multiplexed request behind it, even unrelated ones. QUIC fixes both. It folds the cryptographic handshake into the transport handshake so a connection can be established in one round trip (or zero, for a resumed connection), and it carries independent streams that don't block each other when a packet drops.

But because the designers were building the transport from scratch in 2012 — well into the post-Snowden era — they made a decision TCP's authors never could: encrypt and authenticate as much of the transport itself as possible. That choice is where QUIC's security story gets interesting.

What QUIC Encrypts That TCP Couldn't

With TCP+TLS, the application data is encrypted, but the transport machinery is naked. Anyone on the path can read and tamper with TCP sequence numbers, flags, options, and connection-state signals. QUIC encrypts almost all of that. Sequence numbers, acknowledgements, connection-control frames, and the bulk of the packet beyond a tiny header are protected by AEAD encryption tied to the handshake.

The headline shift

TCP+TLS encrypts the letter but leaves the envelope, postmarks, and routing notes legible and forgeable. QUIC encrypts almost the whole envelope too — only the minimum the network needs to deliver and associate packets stays visible.

What Still Leaks

QUIC is not anonymity. It hides protocol mechanics, not the fundamental facts of a connection. An observer on the path can still see:

So QUIC closes the transport-tampering and transport-metadata gap, but the connection-level metadata that matters most for surveillance — who is talking to whom — is exactly as exposed as before. For that you still need Tor or a VPN.

Connection IDs: A Privacy Feature and a Privacy Risk

One of QUIC's headline features is connection migration. A TCP connection is identified by the four-tuple of source/destination IP and port, so when your phone moves from Wi-Fi to cellular, the IP changes and the connection dies. QUIC instead labels each connection with a Connection ID that survives an address change, so a download or call can continue uninterrupted across networks.

That same Connection ID is a tracking hazard if mishandled. A stable ID that follows you from Wi-Fi to cellular would let an on-path observer link your two network identities. QUIC's answer is that endpoints issue a pool of Connection IDs and rotate to a fresh, unlinkable one when the path changes, so the new path can't be correlated with the old by ID alone. It is a genuine privacy mechanism — but one that depends on correct implementation, and the IP-address change underneath remains visible to anyone watching both networks.

The 0-RTT Replay Trade-off

QUIC's zero-round-trip resumption lets a returning client send application data in its very first packet, before the handshake completes — a real latency win. The cost is that this early data is, by construction, replayable: an attacker who captures a 0-RTT packet can resend it, and the server may process it twice. This is the same hazard 0-RTT carries in TLS 1.3.

Aspect TCP + TLS 1.3 QUIC / HTTP/3
Transport metadata encrypted No (TCP headers in clear) Mostly yes
Handshake round trips 1–2 (0 on resume) 1 (0 on resume)
Head-of-line blocking Yes, across streams Per-stream only
Survives network change No Yes (connection migration)
SNI hidden by default No (needs ECH) No (needs ECH)

The mitigation is discipline at the application layer: servers must only accept idempotent, side-effect-free requests over 0-RTT (a GET, not a "transfer money" POST). Done right, the risk is contained; done carelessly, it is a real replay vulnerability.

QUIC's deepest change isn't speed. It's that the transport layer finally treats the network as untrusted by default — the assumption every honest threat model has held for a decade.

What It Means in Practice

If you run a service, HTTP/3 is now a mainstream, well-supported option that improves both performance and the integrity of the connection against on-path tampering — worth enabling, with attention to 0-RTT handling and to pairing it with ECH where you can. If you are a user, your browser likely already negotiates HTTP/3 with major sites silently; you are getting better tamper-resistance for free.

What QUIC does not change is the boundary between transport security and end-to-end security. It protects the pipe between your device and a server far better than TCP ever did, but the server still sees your plaintext at the other end. For content that no intermediary — including the destination service — should ever read, you still need end-to-end encryption at the application layer. QUIC makes the road safer; it does not change who is allowed to open the package when it arrives. That distinction is the one Haven is built around, and it is the one worth keeping straight no matter how good the transport gets.

Try Haven free for 15 days

Encrypted email and chat in one app. No credit card required.

Get Started →