-
Notifications
You must be signed in to change notification settings - Fork 6
Syllabus
- Computer Science 601.444/644
- Network Security
- Fall 2019
- (3 credits)
This course focuses on communication security in computer systems and networks. The course is intended to provide students with an introduction to the field of network security. The course covers network security services such as authentication and access control, integrity and confidentiality of data, firewalls and related technologies, Web security and privacy. Course work involves implementing various security techniques. A course project is required.
The ISIS description is generic. Here is a more detailed description of what we will cover:
- Secure network protocols in network stacks
- Applied cryptography in network communications
- Network architecture, including firewalls
- Data Security
Moreover, because so many students do not have a significant engineering background, the first several weeks of the class will cover client-server programming using the Python language.
Date and Topic | Classroom | Assignments |
---|---|---|
8/29 - Sockets | Teams and VM Setup | READ: Intro to Python3 |
Form Teams | READ: Intro to Sockets in Python | |
Exercise: Getting Started | ||
9/4 - Python3 | In class Python Exercises | DUE: Getting Started |
Exercise: Escape Room with Sockets 1 | ||
Help Section: Using the auto-grader | ||
9/9 - Asyncio/Protocols | In-Class Sockets Exercises | DUE: Escape Room with Sockets |
READ: Intro to Python3's Asyncio | ||
Exercise: Escape Room with Asyncio | ||
9/11 - Python Co-routines | In-class Co-routines Exercises | DUE: Escape Room with Asyncio |
READ: Intro to Co-routines | ||
Exercise: Escape Room with Asynchronous User Input | ||
9/16 - Intro to Playground | In-class Playground exercises | DUE: Escape room with Async Input |
READ: Overlay networks, Intro to Playground | ||
Exercise: Playground Conversion | ||
9/18 - Serialization | In-class Serialization exercises | DUE: Escape Room over Playground |
READ: Serialization | ||
Exercise: Escape room with Packets | ||
9/23 - Playground Applications and Bank | In-class bank walkthrough | |
READ: Playground Bank Docs | ||
In class, work on PRFC's and Standards | ||
9/25 - Standards, the IETF, and RFC's | Form PETF | DUE: Escape Room with Packets |
PRFC tool | READ: Intro to technical specifications | |
In class PRFC work | ||
Exercise: Escape Room with Admission Fee | ||
9/30 - Network Stacks and OSI Model | Slides: 01 Welcome and 02 Stacks | DUE: Escape Room with Admission |
Team bank accounts | READ: Intro to Protocol Stacks | |
PETF pick PRFC, establish update protocol | ||
Exercise: Standardize Escape Room | ||
ATTACKING LEVEL 1: Eavesdropping | ||
10/2 - Ethernet | Eavesdropping | DUE: Standardize Escape Room |
Exercise: Monitor Playground Traffic | ||
10/7 - Introduction to TCP/IP | DUE: Monitoring Report | |
READ: Internet Protocol (IPv4) Specs | ||
READ: TCP Specs | ||
Lab 1: Reliable Transport Handshake | ||
10/9 - Transmission Control Protocol | Slides: 04 Intro to Data Security and Privacy | |
10/14 - TCP/IP, Firewalls, and Eavesdropping | Slides: 05 Data Governance in Data Security | |
Attacking Level 2: Password Cracking | ||
Lab 1: Reliable Transport Error Free Delivery | ||
10/16 - Network Security Threats | Class Discussion | |
10/21 - Advanced Firewalls and Network Architecture | Slides: 06 Border Security | DUE: Reliable Transport Handshake |
Lab 1: Reliable Transport Error-correction and Shutdown | ||
10/23 - Reliable Delivery Revisited | Slides 07 Layer 4: TCP | |
10/28 - Cryptography 1 | Slides: 09: Hashing and Symmetric Encryption | |
READ: Crypto Review 2 | ||
Lab 1: Reliable Transport PRFC Error Correction | ||
10/30 - Cryptography 2 | Slides: 10: Asymmetric Operations and Certificates | DUE: Reliable Transport PRFC Error Correction and sample code |
PETF: Pick PRFC | ||
READ: Early TLS (and SSL) Design | ||
Standardize Reliable Transport Error Correction | ||
11/4 - TLS through version 1.1 | Slides: 11 TLS and Certificates | DUE: Reliable Transport Final |
READ: Contemporary TLS Design | ||
Lab 2: Secure Transport Certificates | ||
ATTACKING LEVEL 2: Session Hijacking | ||
11/6 - TLS versions 1.2/1.3 | Slides: 11 TLS | DUE: Secure Transport Certificates |
Lab 2: Secure Transport Handshake | ||
11/11 - IPSec | Slides: 12 IPSec | |
Lab 2: Secure Transport PRFC Handshake | ||
11/13 - Kerberos | Slides: 13 Kerberos | DUE: Secure Transport PRFC Handshake |
PETF: Pick PRFC | ||
Lab 2: Secure Transport Bulk Data | ||
Standardize Handshake | ||
11/18 - TLS Visibility and Vulnerability | Slides: 14 TLS Issues | DUE: Secure Transport Handshake |
Lab 2: Secure Transport PRFC Bulk Data | ||
11/20 - Kerberos | Slides: 13 Kerberos | DUE: Secure Transport PRFC Handshake |
PETF: Pick PRFC | ||
Standardize Secure Transport Bulk Data | ||
11/25 - THANKSGIVING BREAK | ||
11/27 - THANKSGIVING BREAK | ||
12/2 - HTTPS 2.0 | Slides 14: HTTPS and HTTPS 2.0 | DUE: Secure Transport Final |
READ: Advanced Persistent Threats | ||
Lab 2: Secure Transport PRFC Bulk Data | ||
ATTACKING LEVEL 4+: ANYTHING GOES! | ||
12/4 - Zero Trust Networks | Slides: 15 Contemporary Network Architecture | |
Final Project: Playground Network Scan/Analysis | ||
Extra Credit: Stealing Bitpoints | ||
12/11 - Final (6pm-9pm) | DUE: Final Project and Stolen Bitpoints |
This is a project/lab heavy class. All grading is based on the lab work.
Total Points: 700
-
Lab Work (700)
- Programming Exercises (150):
- Escape Room (25)
- Escape Room with Sockets (25)
- Escape Room with Asyncio Protocols (25)
- Escape room with asynchronous user input (25)
- Basic Web Server and Proxy (25)
- Playground Conversion (25)
- Lab 1: Reliable Delivery Protocol (250):
- Milestone 1: Handshake (75)
- Milestone 2: Delivery under ideal (no error) conditions (100)
- Milestone 3: Delivery under error conditions (75)
- Lab 2: Secure Delivery Protocol (200):
- Milestone 1: Authentication and Key agreement (100)
- Milestone 2: Confidentiality (100)
- Lab 3: Certificate Chain Verification Scanner (100)
- Programming Exercises (150):
A letter grade will be assigned according to this formula:
- 93% and above: A
- < 93%: A-
- < 90%: B+
- < 87%: B
- < 83%: B-
- < 80%: C+
- < 77%: C
- < 73%: C-
- < 70%: D
- < 60%: E
There is no assigned textbook for this course. Throughout the course, you will read significant amounts of material from various online sources.
In fact, you should get comfortable learning to use Google, or your favorite search engine, to learn about a topic. A search engine is considered one of your textbooks. For some assignments, we will give you specific readings. For others, you will have to learn something by finding your own sources.
Either way, all readings will be linked to this Wiki.
We will also be using GitHub for both distributing class materials, example code, and resources to you and for you to submit your labwork and other assignments to us. Please follow the instructions on your class GitHub repository.
You will also need to write your source code to work in a *nix style environment. You may, for example, use the Windows Subsystem for Linux, a Linux virtual machine, or so forth. In the past, we've had trouble with Mac's, so use at your own risk. It is highly recommended to use Python virtual environments for some of the configuration.
- Seth James Nielson
- Email: [email protected]
- GitHub: sethnielson
- Office: Malone 303, 410-497-7384
- Office hours: MW 1300-1500 and by appointment
- Karan Dhareshwar
- Email: [email protected]
- GitHub: darthsiroftardis
- Office hours: TBD