6.888 Secure Hardware Design

Fall 2020

NOTE: Previous year's website.

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

Meeting Location and Times

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.

Course Description

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.

  • Micro-architectural side-channel attacks
  • Transient/Speculative execution attacks
  • SGX enclave design
  • Open-source hardware for security
  • Hardware security verification
  • Power side-channel attacks
  • Rowhammer attacks
  • Hardware support for memory safety

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.

Assignments and Grading

6.888 has no midterm or final exams. There are four required assignments:

  • Paper reviews: Prior to each lecture, you are expected to read the paper(s) under "Required Reading" in the schedule for that lecture. Each student will submit two paper reviews per week. The review should consist 500-word summary of the paper and at least one discussion question. We will post the review guideline and submission instructions soon.
  • Seminars: After the first six lectures, each student will be asked to select 1-2 topics from the upcoming lectures, review relevant materials, and give presentations, and lead the class discussion.
    To facilitate a fruitful exchange, students are expected to engage in class discussion. Although we will not be formally tracking attendance, we expect regular attendance and participation.
  • Lab assignment: There will be one lab assignment on cache-based side channel attacks. Students will be asked to implement their own attacks that work on a real machine (not simulators).
  • Research Project: A large part of the work in this course is in proposing and completing an open-ended research project. The project can be related to research that you are currently doing, subject to instructor approval.

The tentative weights for each assignment into the final grade are:

  • Paper reviews - 25%
  • Seminars - 15%
    • Discussion lead for 1-2 papers - 10%
    • Participation - 5%
  • Lab assignment - 15%
  • Research project - 50%
    • Proposal – 10%
    • Checkpoint – 10%
    • Final report – 15%
    • Final presentation – 15%

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.

Course Staff

Please email 6888-fa20-staff@csail.mit.edu with any questions.

  • Professor Mengjia Yan
    email: mengjia at csail.mit.edu
  • TA Miles Dai
    email: milesdai at mit.edu