Visual RFC.
ALL RFCs / RFC 8446
Read the RFC ↗

RFC 8446 / START HERE

TLS 1.3, before the details

TLS: Transport Layer Security, version 1.3

TLS protects a connection against eavesdropping and tampering. Version 1.3 establishes shared encryption keys and normally authenticates the server with a certificate.

The idea in one picture

  1. Endpoints establish trust and keys

  2. TLS protects the conversation

  3. Encrypted application data travels

A simplified picture of the idea; the chapters explain the actual mechanisms.

Why it exists

Data travelling over a network passes through systems you do not control. TLS protects the conversation between its endpoints.

A familiar example

An HTTPS connection uses TLS so people on the Wi-Fi cannot simply read the page content in transit.

Helpful background

You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.

What you’ll learn next

Begin with chapter one, or choose a topic.

  1. The encrypted handshakeTwo endpoints negotiate parameters, derive shared secrets, and authenticate the exchange.
  2. Separate keys for separate jobsHKDF derives a sequence of secrets with distinct purposes instead of one reusable connection key.
  3. Inside an encrypted recordAn authenticated-encryption operation protects content, its real type, and optional padding.
  4. Resume with a ticketA later connection can use a previously established PSK associated with a session ticket.
  5. Early data can be replayed0-RTT saves a round trip for selected data, but brings different security guarantees.
  6. Authentication and failureCertificate checks, proof of key possession, and transcript authentication answer different questions.
Start with chapter one →
EXPLORE THIS PROTOCOL

TLS versions and editions

RFC 9846 revises TLS 1.3; it is not TLS 1.4. Publication status and negotiated protocol version are different.

This introduction explains RFC 8446 (2018). This publication has a successor; see the related guides and the RFC status. Read the original RFC ↗