Visual RFC.
ALL RFCs / RFC 8996
Read the RFC ↗
RFC 8996 / TRANSPORT SECURITY

Reject TLS 1.0 negotiation

02

Supporting a modern protocol must not leave TLS 1.0 as an available fallback.

Related RFCs and changes

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

DIAGRAM§ 4 ↗
RFC 8996 · § 4EXAMPLE
3 / 3
Reject TLS 1.0 negotiationSupporting a modern protocol must not leave TLS 1.0 as an available fallback. Current state: Keep protected resources behind the policy..Reject TLS 1.0 negotiationClientServerTLS 1.0 offerobsolete versionprotocol_versionNo legacy session; upgrade required
03
Keep protected resources behind the policy.

A client must upgrade before it can connect.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
WHAT CHANGED
RFC 7525 § 3.1.1: SHOULD NOTRFC 8996 §§ 4, 6: MUST NOT

The earlier recommendation against TLS 1.0 becomes an explicit prohibition on its negotiation.

Read the updated RFC section ↗
KEY POINT

TLS 1.0 MUST NOT be used.

  • Implementations MUST NOT negotiate TLS 1.0.
  • A peer receiving a Hello offering TLS 1.0 as the negotiated version must send protocol_version and close.
  • The legacy record-layer version of a ClientHello is a separate compatibility field; it is not permission to negotiate TLS 1.0.
DETAILS

Do not reject a modern handshake merely because its ClientHello record uses a legacy {03,XX} value. The RFC explicitly preserves record-layer compatibility.

Read the RFC section ↗

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

Privacy
All chapters in this RFC
  1. Why retire a working protocol?
  2. Reject TLS 1.0 negotiation
  3. Reject TLS 1.1 negotiation
  4. DTLS is included too
  5. What changes for OAuth?
  6. Migration, fallback, and operations

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

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

RFC status and corrections ↗