Visual RFC.
ALL RFCs / RFC 5246
Read the RFC ↗
RFC 5246 / MECHANISMS

A TLS 1.2 handshake

01

Hello messages negotiate parameters before keys and Finished messages establish protection.

This guide explains the 2008 publication. Superseded by RFC 8446, RFC 9846.

Related RFCs and changes

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

DIAGRAM§ 7.3 ↗
RFC 5246 · § 7.3EXAMPLE
3 / 3
A TLS 1.2 handshakeHello messages negotiate parameters before keys and Finished messages establish protection. Current state: CCS and Finished.A TLS 1.2 handshakeClientServerHello + certificateKey exchangeCCS + FinishedHistorical full handshake; message details depend on the suite.
03
CCS and Finished

Each side activates its negotiated write state and verifies its peer’s Finished.

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

TLS 1.2 adds AEAD cipher support and replaces the older combined MD5/SHA-1 PRF with a cipher-suite-specified PRF; SHA-256 is the default.

Read the updated RFC section ↗
KEY POINT

This is a historical TLS 1.2 full-handshake overview, not a current cipher-suite recommendation.

  • This is a historical TLS 1.2 full-handshake overview, not a current cipher-suite recommendation.
  • The selected key-exchange method determines which handshake messages are needed.
  • Finished authenticates the prior handshake after ChangeCipherSpec.
DETAILS

The illustration is schematic. Example values are illustrative; profiles and later security guidance can add requirements.

Read the RFC section ↗

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

Privacy
All chapters in this RFC
  1. A TLS 1.2 handshake
  2. Pending and current keys
  3. Records protect fragments
  4. Finished checks the transcript
  5. TLS 1.3 changes the design
RFC 9700 / CHAPTERS

Chapters

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

RFC status and corrections ↗