Summit SecurityNetworking

What Actually Happens in a TLS Handshake

Every padlock icon hides a rapid negotiation: prove who you are, agree on maths, build a shared secret in plain sight of eavesdroppers.

You learned on the encryption stop of this trail that HTTPS uses hybrid encryption — slow public-key maths to agree a key, fast symmetric encryption for the conversation. This post opens the hood on the "agree a key" part: the TLS handshake, a negotiation that happens in milliseconds every time you open a website, solving two genuinely hard problems in plain sight of any eavesdropper.

The two problems

Before your browser sends anything sensitive it must solve: (1) Is this server really who it claims to be? — encryption to an impostor is worse than useless — and (2) How do we both end up holding the same secret key when everything we say to each other can be overheard?

Problem one: identity, solved by certificates

The server presents a certificate: a file stating "this public key belongs to rootandroute.online," digitally signed by a certificate authority (CA) — one of a small set of organisations whose public keys ship pre-installed in your browser and OS. Because the CA's signature can be verified with those built-in keys, and the CA only signed after verifying domain ownership, your browser gets a chain of trust: I trust the CA → the CA vouches for this key → this key speaks for this domain. That chain — often two or three links deep — is what breaks when you see certificate warnings: expired, wrong name, or signed by nobody your machine trusts. The warning is the chain snapping.

Problem two: the shared secret, built in public

Here's the genuinely magical part. The two sides use a key-exchange algorithm (Diffie–Hellman, in modern elliptic-curve form) with a property that sounds impossible: each side generates a private value, they exchange derived public values openly, and each combines its own private value with the other's public one — arriving at the same shared secret, which an eavesdropper who saw every message exchanged still cannot compute. The classic intuition is paint-mixing: we each keep a secret colour, publicly swap mixtures, and privately stir our secret into the other's mixture — identical final colours, yet un-unmixable by observers. From that shared secret both sides derive the symmetric keys, and the fast encrypted conversation begins.

Trail note

Notice what this design buys: the session keys were never transmitted — they were independently computed at each end. Modern TLS uses fresh (ephemeral) exchange values per session, giving forward secrecy: even if the server's long-term private key is stolen next year, recordings of today's traffic stay undecryptable, because today's session secret was never derivable from that key alone.

The whole dance in five lines

Why this earns a Summit badge on a beginner's site: TLS termination, certificate expiry, and cipher configuration are among the most common real-world operational issues in infrastructure work — and every one of them becomes debuggable once you know which step of this dance failed.

Next waypoint — Summit

Kerberos: Ticket-Based Authentication Without the Migraine →