TLSv1.3 from scratch
summary
LibreSSL implements TLS 1.3 by writing a new stack from scratch: roughly 7,000 lines of C produced by three people over several six‑week sprints, with the client implemented first. A DAG‑based handshake state machine prevents out‑of‑order attacks, the key schedule uses HKDF (a subtle misread required hashing a zero length input), and the record layer enforces one‑record per call with careful memory zeroing. Interop testing uses tlsfuzzer and oss‑fuzz, and workarounds handle odd peers like Fizz sending duplicate CCS and legacy libssl API behaviors such as auto_retry and partial writes.
AI-written summary · about
chapters (15)
- 0:00Intro
- 6:15TLSv13 vs TLS12
- 9:53Can we have it yet
- 17:20TLS stack
- 18:44Handstake state machine
- 20:02Handshakesvg
- 22:31Key derivation
- 24:44Record layer
- 26:31Security
- 27:13Handshaking
- 27:34Legacy Stack
- 28:33SSL
- 32:29Interoperability
- 37:56Summary
- 39:32Questions
related talks
22mTLS 1.3: what developers should know about the API
53mHansel and Gretel do TLS
14mJust the Cryptography You Need to Know for TLS
19mWhat's happening in TLS (transport layer security)?
47mQuantum-Safe TLS in Practice With Open Quantum Safe & OpenSSL 3
52mWhat's New in TLS 1.3
35mrustls: modern, faster, safer TLS
32mPQC in OpenSSL Library
