CS 600.443: Security and Privacy in Computing

Overview

This course provides an introduction to information security, focusing on software security, network security, cryptography, mobile platform security, and privacy technologies. Emphasis in this course is on understanding how security issues impact real systems, while maintaining an appreciation for grounding the work in fundamental science.

Office Hours

I will hold my office hours in 313 Malone Hall after class on Wednesday, and I’m also available by appointment other times.

Grading

Grades will be determined as follows:

Assignments are due at the beginning of class at 12:00 p.m. on the stated due date. Late assignments will be penalized 5 percentage points per weekday. There is no collaboration allowed on exams. You must do only your own work. There are no textbooks, notes, or computers allowed during exams. Bring only a pencil or a pen.

Recommended Textbook

And research papers listed below.

Prerequisites

Students are expected to enter this course with a basic knowledge of operating systems, networking, algorithms, and data structures. It is assumed that students know how to do basic web programming, such as setting up CGI scripts, as well as network programming. Knowledge of socket programming will be very helpful. The first course project will be done individually. Later course projects may, at the instructor’s discretion, be done in groups (3-4 people) with presentations to the class. Students must enter the class with well-developed programming experience.

TA/CA

Madhupreetha Chandrasekaran (mchandr6@jhu.edu)

Assignments

Syllabus

Click here for the tentative lecture schedule. All dates subject to radical and arbitrary change.

Unit 1

Software security, buffer overflows, secure programming, cross site scripting and other attacks.

Reading:

Unit 2

Network security, firewalls, IPsec Web security, authentication, SSL, Passport, SSH Honeypots, IDS, Tunneling and VPNs, viruses and worms.

Reading:

Unit 3

Basics of encryption, signatures, key management, PKI, random number generators, key escrow, logics of authentication.

Reading:

Unit 4

Security of mobile devices. Android security, iOS security, GSM network encryption. Mobile malware. Vulnerabilities in the “Internet of Things”.

Reading:

Unit 5

Basic Privacy: P3P, anonymous routing protocols (Tor, Mixnets), Censorship-resistant publishing (Publius, Freenet). Bitcoin and electronic payments.

Computer Science Department Academic Integrity Code

The strength of the university depends on academic and personal integrity. In your studies, you must be honest and truthful. Ethical violations include cheating on exams, plagiarism, reuse of assignments, improper use of the Internet and electronic devices, unauthorized collaboration, alteration of graded assignments, forgery and falsification, lying, facilitating academic dishonesty, and unfair competition.

Academic honesty is required in all work you submit to be graded. Except where the instructor specifies group work, you must solve all homework and programming assignments without the help of others. For example, you must not look at any other solutions (including program code) to your homework problems or similar problems. However, you may discuss assignment specifications with others to be sure you understand what is required by the assignment.

If your instructor permits using fragments of source code from outside sources, such as your textbook or on-line resources, you must properly cite the source. Not citing it constitutes plagiarism. Similarly, your group projects must list everyone who participated.

Falsifying program output or results is prohibited.

Your instructor is free to override parts of this policy for particular assignments. To protect yourself: (1) Ask the instructor if you are not sure what is permissible. (2) Seek help from the instructor or TA, as you are always encouraged to do, rather than from other students. (3) Cite any questionable sources of help you may have received.

Students who cheat will suffer a serious course grade penalty in addition to being reported to university officials. You must abide by JHU’s Ethics Code: Report any violations you witness to the instructor. You may consult the associate dean of students and/or the chairman of the Ethics Board beforehand. For more information, see the guide on Academic Ethics for Undergraduates (http://www.advising.jhu.edu/ethics.html) and the Ethics Board web site (http://ethics.jhu.edu).