NetFlow Lab/Protocol Labs/HTTPS / TLS
Simulated
Mission

Send a password to example.com and find out exactly what the café wi-fi can read.

tls 1.3 handshake, then http inside itport 443 · negotiating
BrowserPC-1 · 192.168.1.10Web server203.0.113.20 : 443On-path observerwi-fi · isp · proxytcp connectionPort 443. Before a single byte of HTTP, two strangers have to agree on a secret.
the tap · what the person on the wire captures—
the tap is running — nothing has crossed the wire yet
tls_session · what got agreed, and what leaked anyway
tls version
proposed 1.3

chosen by the server

cipher suite
—

encrypts and authenticates together

key exchange
—

ephemeral — forward secrecy

server_name (sni)
example.com

sent in the clear, before any keys

certificate
—

the identity claim

issuer
—

already trusted by this machine

chain check
unverified

name, dates, signature

session keys
—

both sides computed the same secret

session_state
Send the password over
idle · no keys yet
1TCP connection open to port 443
2ClientHello — versions, ciphers, key share
3ServerHello + certificate (already encrypted)
4Browser verifies the certificate chain
5Both sides derive the same keys — never sent
6The same GET — now ciphertext
7200 OK — ciphertext back
Think first · step 1 of 7

HTTPS still needs a transport underneath it. What gets built first, before any encryption?

what just happened

One password, one request. Watch the four moves that have to happen before a single byte of it can leave the machine — and note which one is about identity rather than secrecy.

socket 51884 → 203.0.113.20:443 ESTABLISHED awaiting ClientHello
the common mistake

The padlock does not mean the site is safe, and it does not hide your password from the site. It means one thing: the bytes are unreadable to everyone between you and whoever holds that certificate. The server decrypts and reads every word.

TLS is not encrypted HTTP. It is a separate layer underneath: HTTP is written exactly as before, then handed to TLS, which seals it. That is why a GET looks identical on both wires — only its wrapping changed.

Encryption is the easy half. The certificate is the hard half: without it you would have a perfectly private conversation with an impostor.

Underneath sits a plain TCP handshake. Plaintext DNS can expose the hostname before TLS starts, and plaintext SNI exposes it in this lab; encrypted DNS and ECH can reduce those leaks. Same messages as the HTTP lab, sealed.