­Cleveland State University

Department of Electrical and Computer Engineering

EEC 693/793 Special Topics in Electrical Engineering

Secure and Dependable Computing

Spring 2008

 

Course Objectives:          This course provides an extensive overview of secure and dependable distributed computing systems. Topics include computer and network security, faults models, process and data replication, reliable group communication, message logging, checkpointing and restoration, Byzantine fault tolerance and intrusion tolerance.

 

Prerequisite:                    EEC484/584 Computer Networks. Furthermore, this course is designed for students who have sufficient computer engineering background. That means you are expected to have taken undergraduate-level operating systems, data structure and algorithms, and programming language courses. In particular, most of the labs and the course project involve with the Java programming language.

 

Textbook:                         Lecture notes and handouts

 

Instructor:                        Dr. Wenbing Zhao     

Office:                SH434

Phone:                (216) 523-7480

Fax:                    (216) 687-5405

E-mail:                wenbing@ieee.org

Lecture time:      M W 6:00-7:50pm at SH306

Office hours:      M W 2:00-4:00pm and by appointment

 

I will be available on May 5th, Monday, 2-3:50pm in my office to answer your questions regarding MidTerm#3 and your standing in class.

 

EEC693 MidTerm#3 Score

CSU ID (last 4 digits)

Q1

Q2

Q3

Q4

Q5

Total

0072

10

30

20

10

15

85

0334

10

27

20

10

0

67

0341

10

30

20

20

0

80

0342

10

30

20

20

0

80

0960

10

30

20

10

15

85

1187

10

24

20

10

0

64

1653

10

30

20

0

0

60

1737

10

24

20

20

0

74

2228

10

30

20

10

0

70

2269

10

27

20

20

20

97

2276

10

27

20

20

15

92

3565

10

30

20

20

15

95

3826

10

27

20

10

15

82

4062

10

24

20

20

0

74

4196

10

30

20

10

0

70

6432

10

27

20

20

0

77

6584

10

27

20

0

0

57

7292

10

30

20

20

0

80

7352

10

27

20

10

15

82

7407

10

30

20

20

0

80

7598

10

30

20

20

0

80

7823

10

24

20

20

15

89

8602

10

30

20

20

0

80

9923

10

27

20

10

15

82

 

 

Week

Topics

Reading

1

(Jan 14 - 18)

Jan 14:

·         Lecture 1: Syllabus discussion; Overview of the course (notes)

Jan 16:

·         Lecture 2: Overview of secure and dependable computing (notes)

 

A. Avizienis, J.C. Laprie, B. Randell, C. Landwehr: ‘Basic Concepts and Taxonomy of Dependable and Secure Computing’, IEEE Trans. on Dependable and Secure Computing, vol. 1, no. 1, Jan-March 2004, pp.11-33

Security in Computing: chapter 1

2

(Jan 21 – 25)

Jan 21: Martin Luther King Day (No Class)

Jan 23:

·         Lecture 3: Introduction to computer & network security (notes)

 

 

Security in Computing: chapter 1

Security in Computing: chapter 2

3

(Jan 28 – Feb 1)

Jan 28:

·         Lecture 4: Elementary cryptography (part 1) (notes)

Feb 30:

·         Lecture 5: Elementary cryptography (part 2) (notes)

 

Security in Computing: chapter 2

4

(Feb 4 – 8)

Feb 4:

  • Lab 0 – Getting familiar with Linux (including Linux account creation)

Feb 6:

  • Lecture 6: Elementary cryptography (part 3), Public key management (notes)
  • Lab 0 report due date is postponed

 

 

 

 

Computer Networks (4th Ed., Tanenbaum): chapter 8

5

(Feb 11 – 15)

Feb 11:

  • Lecture 7: Authentication protocols (notes)

Feb 13:

  • Lecture 8: Secure communication 1 - secure shell (notes)

 

 

 

6

(Feb 18 – 22)

Feb 18: President’s Day (No Class)

Feb 20:

  • Lab 1 - Secure shell

 

SSH, the Secure Shell (2nd Edition)

7

(Feb 25 – 29)

Feb 25:

  • Lecture 9: Secure communication 2 (PGP & SSL) (notes)
  • Lab 1 report due

Feb 27:

  • Lab 2 – Secure computing in Java

 

8

(Mar 3 – 7)

Mar 3:

  • Lab makeup session

Mar 5:

  • Midterm Test #1 (lecture 1-6)
  • Lab 2 report due

 

 

 

 

9

(Mar 10 – 14)

Spring Recess (no class)

 

 

10

(Mar 17 – 21)

Mar 17:

  • Lecture 10: Intrusion detection and prevention (notes)

Mar 19:

  • Lab 3 – Intrusion detection with Snort

 

Network intrusion detection book

11

(Mar 24 – 28)

Mar 24:

  • Lecture 11: Failures and their manifestation; Consensus (notes)
  • Lab 3 report due

Mar 26:

  • Lecture 12: Replication techniques; replica consistency (notes)

 

 

 

Handout

12

(Mar 31 – Apr 4)

Mar 31:

  • Project Consultation (no lecture)

Apr 2:

  • Lecture 13: Group communication systems (I) (notes)
  • Project outline due

 

Handout

 

13

(Apr 7 – 11)

Apr 7:

  • Midterm Test #2 (lecture 7-12, lab 1-3)

Apr 9:

  • Lecture 14: Group communication systems (II); Logging, checkpointing and recovery (notes)

 

Reliable Distributed Systems: chapter 14-16

14

(Apr 14 – 18)

Apr 14:

  • Lab 4 – Spread toolkit

Apr 16:

  • Makeup Lab Session

 

 

 

 

15

(Apr 21 – 25)

Apr 21:

  • Lecture 15: Byzantine fault tolerance (part I) (notes)
  • Project progress report due; April 25
  • Lab 4 report due

Apr 23:

  • Lecture 16: Byzantine fault tolerance (part II) (notes)

 

Handout

 

 

Handout

16

(Apr 28 – May 2)

April 28:

  • Midterm #3 (lecture 13-16, lab 4)

April 30:

  • Project presentation (attendance mandatory)

 

17

(May 5 – 9)

May 7:

  • Project presentation (attendance mandatory)
  • Final project submission due (by midnight)

 

 

Course Project

You are expected to build a secure and/or dependable software application/system based on the tools and systems you have learned during the labs. 30% of the course credit is allowed for the project. The project can be completed individually or by a team of two. Deliverables:

-          A project proposal

-          A project progress report

-          A public project presentation, including a demo and a code walkthrough.

-          The source code for the project

-          A typed comprehensive report of your project is required

 

Labs

There are 5 labs on a various topics related to security and dependability of distributed computing systems. There will be no makeup lab, and no extension will be granted for lab reports. Exception may be granted to those who have strong background to complete the labs without my supervision. If you are granted an exception, the related requirement on the lab session attendance for class participation credit is automatically removed.

 

Class Participation

10% of the course credit is allocated to encourage student class participation. I may perform a roll call in the beginning of each class to determine the attendance. To obtain the full credit for class participation, you must satisfy the following conditions:

  • You do not miss more than 2 lectures
  • You do not miss any exam and lab sessions (if you choose to the labs option)
  • You have asked at least 10 questions during the semester. You are also encouraged to give me advice on how you would like me to improve my teaching to make it more conducive. For each piece of advice, it will be counted as 2 questions.

To help me keep track who asked me questions, please send me an email with the following information for each question you have asked within 24 hours after the lecture:

  • The question you asked
  • My response
  • Your comment on my response and suggestion for improvement, if any

 

Grading

Class participation 10%

Exams 40% (each midterm 20%)

Labs 20%

Projects 30%

 

The final grading is based on your accumulated effort in this course. Your final grade is determined approximately based on the following schedule:

A: 90-100%

A-: 85-89%

B+: 75-84%

B: 65-74%

B-: 55-64%

C: 50-54%

F: <50%

 

Reference Books   

Security in Computing (4th Edition), by Charles P. Pfleeger, Shari Lawrence Pfleeger, Prentice Hall, 2006

Computer Networks (4th Edition), by Andrew S. Tanenbaum, Prentice Hall, 2003

Cryptography and Network Security: Principles and Practices (3rd Edition), by William Stallings, Prentice Hall, 2003

SSH, the Secure Shell (2nd Edition), by Daniel J. Barrett, Robert G. Byrnes, Richard E. Silverman, O'Reilly, 2005

Reliable Computer Systems: Design and Evaluation (3rd Edition), by Daniel P. Siewiorek and Robert S. Swarz, A K Peters, 1998

Distributed Systems: Principles and Paradigms, by Andrew S. Tanenbaum, and Maarten van Steen, Prentice Hall, 2002

Reliable Distributed Systems: Technologies, Web Services, and Applications, by Kenneth P. Birman, Springer, 2005

Network Intrusion Detection (3rd Edition), by Stephen Northcutt, Judy Novak, New Riders Publishing, 2002

 

Note

Examines are closed-book and closed-notes. However, you can bring with you one page of formulas and definitions (US Letter size or smaller). There will be no make-up tests. If you have serious reasons for missing a test (accident, medical emergency, death in the family), upon presentation of an official written document validating the circumstance the test will be rescheduled.