Tech Analysis · Nov 4, 2026 · 6 min read

Post-Quantum TLS: Migration Patterns for Web Stacks

Tech Analysis

NIST finalized ML-KEM and ML-DSA in 2024. This analysis breaks down hybrid post-quantum TLS implementations, current browser and server support, concrete configuration patterns, and a phased migration

Post-Quantum TLS: Migration Patterns for Web Stacks

The Quantum Threat Timeline

Shor's algorithm running on a sufficiently powerful quantum computer can factor large integers and compute discrete logarithms in polynomial time. This directly breaks RSA and elliptic-curve cryptography that underpins virtually all TLS handshakes today. While large-scale cryptographically relevant quantum computers do not yet exist in public, government and industry roadmaps point to real risk within the next decade.

NIST's Post-Quantum Cryptography standardization project concluded its main selections in 2024. Three algorithms received FIPS publication: ML-KEM (FIPS 203, formerly Kyber), ML-DSA (FIPS 204, formerly Dilithium), and SLH-DSA (FIPS 205, formerly SPHINCS+). These algorithms are designed to run on classical computers but remain secure even against large quantum machines.

Why Hybrid Schemes Matter

Direct replacement of classical algorithms with pure PQC introduces new failure modes and performance characteristics that are not yet fully battle-tested. Hybrid constructions combine a classical algorithm (X25519 or P-256) with a post-quantum one (ML-KEM-768) inside the same TLS handshake. This provides "and" security: the connection stays secure if either algorithm remains unbroken.

Hybrid designs also maintain compatibility with legacy clients. Cloudflare, Google, and AWS have published extensive experimentation data showing that hybrid X25519MLKEM768 handshakes add roughly 2-4 KB to the ClientHello and ServerHello messages and increase handshake latency by 10-30 % on typical mobile networks.

Current TLS Extension Status

The IETF has standardized the key_share extension format for hybrid schemes in RFC 9180 and draft-ietf-tls-hybrid-design. The most widely tested combination is X25519Kyber768Draft00 (now transitioning to the final ML-KEM identifier). BoringSSL, Cloudflare's fork of OpenSSL, and the Rustls library already contain production-grade support for these hybrids.

Server-Side Implementation Patterns

Let's examine concrete configurations that developers can deploy today.

Nginx with OpenSSL 3.5+

# nginx.conf snippet
ssl_protocols TLSv1.3;
ssl_ecdh_curve X25519MLKEM768:X25519:prime256v1;

# When using liboqs-enabled OpenSSL
openssl_conf = openssl_def

[openssl_def]
providers = provider_sect

[provider_sect]
default = default_sect
oqs = oqsprovider_sect

[oqsprovider_sect]
activate = 1

The oqsprovider module from OpenQuantumSafe supplies the ML-KEM implementation. After building OpenSSL with the provider, the curve name X25519MLKEM768 becomes available for hybrid negotiation. Testing with openssl s_client -connect yoursite.com:443 -curves X25519MLKEM768 confirms the handshake selects the hybrid group.

Node.js / Deno with Rustls

The Rustls library paired with the rustls-post-quantum crate offers the cleanest API for JavaScript runtimes via napi or edge runtime bindings. Example configuration:

import { ClientConfig } from "https://deno.land/x/rustls/mod.ts";
import { hybrid } from "https://deno.land/x/rustls_post_quantum/mod.ts";

const config = new ClientConfig({
  rootCerts: await loadRootCerts(),
  cipherSuites: hybrid.x25519MLKEM768(),
});

This approach is particularly attractive for edge-deployed services because Rustls has no dependency on OpenSSL and maintains a small binary size even with PQC code included.

Browser and Client Support

Chrome 131+ contains compile-time flags for ML-KEM and can be enabled via --enable-features=PostQuantumKyber. Firefox maintains an experimental build with the same support behind a preference. Safari has not yet published a timeline.

For JavaScript applications that need to signal PQC support at the HTTP layer before the TLS handshake, the Sec-Fetch-Mode and custom Accept-CH headers can be combined with a feature-detection service that returns different resource bundles based on detected client capability. Most production teams currently rely on server-side hybrid support rather than client-side feature detection.

Performance and Bandwidth Analysis

Public data from Cloudflare's 2024 PQC rollout shows:

  • ClientHello size increases by ~1,200 bytes when advertising ML-KEM-768.
  • Full handshake latency increases by 15-40 ms on 4G networks, negligible on fiber.
  • CPU cost of ML-KEM encapsulation is roughly 3× a plain X25519 operation on server-grade CPUs but remains sub-millisecond.

These numbers remain acceptable for most SaaS workloads. API-heavy mobile applications may choose to negotiate classical-only TLS on very low-end devices and hybrid on everything else using TLS fingerprinting or User-Agent heuristics.

Signature Algorithms: ML-DSA in Certificates

While key exchange gets most attention, certificate signatures must also migrate. Let's Encrypt and other CAs have begun issuing experimental ML-DSA-65 certificates in 2025 test programs. Hybrid certificates that contain both an ECDSA and an ML-DSA signature in the same chain are being standardized in the CA/Browser Forum.

Current Nginx configuration for hybrid certificates looks like this:

ssl_certificate hybrid-fullchain.pem;  # contains both classical and PQ certs
ssl_certificate_key hybrid-privkey.pem;

The TLS library automatically selects the strongest mutually supported signature algorithm during the handshake.

Phased Migration Roadmap

  1. Inventory (1-2 months): Scan all TLS terminators, load balancers, API gateways, and embedded devices. Identify every place where classical algorithms are hardcoded.
  2. Hybrid Testing (2-3 months): Deploy hybrid support in staging behind a feature flag. Use tools such as tlsfuzzer and openssl with custom groups to verify interoperability with major browsers.
  3. Monitoring (ongoing): Add Prometheus metrics for handshake group selection (tls_handshake_group{group="X25519MLKEM768"}) and handshake latency histograms. Set alerts for any unexpected fallback to classical-only.
  4. Signature Migration (6-12 months after key exchange): Begin requesting hybrid or pure ML-DSA certificates once root programs distribute trusted ML-DSA roots.
  5. Pure PQC (2028+): Once confidence in PQC algorithms is extremely high and client support exceeds 95 %, deprecate classical components.

Common Pitfalls and Operational Lessons

Teams that rushed pure PQ deployments in 2023-2024 frequently encountered middlebox interference because the larger handshake messages exceeded legacy DPI buffer sizes. Hybrid deployments have seen far fewer such incidents.

Another lesson: key generation performance for ML-KEM is slower than classical algorithms. High-throughput services that rotate session tickets frequently should pre-generate a pool of ML-KEM keypairs during off-peak hours.

Library versioning discipline becomes critical. The OQS provider must be kept in lockstep with OpenSSL updates. Automated dependency scanning tools should include the oqsprovider and liboqs versions in their SBOM.

Regulatory and Compliance Angle

U.S. Executive Order 14028 and subsequent OMB memoranda require federal agencies to inventory quantum-vulnerable cryptography and begin migration planning. The EU's Cybersecurity Act and ENISA recommendations mirror this urgency. Even small startups that sell into government or financial verticals are now asked for PQC roadmaps during procurement.

Having a documented hybrid deployment, even if not yet enabled by default, satisfies most current audit questions and demonstrates foresight to customers.

Recommended Starter Stack for 2025

  • TLS terminator: Nginx + OpenSSL 3.5 + oqsprovider or Caddy 2.8+ with built-in hybrid support.
  • Application servers: Rustls-based services (Go, Rust, or Deno) for new greenfield projects.
  • Monitoring: OpenTelemetry spans tagged with tls.kex_group.
  • Testing: tls-interop-test suite maintained by the IETF TLS working group.

Conclusion

Post-quantum cryptography is no longer a research curiosity. With NIST standards finalized and multiple major CDNs already running hybrid TLS in production, the question for most engineering teams has shifted from "if" to "how fast." Starting with hybrid key exchange in non-critical environments gives teams operational experience before the migration becomes urgent. The patterns outlined above—hybrid groups, careful performance monitoring, and phased certificate migration—allow organizations of any size to begin preparation without disrupting existing customers.

The cryptographic foundation of the web is changing. Teams that treat this transition as a normal part of infrastructure hygiene rather than a one-time project will be best positioned when quantum computers cross the threshold from laboratory to production threat.

Keep reading

Related Research