English
TLS Companion Notes
A packet-by-packet guide to TLS, HTTPS, PKI, QUIC, ECH, post-quantum key exchange, and the Go crypto/tls implementation.
Open the interactive workbench
- 00TLS series · Overview and reading path
Scope: from plaintext HTTP to HTTPS, from the TCP three-way handshake to the TLS 1.3 key schedule, from certificates and PKI to ECH, QUIC, and post-quantum…
- T01T01 · From HTTP to HTTPS: one request, end to end
This note does not go into any single handshake message. It lays out the shape of the whole thing first: where plaintext HTTP leaks, which layer of the…
- T02T02 · Cryptography: every algorithm TLS uses
TLS has to provide confidentiality, integrity, and authentication at the same time, on a network that is not safe, and it has a small set of tools for that.…
- T03T03 · Certificates and PKI: where trust comes from
T02 covered signatures: sign with the private key, verify with the public key. A signature only proves "this data came from some private key". It does not…
- T04T04 · From SSL to TLS 1.3: protocol evolution and attack history
TLS 1.3 looks almost obviously simple: only five cipher suites, all of them AEAD; only ephemeral key exchange; a handshake of one round trip; everything…
- T05T05 · The TCP handshake and TLS 1.2, packet by packet
The first round trip of an HTTPS connection belongs to TCP. The next two round trips belong to TLS 1.2. This note takes apart every packet in those three…
- T06T06 · The TLS 1.3 handshake and key schedule, packet by packet
This is the core note of the series. TLS 1.3 finishes key exchange and server authentication in one round trip. Everything after the ServerHello is…
- T07T07 · Session resumption, 0-RTT, and handshake performance
T01 counted the round trips: a fresh TCP connection plus TLS 1.3 takes two round trips before the first HTTP request can leave. This note is about saving…
- T08T08 · ECH and HTTPS records: privacy in the handshake
TLS 1.3 encrypts the certificate and most of the handshake, but the ClientHello is still in the clear, and the ClientHello names the site you are about to…
- T09T09 · QUIC and HTTP/3: TLS inside the transport
In the earlier notes, TLS sits on top of TCP. The two handshakes run one after the other, and the TCP round trip in the T01 accounting cannot be removed.…
- T10T10 · Post-quantum TLS: ML-KEM hybrid key exchange and Merkle Tree Certificates
In 2026, the TLS handshake between your browser or phone and most large sites already uses a key exchange designed against quantum computers. In the real…
- T11T11 · How large operators run TLS
Behind almost every mechanism in the previous ten notes stands one company, or several. QUIC comes from Google. The push for ECH comes from Cloudflare and…
- T12T12 · HTTPS adoption and trust governance
A protocol that nobody uses does not matter. Around 2014, most pages on the web were still loaded over plaintext HTTP. By 2026, Chrome is preparing to make…
- T13T13 · Hands on: watch a handshake with openssl and curl
Almost everything in the previous twelve notes can be seen on your own computer. This note is a set of experiments. Each one gives the purpose, the command,…
- T99T99 · Glossary and standards index
Status column: PS is Proposed Standard, Info is Informational, Exp is Experimental, BCP is Best Current Practice, Hist is Historic, and draft means an…