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

Early data can be replayed

05

0-RTT saves a round trip for selected data, but brings different security guarantees.

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§ 8 ↗
RFC 8446 · § 8EXAMPLE
4 / 4
Early data can be replayedAn early request forks toward two server instances; a replay gate appears to interrupt the copy.ClientServer instance AServer instance Bearly requestcopy encrypted flightPossible duplicate effectreplay gateOnly send early data the application judges safe to replay.
04
Reject repeated early handshakes.

The application must also choose safe operations; a replay cache is not a universal guarantee.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
KEY POINT

Encryption does not make early data replay-proof.

  • Clients must send only early data that they judge safe to replay.
  • Each server instance must accept the same 0-RTT handshake at most once.
  • Servers should provide stronger replay limits where feasible; TLS alone cannot prevent every duplicate application effect.
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 ↗