awesome-everything RU
↑ Back to the climb

Networking & Protocols

TLS 1.3: build and break a hardened endpoint

Crux Hands-on project — stand up a hardened TLS 1.3 endpoint, capture and dissect every handshake mode, prove a 0-RTT replay is contained, and surface TLS health metrics.
Your altitude — climbing toward senior
ZeroJuniorMiddleSenior
You are at senior altitude — in orbit
◷ 240 min

Reading about the handshake is not the same as watching one cross the wire and proving it is safe. Stand up a real TLS 1.3 endpoint, capture every handshake mode, deliberately attempt a 0-RTT replay, and show your defenses hold — with packet-level and log-level evidence at each step.

Goal

Turn the unit’s mental model into an operational skill: serve TLS 1.3 with a correct chain and rotating tickets, observe cold/resumed/0-RTT handshakes in a capture, demonstrate that a non-idempotent 0-RTT replay is rejected, and expose the metrics you would alert on in production.

Project
0 of 7
Objective

Stand up a hardened TLS 1.3 endpoint (Nginx, Caddy, or a Go/Node server), capture and dissect cold, resumed, and 0-RTT handshakes, prove that a replayed 0-RTT mutation is contained, and surface the TLS health metrics — proving each claim with a capture, a log line, or a metric, not assertion.

Requirements
Acceptance criteria
  • A decrypted handshake capture (or annotated screenshots) for all three modes — cold 1-RTT, warm PSK resumption, and 0-RTT — with the distinguishing message in each clearly called out.
  • Evidence that an idempotent 0-RTT GET is accepted while a mutating 0-RTT POST returns 425 Too Early, and that a replayed 0-RTT request is rejected by the anti-replay layer — shown by logs or captures, not described.
  • A before/after of an STEK rotation showing resumption ratio holding through the rotation because the old key was retained for decryption.
  • A short write-up: which handshake mode each request used and why, where forward secrecy comes from, and which of the four metrics you would page on and at what threshold.
Senior stretch
  • Add Encrypted ClientHello (ECH) via a front-end that publishes an ECH key in an HTTPS/SVCB DNS record, and show in a capture that the inner SNI is no longer visible to an on-path observer.
  • Enable hybrid post-quantum key exchange (X25519MLKEM768) and capture the larger ClientHello; show it forces TCP segmentation and confirm an older server falls back via HelloRetryRequest.
  • Reproduce a broken-chain incident: configure the server to send only the leaf, capture the openssl verify error 21, then fix it by adding the intermediate and re-verify return code 0.
  • Write a one-page TLS on-call runbook: triage from the four metrics, the openssl one-liners to confirm chain and resumption, the STEK rotation procedure, and the 0-RTT route-policy checklist.
Recap

This is the loop you will run on every real TLS deployment: serve 1.3 with a complete chain, watch cold, resumed, and 0-RTT handshakes cross the wire and name what makes each one cheaper, prove your 0-RTT replay defenses actually reject a replay, rotate STEKs without breaking resumption, and watch the four metrics that signal trouble first. Doing it once on your own endpoint turns the handshake from a diagram into something you can capture, break, and defend.

Continue the climb ↑HTTP: the request-response language of the web
shortcuts expand
search
K
prev piece
k
next piece
j
cycle tier
t
this menu
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.