security-course

Security, Privacy, and Consumer Protection

View the Project on GitHub noise-lab/security-course

Course Overview: Why Cryptosystems Fail and Trusting Trust

Format. Break into groups of 4–5. Each group picks one of the two breakouts below (or takes both if time allows). Spend ~5 minutes skimming the prep reads, then ~10 minutes debating. A designated reporter brings the group’s position — and any dissents — back to the full class for a ~3-minute report-back.

Lecture 1 pairs Anderson’s “Why Cryptosystems Fail” (the crypto rarely breaks — the implementation and the humans do) with Thompson’s “Reflections on Trusting Trust” (you cannot trust code you did not totally create yourself). The two breakouts below take one motion from each — because both remain painfully load-bearing in 2026.


Breakout A: Should Regulators Treat Implementation Failure Like a Product Defect?

Motion. “Anderson was right: the vast majority of security failures are boring implementation and operations bugs, not cryptographic weaknesses. Regulators (FTC, CISA, state AGs) should therefore treat unpatched CVEs and misconfigured systems as strict-liability product defects, the same way we treat exploding batteries.”

Prep reads (5–10 min).

Discussion prompts.

Bring back. Your group’s one-sentence rule for when a CVE-driven breach should trigger regulator action, and one edge case where your rule breaks.


Breakout B: xz-utils and the Limits of Open-Source Trust

Motion. “The xz-utils backdoor (CVE-2024-3094) proved Thompson right in the worst possible way: no amount of code review saves you from a maintainer who spent years earning your trust. The correct response is to move critical infrastructure off individually-maintained OSS onto vendor-supported forks — even at the cost of the OSS ecosystem.”

Prep reads (5–10 min).

Discussion prompts.

Bring back. The one class of software your group would never trust to an individually-maintained OSS project, and the one where you think the OSS model still wins.


Instructor notes

Breakout A works well as the framing debate — it foregrounds the “policy is inseparable from technique” thread that runs through the whole course. Breakout B is punchier for a technical audience but assumes students have skimmed the Thompson paper. If time is short, run A: it previews the FTC/CISA/state-AG through-line that recurs in Lectures 11, 12, and 15. If your class has more systems folks than policy folks, flip and run B — the xz-utils dissection lands and produces stronger report-backs.