CS 558 -- Network Security
This course will cover a wide variety of computer security topics, with a focus on real, deployed protocols. Our first unit will cover vulnerabilities in critical internet protocols that could be exploited by an attacker to redirect or decrypt internet traffic or launch denial of service attacks. Our second unit will focus on privacy on the web, including a deep dive into Tor and secure messaging protocols. Finally, we will finish the course by covering the basics of emerging technologies like trusted execution environments and secure multiparty computation.
Why Take This Course
This class will give you a good look at the state of network security today, covering both the challenges to and techniques for achieving a secure and private internet. Over the course of the class, students will gain a deep understanding of adversarial thinking and gain an intuition for how to both attack and secure protocols. If you like to break things or enjoy seeing what happens when expert protocol designers make mistakes, this course should be a lot of fun. Additionally, we will be spending significant time discussing censorship resistance and secure messaging, which are fundamental tools to protocol freedom of expression and promote human rights. If you are passionate about privacy as it relates to protecting human rights, you will find the techniques covered in this class to be well motivated.
Who Should Take This Course
- Upper level undergraduate students or graduate students passionate about security and privacy
- We will assume that students already have a working knowledge of the fundamentals of cryptography. This should include symmetric key cryptography, public key cryptography, digital signatures, pseudorandomness, and hash functions. CS391, CS538, CS548, CS568 or equivalent recommended.
- We will also assume that students have been exposed to thinking adversarially, for instance in one of the courses listed above
A rough schedule for this course is available here. Please note that the topic list is not final and may change.