Feel free to navigate the website to get an idea about topics covered by 6.888.
A new version of 6.888 will be offered in Spring 2022 with updated lab assignments.
Students are required to complete 5 lab assignments or have the option to substitute the lab assignments with
an open-ended course project.
Meeting Location and Times // Course Description // Prerequisites and Credit // Assignments and Grading // Course Staff
6.888 will be 100% online in Fall 2020.
Lectures will be held Mondays and Wednesdays from 1:00pm to 2:30pm.
Note that participation required in online lectures at scheduled time; take this course only if you will generally be able to participate.
Zoom link: Please check Piazza or your email for the course Zoom link.
Computer hardware is critical for system security, since it is the trusted computing base for the whole computing stack. Unfortunately, recent attacks, especially the high-profile Spectre and Meltdown attacks, have shown the existence of fundamental vulnerabilities in modern computer hardware. Even worse, hardware exploits can break the assumptions underpinning numerous software security mechanisms.
6.888 is designed as a research-oriented course on secure hardware design. 6.888 will help you understand the critical security problems in modern hardware and the common limitations of existing solutions. Through a mix of lectures and paper discussions, we will learn the principal of various attacks and how to design effective hardware mitigations and hardware/software co-design solutions.
We will cover the following topics. Please find the reading list and a tentative schedule here.
6.888 features an open-ended, research-oriented project. Working in groups of 1-2 students, tackle one of the offered projects or propose your own. We will give you access to cutting-edge infrastructure, including simulators, parallel runtimes, and hardware. Great opportunity for UROP and MEng projects, and to explore or continue PhD-level research in security.
6.888 is primarily intended for seniors, M.Eng and PhD students who want to learn about how to design hardware processors with security as the primary goal.
You should have a good understanding of basic computer architecture (i.e., a strong grasp of the material taught in 6.004). Background in advanced microarchitecture (e.g., at the 6.823 level) is not required, since our focus will not be on details of core pipelines. Prior knowledge of system security and software security (e.g., 6.858, 6.857) will be helpful, but is not required.
6.888 is a 12-unit (3-0-9) subject.
6.888 has no midterm or final exams. There are four required assignments:
The tentative weights for each assignment into the final grade are:
Collaboration policy: Collaboration among students to understand the course material is strongly encouraged, but the submitted lab assignment must be your own. Collaboration among projects is encouraged whenever possible. The final project report must describe how work was divided among team members and acknowledge any external help. As a general rule, follow the MIT academic integrity guidelines and, when in doubt, ask the course staff. Violations of this policy will be treated severely.
Please email 6888-fa20-staff@csail.mit.edu with any questions.