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

The encrypted handshake

01

Two endpoints negotiate parameters, derive shared secrets, and authenticate the exchange.

This guide explains the 2018 publication. Superseded by RFC 9846.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

DIAGRAM§ 2 ↗
RFC 8446 · § 2EXAMPLE
4 / 4
The encrypted handshakeA time-ordered two-endpoint handshake; a shaded protected region appears after ServerHello.ClientServerClientHello + key shareServerHello + key shareEncrypted server flightClient FinishedAfter ServerHello: protected handshake messages
04
Complete the handshake.

The client checks the server authentication and returns its Finished message.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
WHAT CHANGED
RFC 5246 (TLS 1.2)RFC 8446 § 1.2

TLS 1.3 encrypts handshake messages after ServerHello, removes static RSA key exchange, and uses only AEAD record protection.

Read the updated RFC section ↗
KEY POINT

A ServerHello changes which handshake messages an observer can read.

  • ClientHello offers versions, algorithms, and usually a key share.
  • After ServerHello, TLS 1.3 handshake messages are encrypted.
  • Finished authenticates the transcript; the server certificate alone is not the whole handshake.
DETAILS

The examples simplify the wire representation. Follow the linked specification and application profile for implementation.

Read the RFC section ↗

Diagrams simplify the RFC. Read the linked sections for complete requirements.

Privacy
All chapters in this RFC
  1. The encrypted handshake
  2. Separate keys for separate jobs
  3. Inside an encrypted record
  4. Resume with a ticket
  5. Early data can be replayed
  6. Authentication and failure
RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗