TLS HANDSHAKE
v1.0Stappen
De TLS-handshake verloopt in 8 fasen. Klik "Volgende stap" om door te gaan.
Client Hello
Browser begroet de server en stuurt welke beveiligingsmethodes hij kent. ClientHello met supported cipher suites, TLS-versie, client random, SNI.
Server Hello
Server kiest een methode en groet terug. ServerHello met gekozen cipher suite, server random, session ID.
Server stuurt certificaat
Server laat zijn identiteitsbewijs zien. X.509 certificate chain (leaf + intermediates).
Client verifieert certificaat
Browser controleert of het bewijs te vertrouwen is. Wie heeft het ondertekend? Chain validation tot een root CA in de trust store + hostname check + expiry check.
Key exchange
Browser en server bedenken samen een geheime sleutel zonder die direct te versturen. ECDHE key exchange: public keys uitwisselen, shared secret afleiden.
Change Cipher Spec
Vanaf nu is alles versleuteld. ChangeCipherSpec: switch naar symmetric encryption met session key.
Finished
Beide kanten bevestigen dat de handshake gelukt is. Finished: versleutelde hash van alle handshake-berichten ter verificatie.
Application Data
De website-data wordt nu versleuteld verstuurd. HTTPS-payload (GET / Response) over de TLS record layer.
Visualisatie
Browser (links) ↔ Server (rechts). Bij stap 8 wordt alles versleuteld.
Inhoud van dit pakket
// klik op "Volgende stap" om te beginnen
Besturing
Log ACTIVE
// Wat is TLS?
TLS is de techniek die ervoor zorgt dat data tussen jouw browser en een website niet door anderen kan worden meegelezen of veranderd. Het kleine hangslot in je adresbalk = TLS. TLS (Transport Layer Security) levert vertrouwelijkheid (encryptie), integriteit (MAC/AEAD) en authenticiteit (X.509 certs) tussen client en server. Opvolger van SSL. Huidige versies: TLS 1.2 en 1.3.
Voordat er één byte applicatie-data versleuteld wordt verstuurd, doen browser en server eerst een handshake: ze spreken algoritmes af, controleren elkaars identiteit en leiden samen een geheime sleutel af.
// Symmetric vs asymmetric: waarom beide?
Asymmetric (publieke/private sleutel) is veilig maar traag. Het wordt alleen tijdens de handshake gebruikt, vooral om de identiteit te checken en samen een geheim te bedenken.
Symmetric (één gedeelde sleutel) is snel. Zodra browser en server samen die session key hebben, wordt alle data versleuteld met symmetric (bv. AES-GCM, ChaCha20-Poly1305).
// Certificaat trust chain
Een certificaat zegt: "Ik ben simulateit.nl". Maar wie zegt dat dat klopt? De handtekening
van een Certificate Authority (CA). Browsers vertrouwen een vaste lijst CAs
(de trust store).
De keten: leaf cert → intermediate CA → root CA.
Als één schakel niet klopt (verlopen, self-signed, verkeerde hostname) krijgt de gebruiker
een waarschuwing. Precies wat je hier kan testen met de toggles.