Free tech learning for everyone, from basics to pro

ResearchAdvanced

TLS 1.3 (RFC 8446): the design choices that made it faster and safer

In short: TLS 1.3, published as RFC 8446 in 2018, simplified the protocol by removing static RSA key exchange, weak ciphers and renegotiation. It mandates forward secrecy, completes most handshakes in one round trip and encrypts certificates. In 2026 it is also the vehicle for hybrid post-quantum key exchange and Encrypted Client Hello.

What it is

Transport Layer Security (TLS) protects most internet traffic: HTTPS, email transport, VPNs, APIs and many IoT links. TLS 1.3 was published by the IETF in August 2018 as RFC 8446 after four years of work that included formal analysis by academic researchers. It was a deliberate break from TLS 1.2 rather than a small update. A revision (often called RFC 8446bis) has been in progress to fold in clarifications, but the protocol itself is unchanged.

Why it matters

TLS 1.2 and earlier accumulated many optional features, and attacks repeatedly exploited old or rarely used options: padding oracles against CBC mode, weaknesses in RC4, attacks that forced servers down to export-grade cryptography, and compression side channels. Each fix added complexity. TLS 1.3 took the opposite approach: remove anything that was not clearly needed and secure.

Key design choices

  • Forward secrecy is mandatory. Static RSA key transport is gone. Every full handshake uses ephemeral (EC)DHE, so stealing a server’s private key later does not decrypt past sessions.
  • Only AEAD ciphers. Five cipher suites remain, built on AES-GCM, ChaCha20-Poly1305 and AES-CCM. CBC, RC4, 3DES and MD5/SHA-1 based constructions were removed.
  • One round-trip handshake. The client sends its key share in the first message, guessing which group the server will accept. If the guess is wrong, the server sends a HelloRetryRequest.
  • More of the handshake is encrypted. Everything after the ServerHello, including the server certificate, is encrypted. Only the ClientHello and ServerHello remain visible.
  • Cleaner key derivation using HKDF, with separate keys for handshake and application data.
  • Downgrade protection. Servers embed a special value in their random field when negotiating an older version, so a TLS 1.3 client can detect a forced downgrade.
  • Removed features: renegotiation, compression, custom DH groups and the ChangeCipherSpec message (kept only as a compatibility dummy for middleboxes).
TLS 1.3 full handshake (simplified)ClientHellokey share,ciphersServerHelloits key shareEncryptedext. + certalreadyencryptedFinishedboth sidesconfirmApp dataafter 1 roundtrip
Because the client sends a key share immediately, encryption starts after a single round trip.

0-RTT resumption lets a returning client send data in its very first flight using a pre-shared key from an earlier session. This saves time but the early data can be replayed by an attacker, so it must only be used for requests that are safe to repeat, such as simple GETs without side effects.

What changed recently

  • Post-quantum hybrid key exchange. The key share mechanism made it straightforward to add new groups. The hybrid group X25519MLKEM768 combines classical X25519 with ML-KEM from FIPS 203. Major browsers have negotiated it by default since late 2024 and large CDNs support it, so much web traffic is now protected against future quantum decryption.
  • Encrypted Client Hello (ECH), published as RFC 9849 in March 2026, encrypts the inner ClientHello under a key the server publishes in DNS, hiding the server name (SNI) from network observers.
  • Old versions retired. RFC 8996 (2021) formally deprecated TLS 1.0 and 1.1, and many compliance regimes now expect TLS 1.2 as a minimum with 1.3 preferred.

How practitioners apply it

  1. Enable TLS 1.3 everywhere on web servers, load balancers and APIs, keeping TLS 1.2 with only AEAD forward-secret suites for older clients.
  2. Use maintained libraries (OpenSSL 3.x, BoringSSL, rustls, Go’s crypto/tls, Schannel) and keep them patched.
  3. Handle 0-RTT carefully: disable it unless the application is designed for replay safety.
  4. Review inspection devices. TLS 1.3 encrypts certificates, so passive inspection that relied on reading them stops working. Plan explicit proxies or endpoint-based visibility instead (see firewalls and IDS/IPS).
  5. Test larger handshakes through your network before enabling post-quantum groups; some older middleboxes mishandle ClientHello messages split over several packets.

It also helps to know what TLS 1.3 does not change. Certificate validation still depends on the public key infrastructure: the client checks the chain to a trusted root, the hostname and revocation information. A misissued certificate or a compromised private key is just as dangerous as before. Certificate Transparency logs, short certificate lifetimes and automated renewal (for example with the ACME protocol) are the complementary controls that keep the authentication side healthy, and the industry is steadily moving towards much shorter maximum certificate lifetimes, which makes automation essential.

Try this: Run openssl s_client -connect example.com:443 -tls1_3 and read the negotiated protocol, cipher and group in the output. Compare servers that do and do not offer the hybrid group.

Limitations and open questions

  • Visibility versus privacy. Enterprises lose passive inspection; ECH reduces it further. This tension is not resolved.
  • Certificates are still classical. Post-quantum authentication requires new certificate types and larger chains, still being standardised.
  • Implementation bugs remain the main real-world risk, as with any protocol.
  • Middlebox ossification forced compromises in the design, such as the dummy ChangeCipherSpec, and may hinder future changes.

Key takeaways

  • TLS 1.3 (RFC 8446) mandates forward secrecy and AEAD ciphers, and removes renegotiation and compression.
  • Handshakes complete in one round trip; server certificates are encrypted.
  • 0-RTT data can be replayed, so use it only for safe, repeatable requests.
  • Hybrid X25519MLKEM768 key exchange and Encrypted Client Hello (RFC 9849) are now arriving through TLS 1.3.

Sources and further reading

About the author

Mohamed Fayas

Founder of FM TecHub. CCNA certified, with a BTEC HND in Network Engineering, and BEng (Hons) in Computer Networking and Cloud Security. He writes practical, plain-English guides on networking, security and cloud.

More about the author

© 2026 FM TecHub. Original content written for FM TecHub. Share the link freely; please don't copy the text elsewhere without permission.

Stay up to date by email

New notes, tools and security news from FM TecHub, explained simply. Free.

We only use your email to send these updates. See our privacy policy.