Part I: Cryptographic Foundations
Course overview: How to think like an attacker.
Reading:
Reflections on Trusting trust
Symmetric-Key Cryptography
Key exchange, Public-key cryptography
Crypto pitfalls: how and why crypto fails in practice
Supplemental reading:
Security analysis of voting machines:
http://avirubin.com/vote.pdf
Crypto implementation pitfalls:
http://cseweb.ucsd.edu/~mihir/cse107/yoshi.pdf
Crypto misuse in Android apps:
http://www.cs.ucsb.edu/~chris/research/doc/ccs13_cryptolint.pdf
Part II: Systems Security
Buffer Overflow
Reading:
Smashing the stack for fun and profit
Format String Vulnerability
Reading:
Return-Oriented Programming:Systems, Languages, and Applications
Access Control
Information flow
Isolation
Side channel attack
Trusted computing, code attestation
Internet Security: How the internet works and some basic vulnerabilities
Part III: Web Security
Integer Overflow & SQL Injection
Cross-domain security issues
Cross-site scripting(XSS)
Cross-site Request Forgery(XSRF)
HTTPS
Part IV: Privacy, Case Studies, Misc
Web Accessibility