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

Separate keys for separate jobs

02

HKDF derives a sequence of secrets with distinct purposes instead of one reusable connection key.

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§ 7.1 ↗
RFC 8446 · § 7.1EXAMPLE
4 / 4
Separate keys for separate jobsA branching key schedule separates directional handshake and application traffic secrets.Different secrets, different jobs1Early secret2Handshake secret3Master secretPSK / zero input(EC)DHE inputclient handshakeserver handshakeclient trafficserver trafficKeyUpdate → next traffic secret
04
Advance one sending direction.

The next traffic secret is derived from the current application traffic secret.

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

Handshake, application, and resumption secrets have different jobs.

  • The key schedule combines PSK and (EC)DHE inputs where applicable.
  • Client and server traffic secrets are distinct.
  • KeyUpdate advances an application traffic secret; old receiving keys are deleted after switching.
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 ↗