Software Foundations of Security & Privacy
Course Overview
Security and privacy issues in computer systems continue to be a pervasive issue in technology and society. Understanding the security and privacy needs of software, and being able to rigorously demonstrate that those needs are met, is key to eliminating vulnerabilities that cause these issues. Students who take this course will learn the principles needed to make these assurances about software, and some of the key strategies used to make sure that they are correctly implemented in practice. Topics include:
- Policy models: safety & liveness, information flow, capabilities
- Reference monitors
- Security type systems
- Isolation principles & techniques: software fault isolation, control-flow integrity, hardware protection
- Trusted computing: authorization logic, public key infrastructure, hardware & software support
- Web application security & best practices
- Side channel vulnerability & defense
- Techniques for ensuring rigorous data privacy
- Formal proof
- Soundness and completeness of deductive systems
- Program semantics
- Specification and verification of program behavior
- Software model checking
Instructor: Matt Fredrikson
- Office Hours: Thursdays 4-5pm, CIC 2126
- Email: mfredrik@cs
TA: Milijana Surbatovich
- Office Hours: Fridays 3pm, 2206
Lectures: TuTh 9:00-10:20am in HH B103
Announcements
Homework 6 has been assigned, and is due on 12/6.
12/6/19
Lab 3 has been assigned, and is due on 12/6.
11/8/19
Homework 5 has been assigned, and is due on 11/20.
11/12/19
Lab 2 has been assigned, and is due on 11/24.
11/8/19
Homework 4 has been assigned, and is due on 11/10.
11/3/19
Homework 3 has been assigned, and is due on 10/30.
10/23/19
Lab 1 has been assigned, and is due on 10/25. The checkpoint is on 10/14.
10/4/19
Homework 2 has been assigned, and is due on 9/29.
9/19/19
Homework 1 has been assigned, and is due on 9/13.
9/1/19
Welcome! Use Gradescope entry code 9E62JE and the Piazza signup link to get started.
8/27/19