Advances in hardware have been playing a pivotal role in driving technological progress; however, they have come at the cost of unprecedented levels of complexity. In this course, we study how this complexity opens up new vulnerabilities, how these vulnerabilities undermine software security, and how to build systems that are secure against these vulnerabilities. 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 leaks due to data-dependent CPU and GPU optimizations and remote power side channels. The course consists of hands-on lab assignments, lectures and guest lectures on each topic, and discussions of recent papers from the hardware security literature.
Class format
Lecture and project-based
Home department
Software and Societal Systems Department
Faculty and instructors who have taught this course in the past
Riccardo Paccagnella