This research-oriented course examines the security interplay between software and hardware in today’s computer systems. Topics include microarchitectural side-channel attacks and defenses, transient execution attacks and defenses, trusted execution environments, fault attacks and defenses, and emerging hardware security threats such as software-measurable power side channels and leaks due to data-dependent CPU and GPU optimizations. The course consists of lectures and guest lectures on each of these topics as well as discussions of recent papers from the hardware security literature. Lab assignments and an open-ended group project will help students gain hands-on experience with hardware security research.
This course is designed for students (PhD, masters, or undergrads) who want to work on secure systems research projects where hardware plays a first-class role. Students who are interested in computer security or computer architecture in general will find it appealing too.
While we will review these topics at the beginning of the course, familiarity with the fundamentals of computer security and computer architecture is recommended. This includes threat models, trusted computing base, basics of cryptography, caching, multi-core systems, and memory systems.