This course explores a broad set of recent topics in network and distributed system security, including the design and implementation of secure protocols, attacks and defenses, and the growing use of secure hardware and applied cryptography. The course focuses on widely deployed systems, such as TLS, the web's PKI, DNSSEC, Tor, Messaging Layer Security, Bitcoin, and the cloud. Students will discuss recent conference papers, and complete programming assignments using the Go programming language. Prior knowledge of Go is not required.
Must be a graduate student in Computer Science. I expect students to have some familiarity with systems and networking, network programming, and applied cryptography, but I will review these concepts as needed.
We will use gradescope for programming project submissions. We will use Blackboard for online discussions, posting any video recordings, and tracking grades. Otherwise, the course materials will be published via this website.
You are free to develop the programming projects using whatever setup you like. The official setup is of course the gradescope environment, which is a standard Ubuntu Linux 22.04 system with go1.21.6. The projects themselves have very few dependencies.
Each class we will discuss a research paper. I expect you to read this paper before class and come prepared to have a meaningful discussion.
In addition to the paper readings, we will also learn the Go programming, and use as our textbook:
Learning Go, 2nd Edition
Jon Bodner
O'Reilly Media, Inc
January 2024
An online version of this book is freely available through the W&M library's subscription to O'Reilly Online Learning.
Your grade is out of 1000 points. Your final numeric grade will be mapped into a letter grade "on the curve." Generally, 900 points and above is an A; 800 to 899 is a B, and so on. I will adjust this scale downward as necessary.
Note that this class does not have exams or a final.
Attendance and Class Participation (100 pts)I expect you to attend class regularly, which generally means attending at least 80% of the classes. Class will be in-person only. If you are unable to attend in person (for either the whole semester or an extended period), please let me know and I will make appropriate accommodations.
You will lead a 40-50 minute discussion of one of the papers on our schedule's reading list. At the beginning of the semester, I will ask you for a prioritized list of your top three paper choices, and then assign the papers according to everyone's preference. You may find it helpful to prepare slides, but a "chalk talk" is also fine.
You will receive all 200 points if you lead a reasonable discussion for 40-50 minutes. If you are obviously unprepared, or the discussion goes way over or way under the time limits, I will deduct points accordingly. (As a rule of thumb, I will deduct 5 points for every minute you are over or under the time limits.)
By noon the day of class, you need to email me one question about the next day's paper. Note the following:
I will assign three Go programming projects throughout the semester. Each assignment is worth 100 pts. There are no project extensions: every project is due on its due date. If you received a score of less than 80 points on a project (or simply did not submit), then you can resubmit the project by 11:59pm on May 6 to receive up to 80 points. In other words, the maximum score for a resubmitted programming project is capped at 80.
The programming projects must be completed on your own. The operative rule is that you may consult with your classmates on general issues about an assignment, but code remains private. You should neither show another your program source code, nor look at anothers' source code. Beyond that, you should adopt an "empty hands" attitude toward collaboration: talk about the project as you wish, but leave the conversation with nothing written.
There are a few corollaries to this rule:
I reserve the right to review submissions for cases of code sharing, egregious uses of AI (e.g., the entire project is AI-generated), or other disingenuous behavior contrary to the spirit of the project. If I detect such deceitfulness, you will receive zero points for the project and loss the privilege to resubmit that project for partial credit. If I detect deceitfulness a second time, then I will report a violation of the honor code.
You will work on a research project during the semester. You may work individually or in a team of up to three students.
You can propose your own research project, or you can use one of my ideas as a starting point. Regardless, a member of your team must email me a list of your team members and your research topic (1-3 sentences) by Friday, 2/2 @11:59pm. If you are proposing your own idea, please discuss it with me prior to this deadline.
By 11:59pm on May 6, you must submit a short paper that describes the problem, background details, related work, as well as your approach and accomplishments. The paper has the following requirements:
The template generates a PDF like this.
During normal class time (2pm) on Monday, May 6, your team will deliver a slide presentation of your project to the class. Your presentation should be about 10-minutes long.
W&M has a significant tradition in its honor code, stated below:
William & Mary accommodates students with disabilities in accordance with federal laws and university policy. Any student who feels they may need an accommodation based on the impact of a learning, psychiatric, physical, or chronic health diagnosis should contact Student Accessibility Services staff at 757-221-2512 or at sas@wm.edu to determine if accommodations are warranted and to obtain an official letter of accommodation. For more information, please see www.wm.edu/sas.
As per the university's guidance, if you have a religious observance that conflicts with a deadline, please notify me as soon as possible so that I can attempt to make an appropriate adjustment.
William & Mary recognizes that students juggle different responsibilities and can face challenges that make learning difficult. There are many resources available at W&M to help students navigate emotional/psychological, physical/medical, material/accessibility concerns, including: