the Chromium logo

The Chromium Projects

Building a Deployable Post-quantum Web PKI

Last Updated 2024-08-27

While no one knows exactly when cryptographically-relevant quantum computers (CRQCs) will arrive, uses of classical cryptography are slowly being migrated to post-quantum cryptography (PQC) to prepare for their arrival. In TLS, this preparation consists of three major efforts:

  1. Establishing TLS session keys in a quantum-resistant manner
  2. Migrating the Web PKI, as the primary TLS authentication mechanism, to rely on PQC
  3. Determining how server key material is used (e.g. signing, vs. KEMs)

In line with our strategy for implementing post-quantum cryptography, Chrome has already rolled out hybrid PQC key agreement in TLS to protect network traffic against harvest now, decrypt later (HNDL) attacks. When connecting to servers that support this mechanism, TLS connections are protected by session keys that are believed to be resistant to future quantum cryptanalysis.

This protects current traffic from a future CRQC, but post-quantum authentication will be needed when a CRQC arrives. Here, the core challenge is that a simple algorithm swap would produce X.509 certificate chains that are simply too big to avoid significant performance and bandwidth regressions. The following table demonstrates the significant differences between several classical and post-quantum signature sizes:

Signature Scheme Public Key Bytes Signature Bytes Post-Quantum?
P-256 64 64 N
RSA-2048 272 258 N
ML-DSA-44 1,312 2,420 Y
ML-DSA-65 1,952 3,309 Y
ML-DSA-87 2,592 4,627 Y
UOV-ls-pkc 66,576 96 Y

After exploring various PQ protocol and PKI designs, we realized that the web needs more drastic changes than a simple replacement of signature algorithms in X.509 to avoid untenable performance regressions. We also realized that this transition presents the TLS ecosystem with a unique opportunity to address some of the longstanding challenges and deficiencies with the use of PKI authentication in TLS. Since code changes will be needed on every client, server, and certification authority to support PQC, this opens up the possibility of including additional improvements that were infeasible to deploy in isolation.

In order to guide our efforts in this design space, we have compiled a list of design principles, constraints, and requirements. By sharing these principles, we hope to help the broader community understand our approaches and open up additional avenues for collaboration, experimentation, and standardization.

Design Principles

1. CAs (or CA-analogues) should be relied upon to provide cryptographic assertions that bind public key(s) to domain name(s)

2. The size of transmitted public keys and signatures should be kept as small as possible

3. Fast certificate issuance must be supported, but designs may also offer slower issuance paths that provide different tradeoffs

4. Certificate issuance should be publicly transparent

5. Old clients must be supported, but designs may favor modern/updated clients

6. PKIs should be able to change and evolve without conflicting with server availability

7. Servers must have some mechanism to interoperate with all supported clients.

8. Online trusted key material should have a limited lifetime

9. Adding new services in the critical path for certificate issuance should be avoided or mitigated

10. Clients must be able to connect to servers without connectivity to additional services

11. The set of domain names visited by a user must be considered privacy-sensitive

Our Projects

Trust Anchor Negotiation

Trust Anchor Identifiers (TAI): A TLS extension that allows TLS relying parties to communicate information about what trust anchors (i.e. root certification authorities) it trusts to facilitate certificate selection. TAI expresses these trust anchors in a TLS extension that is similar to the existing certificate_authorities TLS extension, but uses significantly fewer bytes to express this information. Additionally, this specifies a way for TLS servers to advertise their supported certification paths in DNS or in connection set up, so that TLS clients may choose a supported option, if available.

Trust Expressions (TE): A TLS extension and supporting mechanisms to allow TLS relying parties to communicate an entire set of trust anchors using named, versioned aliases that refer to widely-deployed trust stores. In order for TLS subscribers to interpret these aliases, Trust Expressions describes a new document called Trust Store Manifests, which describe the contents of a trust store over time. This information gets consumed by certification authorities and appended to certificates at issuance time, so that these aliases can be interpreted correctly.

Non-X.509 PKIs

Merkle Tree Certificates (MTC): A new type of certificate that integrates issuance transparency directly into the certificate issuance process at the cost of increased issuance time, additional complexity at the CA, and the introduction of a new type of transparency service that verifies issuance behavior and communicates fresh, short-lived trust anchor information to relying parties.