Skip to content

Syllabus

sethnielson edited this page Jan 2, 2020 · 11 revisions

Syllabus

  • Computer Science 601.444/644
  • Network Security
  • Fall 2019
  • (3 credits)

Description

From ISIS

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.

From the Instructor

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.

Schedule

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

Grading and Grading Policies

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)

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

Materials

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.

Professor

  • Seth James Nielson
  • Email: [email protected]
  • GitHub: sethnielson
  • Office: Malone 303, 410-497-7384
  • Office hours: MW 1300-1500 and by appointment

TA