Link Search Menu Expand Document

Secure Hardware Design

Learn to attack processors… and learn to defend them!

Welcome to 6.888!

6.888 is 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 principles of various attacks and how to design effective hardware mitigations and hardware/software co-design solutions.

Last year’s website

Meeting Location and Times

Required Lectures: Mondays and Wednesdays from 1:00pm to 2:30pm in 56-154

Optional Recitations: Fridays from 1:00pm to 2:00pm in 36-153

Note that participation is required at scheduled time; take this course only if you will generally be able to participate!

We will use Piazza for all course-related discussion.

Assignments and Grading

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

  • Paper reviews: Prior to each lecture, you are expected to read the paper(s) in the schedule for that lecture. Each student will submit 1 paper summary per discussion. The summary should consist of a summary of the paper and at least one discussion question.

  • Discussions: Each student will be asked to select 1-2 topics from the upcoming lectures, review relevant materials, 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 assignments: There will be 5 lab assignments. Students will be asked to implement their own attacks that work on real machines (not simulators). Students have the option to substitute the last 3 labs with an open-ended course 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 - 15%
  • Discussions - 15%
    • Discussion lead for 1-2 papers - 10%
    • Participation - 5%
  • Labs - 70%
    • Each lab - 14%

A final project can replace labs 3, 4, and 5, and will be worth 42%.

Staff

Professor Mengjia Yan
Email: mengjia at csail.mit.edu
Office: 32-G840
Office Hours: By Appointment

TA Joseph Ravichandran
Email: jravi at mit.edu
Office: 32-G786
Office Hours: Tuesdays 5:00pm to 7:00pm, or by appointment

Prerequisites

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. It is listed as an AUS/AAGS course.

Late Policy

  • Labs: Late lab submissions are subject to a 10% penalty per late day, with a maximum penalty of 50% after 5 days. For example, a lab that would normally earn 100% if turned in on-time by 11:59 PM on 14 March would earn you 90% if turned in on 15 March by 11:59 PM.

  • Paper Summaries: Paper summaries are due 24 hours before the corresponding discussion. Half credit will be awarded if turned in before the lecture start time. No credit will be awarded if turned in after the lecture begins.

For labs, the late penalty is automatically waived for your first 5 late days. You can use these free late days if you are sick, you are having a busy week, or you need more time to complete the lab. In addition to these free late days, extensions without penalty may be granted on a case-by-case basis with support from S3. Please email the staff or post a private note on Piazza to request an extension beyond your free late days. If there are medical issues that require further accommodation, please contact the staff.

Collaboration Policy

Laboratory exercises should be completed individually, and the work you hand in must be your own. Copying another person’s work or allowing your work to be copied by others is a serious academic offense and will be treated as such. As a general rule, follow the MIT Academic Integrity Policy and, when in doubt, ask the course staff. Violations of this policy will be treated severely.

Examples of permitted collaboration

  • Allowed: Talk to a friend about a lab assignment and discuss at a high level how to go about completing the assignment.
  • Allowed: Ask a staff member for help if you are confused or stuck.
  • Allowed: After you’ve completed and submitted your own lab, help a friend debug their code solely by looking at their code and trying to identify problems with it.

Examples of prohibited collaboration

  • Not Allowed: Help a friend debug their code by bringing up your solution and comparing the two to identify differences.
  • Not Allowed: Using code from a friend who previously took the class as a starting point for completing your labs and then making some modifications to that code.
  • Not Allowed: Working together so closely that you are basically typing in your solutions side by side.
  • Not Allowed: Copying any portion of someone elses work even if you make some modifications to it.
  • Not Allowed: Sharing any portion of your code with someone else.
  • Not Allowed: Get help from a friend who is looking at their solutions while helping you.

See the MIT Academic Integrity Policy.

Warning

You’ll learn how to attack computer systems in this class in order to better understand how to design defenses. Please don’t attack other people’s computers or information without their prior permission. As well as being a bad idea, it may be illegal or a violation of MIT network rules and can get you into serious trouble.