How systems talk
Stage 1 of a hands-on security series: DNS, TCP and HTTP, TLS, cookies and sessions, with a real lab that runs entirely on your own machine.
Eight cases, one per chapter
Each case is a small program with one weakness, a check that proves your fix, and hints. Everything runs on 127.0.0.1 against code you own.
- 01 · DNS25 min
The answer to a question nobody asked
uv run python -m wire run 1
- 02 · TCP and HTTP framing30 min
One message, two meanings
uv run python -m wire run 2
- 03 · TLS28 min
The certificate nobody checked
uv run python -m wire run 3
- 04 · Cookies25 min
The session cookie with no attributes
uv run python -m wire run 4
- 05 · Sessions22 min
The logout that did not log out
uv run python -m wire run 5
- 06 · Sessions26 min
The session id chosen before sign-in
uv run python -m wire run 6
- 07 · Headers28 min
The response that trusted the browser's defaults
uv run python -m wire run 7
- 08 · Logs30 min
The access log that kept every secret
uv run python -m wire run 8
What a connection costs
uv run python -m wire try handshake times each step on 127.0.0.1. These are the numbers from the machine the lab was written on.
You need uv and git
uv installs Python for you, and the lab uses only Python's standard library. Nothing leaves your machine.
git clone https://github.com/jars-demo/how-systems-talk-demo.git cd how-systems-talk-demo/lab uv sync uv run python -m wire run 1
The series
- Stage 1
How systems talk
You are here
- Stage 2
Identity
Coming next
- Stage 3
Application security
Coming next
- Stage 4
Cloud and containers
Coming next
- Stage 5
Detection and response
Coming next