Envelopes: one message each; a padlock means it is encryptedKey bowls: public tokens travel, the golden key is made on both sides and never travelsPink card: the server's certificate, checked on the browser's trust shelf of root sealsEye: the eavesdropper, who sees only the outside of locked envelopesAn HTTPS connection to www.example.com (203.0.113.10). Three plain envelopes open TCP port 443 in one round trip. In the hellos each side sends only a public key token; its own private token stays in its bowl. Each bowl mixes its own token with the other side's and both make the same golden key, which never travels (X25519 ECDHE, then HKDF). From then on every envelope carries a padlock (AES-128-GCM). The server's certificate card rides inside a locked envelope; at the browser it is checked against a root seal from the browser's own trust shelf (chain, name and dates), then the signature and Finished are checked. The eavesdropper only ever sees the outside: addresses, sizes and timing, plus the plaintext hellos with the SNI name unless ECH is used. Times are illustrative: a 40 ms round trip and about 1 ms of local crypto work. 192.0.2.7 and 203.0.113.10 are RFC 5737 documentation addresses; the CA names are illustrative.

TCP handshake

  1. The browser already has 203.0.113.10 from DNS. It opens a TCP connection by sending a SYN segment to port 443.

TLS 1.3 handshake · 1 round trip

Encrypted HTTP/2

The message, field by field

;; step 1/12 · tcp-syn · tcp
;; browser → server
;; t = 0–20 ms (illustrative)
TCP 192.0.2.7:51514 → 203.0.113.10:443
flags  SYN
seq    x  (random initial sequence number)

Messages sent in the same flight are shown one after another; their times overlap on the clock. On a later visit the browser can resume with a pre-shared key from a NewSessionTicket and even send 0-RTT early data with its first flight; early data can be replayed, so servers accept it only for safe requests.