Date | Theme | Lecture topic | Readings | Slides | Work out | Work due |
---|---|---|---|---|---|---|
01/13/25 | Background | Course introduction | Slides | |||
01/15/25 | Background: security principles, threat model | Slides | ||||
01/17/25 | Background: crypto basics, how to read a paper | Required: How to Read a Paper | Slides | |||
01/20/25 | No class | |||||
01/22/25 | Isolation | OS and VM isolation |
Required: Firecracker: Lightweight Virtualization for Serverless Applications Optional: Blending Containers and Virtual Machines: A Study of Firecracker and gVisor |
Slides | ||
01/24/25 | Software Fault Isolation |
Required: Provably-Safe Multilingual Software Sandboxing using WebAssembly |
Slides | |||
01/27/25 | Trusted execution environments (TEEs) |
Required: VC3: Trustworthy Data Analytics in the Cloud using SGX Optional: Using innovative instructions to create trustworthy software solutions, Intel SGX Explained |
Slides | |||
01/29/25 | Side-channel attacks and defenses | Overview of side-channel attacks |
Optional:
Controlled-Channel Attacks: Deterministic Side Channels for Untrusted Operating Systems |
Slides | Lab 1 | |
01/31/25 | Speculative execution |
Required: A Systematic Evaluation of Transient Execution Attacks and Defenses |
Slides | |||
02/03/25 | Oblivious RAM and applications |
Required: GhostRider: A Hardware-Software System for Memory Trace Oblivious Computation Optional: Path ORAM: An Extremely Smiple Oblivious RAM Protocol |
Slides | Project pre-proposal meeting | ||
02/05/25 | Network security | Transport Layer Security (TLS) |
Optional: TLS 1.3 blogpost |
Slides | Project pre-proposal meeting | |
02/07/25 | Certificate Transparency | Slides | Project pre-proposal meeting | |||
02/10/25 | Anonymous communication: The onion router (Tor) |
Required: Tor: The Second-Generation Onion Router |
Slides | |||
02/12/25 | Anonymous communication: Vuvuzela |
Required: Vuvuzela: Scalable Private Messaging Resistant to Traffic Analysis Optional: Riposte: An Anonymous Messaging System Handling Millions of Users |
Slides | |||
02/14/25 | No class -- self review for exam | |||||
02/17/25 | Exam 1 | |||||
02/19/25 | Secure computation systems | Introduction to secure computation | Slides | Lab 2 | ||
02/21/25 | Secure aggregation |
Required: Practical Secure Aggregation for Privacy-Preserving Machine Learning |
Slides | |||
02/24/25 | ML system security | Privacy-preserving inference |
Required: GAZELLE: A Low Latency Framework for Secure Neural Network Inference |
Slides | Lab 1 | |
02/26/25 | Secure computation systems | Systems for secure computation |
Required: MAGE: Nearly Zero-Cost Virtual Memory for Secure Computation |
Slides | ||
02/28/25 | ML system security | Guest lecture: Watermarking large language models (Qi Pang) |
Optional: A Watermark for Large Language Models |
Slides | Final project literature review | |
03/03/25 | Spring break! | |||||
03/05/25 | Spring break! | |||||
03/07/25 | Spring break! | |||||
03/10/25 | Software security | Buffer overflow |
Required: Baggy Bounds Checking: An Efficient and Backwards-Compatible Defense against Out-of-Bounds Errors |
Slides | Project proposal | |
03/12/25 | Symbolic execution |
Required: Symbolic execution with SymCC: Don't interpret, compile! |
Slides | |||
03/14/25 | Guest lecture: Software Verification (Pratap Singh) | Slides | ||||
03/17/25 | Blockchain | Byzantine consensus: classic BFT & longest-chain consensus | Optional: The Saddest Moment | Slides | ||
03/19/25 | ZK proofs + blockchain |
Required: Zerocash: Decentralized Anonymous Payments from Bitcoin |
Slides | Lab 2 | ||
03/21/25 | No class -- self review for exam | |||||
03/24/25 | Exam 2 | |||||
03/26/25 | No class - work on project! | |||||
03/28/25 | No class - work on project! | |||||
03/31/25 | No class - work on project! | |||||
04/02/25 | No class - work on project! | |||||
04/04/25 | No class - work on project! | |||||
04/07/25 | Project check-in | |||||
04/09/25 | Project check-in | |||||
04/11/25 | Project check-in | |||||
04/14/25 | No class - work on project! | |||||
04/16/25 | No class - work on project! | |||||
04/18/25 | No class - work on project! | |||||
04/21/25 | No class - work on project! | |||||
04/23/25 | Poster session | |||||
04/30/25 | Last day of class | Final project report |