CS4236—Computer Security

1 Late Breaking News
2 Overview
  2.1 Administrivia
  2.2 Grading
3 Course Contents
  3.1 Overflow
  3.2 Lecture Slides
4 Tutorials
5 Projects
  5.1 Project 1
  5.2 Project 2
  5.3 Project 3
  5.4 Presentation
    5.4.1 Schedule for this semester
    5.4.2 Schedule for last semester

 1  Late Breaking News

 2  Overview

This ia a live, evolving document. Everything mentioned here is subject to change until the first day of class (minor things may change even after that!). However, it should be reasonably representative of what will be covered in the course. The instructor for the course is Sandeep Kumar. The textbook for the class is Introduction to Cryptography with Coding Theory by Wade Trappe and Lawrence Washington.

The class will meet on Fridays from 8-11am (an ungodly early hour) in LT34 starting Jan 14th 2005. We'll start at 8am on the first day at least.

Pre-requisite: I will assume that you have done CS3235 or equivalent. I will assume that you are well familiar with the contents of the book Introduction to Computer Security by Hugh Anderson which is available in the Science bookstore. Except for chapters 4 and 6 of the book, everything else is relevant to CS4236. In fact, it'd be a good idea to brush up on the course before you start CS4236.

2.1 Administrivia

2.2 Grading

Task Weightage
Tutorials 6%
Mid-Term 15%
Projects+Presentation 40%
Final 39%
Everybody please verify the marks I have for you on the sheet pinned to my office door. It's important because that data is in the registrar's database and will be used to compute your grades. That is the authoritative data for the class so we must ensure that it's correct and up-to-date.

 3  Course Contents

The following are the tentative contents of the course. The order of coverage of topics may change.

Date Contents
Jan 14 Overview of Computer Security

The Goals of Security. Saltzer & Schroeder. Blaine Burnham's Usenix keynote. Gene Spafford's keynote. Buffer Overflow. The Context of Cryptography [Schneier & Ferguson]. Classical Cryptosystems.

Readings:

Projects:

  • Hand out project on roiling and unroiling files using the Java crypto APIs.
  • Try out the outstanding graphical implementation of the Enigma here. It requires Java 3D, which you can get here. It's well worth a try even though Java3D will not work on Linux.
  • Try deciphering the following mono alphabetic substitution cipher using mono.cgi. Show...
  • Try encrypting some text using the Vigenere cipher.
Jan 21 Hari Raya holiday. No class.
Jan 28 Number theory.

Here I'll assume that you are already somewhat familiar with elementary number theory from CS3235.

Readings:

  • Chapter 3 of Trappe and Washington.
  • Try out egcd.cgi.
Feb 4 Symmetric Ciphers.

DES in grisly detail. Block Cipher Chaining modes. Block cipher design principles. Stream ciphers.

Readings:

  • Chapter 4 of Trappe and Washington.
  • A copy of the FIPS specification for DES is here. The technical description of DES starts on page 12. The overall dataflow of DES is on page 13.
  • The DES equations propagated through its Feistel structure are here. No wonder DES is so non-linear!
  • Try playing with DES, a cgi-bin script that programs the Data Encryption Standard. It was written by B. N. Chandan as a class project for a course that I'd taught earlier.
Feb 11 AES.

Readings:

  • Chapter 5 of Trappe and Washington.
  • The FIPS specification for AES can be obtained here.
  • The Rijndael home page.

Projects:

  • Implementation of AES in Java.
  • Try this rudimentary expression evaluator that I wrote for evaluating expressions in GF(28) mod the AES irreducible. You might need to run this with a Java 1.5 JVM. Download this jar file and run it as java -jar Field.jar.

    A field element is expressed as two nibbles within braces. For e.g., {04}, {af} etc. To compute the inverse of a field element, divide {01} by it, for e.g., {01}/{af}.

    To end the program, type CTRL-D at the command prompt.

  • Try this cgi-bin script to see the transformations that AES makes during the encryption process.
Feb 18 RSA, Discrete Logs.

Readings:

  • Chapter 6-7 of Trappe and Washington.
Feb 25 We're not saved from the mid-semester break. Signatures and Hashes.

Readings:

  • Chapter 8 of Trappe and Washington.
Protocols. Various types of key exchange & signature protocols. Kerberos. Key escrow. Mental poker. Dining Cryptographers. ZK.

Mid-term exam during class hours, probably from 10-11am.

Readings:

  • Chapters 11-13 of Trappe and Washington.
  • Pretty much all of Chapter 4 from Pfleeger's book is worth a read except for the parts that I explicitly skipped such as Contract Signing (Section 4.2 page 155) and Certified Mail.
  • Designing an Authentication System: a Dialogue in Four Scenes. Browse around the Kerberos home page for additional information in case the system piques your interest.
  • Please skim through the paper Key Escrowing Today by Dorothy Denning and Miles Smid that appeared in the IEEE Communications Magazine in the September 1994 issue. You can get the article through the ACM Digital library off LINC.
  • The slides for Zero Knowledge are here.
Access Control Models. Access Matrix, HRU, BLP, Biba, Clarke-Wilson, Chinese Wall. Start on OS Security.

I might do away with this lecture because in my past experience, this material was covered well in CS3235. Instead we might have a guest lecture by Shyue Hong Chuang, a CISSP from Cisco Systems.

Readings:

  • The paper on the Chinese Wall access control model is here.
  • The paper on the Clark Wilson access control model is here.

    Use the above two papers as reference material in case you are unclear about some detail relating to these models.

  • The access control matrix for playing around with is here.
Mar 18 Network Security

IPSec, SSL, TCP Hijacking, Firewalls, Packet Filters, VPNs, DDOS, Intrusion Detection: Host-based, Network based. NFR, Snort and related tools.

Readings:

Mar 25 Good Friday holiday. No class.
Apr 1 More Network Security and assorted topics.

Readings:

  • The subset of the Linux TCP/IP stack code is here.
OS Security. Virtual Memory, File System protection, Passwords: One time, Strong Passwords from Weak Ones such as EKE, Jablon. Viruses. Start on Network Security.
Apr 8 Student Presentations
Apr 15 Start of reading week. No class.

3.1 Overflow

3.2 Lecture Slides

These will probably change on a day-to-day basis until the lecture is delivered so don't print them right away or too often. The accumulated list of lecture slides is here. There have been many changes and separating them on a per-lecture basis would be somewhat tedious. The print version is here. The accumulated list of references used in the lecture slides is here.

You may ignore the slides whose titles have a red cross in the right.

 4  Tutorials

Do not fear tutorials. They are meant to be fun and a learning experience for everyone.

The answers to the tutorial questions below are given by students and are meant only to serve as a guide for you. They do not replace the discussion in class (or in my office for tutorial 8) when the question was presented by the student. I don't verify the correctness of every step in the solutions that students send me to put up on the web. Contact the particular student who presented a question to follow up on details of that question.

If you believe that you will expend significant effort preparing the answer for a particular question and want to be assured that you'll be called for it in class, send me e-mail telling me which question(s) you will solve. I will then assign you that question (on a first come first serve basis) and also display the assignment on this web page against the tutorial. That way you'll be assured that your effort won't be completely wasted.

 5  Projects

5.1 Project 1

Here is project 1. Read Section 6.2 of PKCS5 to understand how a block of data is formatted for encryption using this standard. You will need a postscript viewer for it. A hierarchical diagram of Java's key-related classes is here. To understand the need for IV's with the CBC mode of a block cipher, see Section 3.7 of William Stalling's Cryptography and Network Security 3rd edition on RBR in the Science library. Its call number is TK5105.59 Sta 2003.

Helper Programs: md5sum.java is the Unix equivalent of md5sum. It might help you understand how hash functions can be programmed in Java. Run it as java md5sum <files>.

Test Data: I roiled file foo with the passphrase foo to get foo.roil. I'm not guaranteeing that it's correct but we can use this as a basis to arrive at a debugged format that everyone can test against. So try decrypting it, finding errors in its format using a binary editor etc. Send me feedback on whether you are or aren't able to decrypt it. I will of course use my implementation to test your programs, so if your implementation works against mine directly, I'll have an easier time grading your project. So you can help me debug this code.

For file foo, n = 8, IV = 0xd1ade718fab0a6806357b428a69ec1b5, AES key = 0xa98ee2eb6d22163728855fb975140eef.

5.2 Project 2

Here is project 2. You may use the following classes as helper functions in your project although you are not required to do it. Field.java defines an interface for the algebraic structure Field, and class TwoTo8Field (TwoTo8Field.class) implements it for GF(28) with the AES irreducible. You will get full marks for the project if you use the helper classes but you will impress me if you write it yourself, perhaps after you've got everything working.

5.3 Project 3

You can try out this jar file to get an idea of what I'm looking for in this project. Invoking the program with a 1.5 JVM as
java -jar stunnel.jar -gui www-appn.comp.nus.edu.sg 443
will create an SSL connection to port 443 (the port where https usually runs) and throw up a GUI to display the HTML code that the Web server returns.

You can just retrieve the data from the remote server without displaying it in a GUI by skipping the -gui option.

Here is project 3.

5.4 Presentation

Students will form groups of up to three and present a set of related research papers on their topic of interest. A group may also do a project and present that instead of reading papers. Do not pick a topic that has been selected for presentation in the past. Think up some topics of your own. Some example presentation topics are:

5.4.1 Schedule for this semester

We will have a friendly competition on the student presentations and you will vote for the best presentation which I will award with a gift certificate from Spinelli's! In rating the presentations on IVLE (which I will create later), use some combination of the following criteria. Use your judgment on how to weight them w.r.t each other. Use others as well that you consider important.

The material relating to student presentations for the Spring '05 semester is currently accessible only within NUS.

Student(s) Papers Date & Time
Nguyen Quoc Dung , Huynh Thien Tam, Ng Jun Ping Security on SmartCard. slides.
Francis Teo, Ng Teng Teng Homographic Phishing Attacks/Exploits. slides.
Dinh Thien Anh, Myo Myint Graphical Passwords - The Image is the Key.
  • Graphical Dictionaries and the Memorable Space of Graphical Passwords, Julie Thorpe and Paul van Oorschot, Carleton University. Proceedings of the 13th USENIX Security Symposium, 2004.
  • On User Choice in Graphical Password Schemes, Darren Davis and Fabian Monrose, Johns Hopkins University; Michael K. Reiter, Carneige Mellon University. Proceedings of the 13th USENIX Security Symposium, 2004.
  • The Design and Analysis of Graphical Passwords. Ian Jermyn, Alain Mayer, Fabian Monrose, Michael K. Reiter, Aviel D. Rubin. Proceedings of the 8th USENIX Security Symposium, 1999.
slides, code.
Chuan Huey Ling, Goh Aik Few Ad-Hoc Networks Security : Prevent and Detect. slides, flash animation.
Koh Wee Kiat, Li Zhengguo David, Xue Mingqiang Timing attacks on software systems. slides, code.
Le Quang Vinh, Ho Ngoc Thoai, Thang Cam Hoa Steganographic File Systems.
  • StegFS: A Steganographic File System. Hwee Hua Pang, Kian Lee Tan, Xuan Zhou. Proceedings of the 19th International Conference on Data Engineering, Bangalore, India, 2003.
  • StegFS: A Steganographic File System for Linux, Andrew D. McDonald, Markus G. Kuhn. In the proceedings of Workshop on Information Hiding, IHW'99, Dresden, Germany, Sept. 29-Oct. 1, 1999, LNCS, Springer-Verlag.
  • The Steganographic File System. Ross Anderson, Roger Needham, Adi Shamir. In David Aucsmith (Ed.): Information Hiding, Second International Workshop, IH'98, Portland, Oregon, USA, April 15--17, 1998, Proceedings, LNCS 1525, Springer-Verlag, ISBN 3-540-65386-4.
slides.
Nguyen Ngoc Nhan, Tran Nam Hung Digital Watermarking Techniques. slides, code.
Kok Yew Meng, Liu Chen Lin, Quan Yeqiang, Derrick. Smart card security. slides.
Ng Joong Onn Snort intrusion detection architecture and algorithms. slides.
Cai Guan Yan, Teo Yongwei, Peter Lau Intrusion Detection System/Worm Containment. slides.
Luc Charpentier slides.
Tang Eik Hong, Nguyen Chi Dung Cracking PkZip. slides, extra stuff.
Tan Chee Kwang Desmond, Tan Tian Xiong Fabian Primes is in P. slides, extra stuff.

5.4.2 Schedule for last semester

Student(s) Papers Date & Time
Paul Tan 802.1x/Eapsim slides
Aseem Tandon
Zhou Lan
802.11 Denial-of-Service Attacks: Real Vulnerabilities and Practical Solutions
Your 802.11 Wireless Network has No Clothes
Slides: Aseem, Lan
Ta Duy Vuonng The Design and Analysis of Graphical Passwords. slides
Alan Yap
Lee Thiam Chye
Security Holes...Who Cares?
Distributed Tarpitting: Impeding Spam Across Multiple Servers
March 30, 10-10.40am.
Slides: Alan, Thiam Chye
Ooi See Kang
Shen Ren
Representing TCP/IP connectivity for topological analysis of Computer Network.
LEAP: Efficient Security Mechanisms for Large-Scale Distributed Sensor Networks.
Slides: Ooi See Kang, Shen Ren
Li Meixuan
Li Qihua
A reputation-based approach for choosing reliable resources in peer-to-peer networks
Towards Voice Generated Cryptographic Keys on Resource Constrained Devices
Slides: Meixuan, Qihua.
Lee Hui Huang
Lim Ka Tiong
Detecting and Defending against Web-Server Fingerprinting
Digging For Worms, Fishing For Answers
Slides: Hui Huang, Ka Tiong.
Fong Wee Teck
Tong Jia Yun
Secure Remote Password (SRP-6) Demo Slides.
Tan Wee Hon
Lee Ruiwen
RSBAC Demo Slides.
Jonas Rundberg
Ola Stering
Quantum Crypto, Steganography. March 31, 4.40-5.05pm, 5.05-5.30pm. TR9.
Slides: Jonas.
Guillaume Saggioro Dos Protection for UDP-based protocols Guillaume.