The TLS Handshake
What a capture can still see after everything is encrypted
Step 1 of 2 — understand the idea. Read this first and the packet trace will confirm what you already expect, instead of teaching you two things at once.
What you'll be able to do
- ▸Follow the handshake flight and say what each message establishes
- ▸Read a certificate chain and explain what makes it trustworthy
- ▸State precisely what remains visible to an observer once encryption starts
✗ Common misunderstanding: The certificate is what encrypts the connection.
Why that's wrong: Encryption comes from the key agreement. The certificate's job is identity: proving the server is who the name says.
Correct model: Certificate = identity. Key agreement = confidentiality. A connection with a bad certificate is still encrypted — to a party you have not identified.
The packets prove it: In the hostname-mismatch trace the handshake proceeds normally and the client rejects it afterwards, on identity grounds alone.
✗ Common misunderstanding: With HTTPS, an observer learns nothing.
Why that's wrong: Only the application payload is encrypted. Addresses, ports, packet sizes, timing and the site name in SNI are all readable, because they must be for the packet to be delivered and the handshake to work.
Correct model: HTTPS hides WHAT you said. It does not hide who you talked to, when, or how much.
The packets prove it: Read the SNI in any TLS handshake in this module — the site name is in plain text, before any key exists.
Watch these fields in the lab: tcp.payload
✓ Concept check — before you open the packets
These test the idea, not the trace. You should be able to answer them from the explanation above.
Now that you understand the concept, observe how it appears in the packet exchange.
The lab runs a real simulated capture — pause, step, click any packet, and inspect every byte.