RFC 5246 / START HERE
TLS 1.2, before the details
TLS: Transport Layer Security, version 1.2
TLS protects a connection against eavesdropping and tampering. Version 1.2 describes the handshake, key agreement, and protected records used for application data.
The idea in one picture
Endpoints negotiate TLS 1.2
They establish connection keys
Protected application data follows
A simplified picture of the idea; the chapters explain the actual mechanisms.
Why it exists
This guide explains an earlier TLS version that differs from TLS 1.3. Understanding the negotiated version matters when reading handshake diagrams.
A familiar example
A client and server that support TLS 1.2 agree on connection parameters and keys before exchanging protected application data.
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.
- A TLS 1.2 handshakeHello messages negotiate parameters before keys and Finished messages establish protection.→
- Pending and current keysRead and write each have pending and current connection states.→
- Records protect fragmentsThe record layer frames fragments and applies the chosen protection construction.→
- Finished checks the transcriptA derived verification value binds the handshake messages to the negotiated secret.→
- TLS 1.3 changes the designTLS 1.3 is a redesign, not merely a new suite name in the old handshake.→
This introduction explains RFC 5246 (2008). This publication has a successor; see the related guides and the RFC status. Read the original RFC ↗