Phase III: Secrecy in a Client/Server System

Due: 9:00am Tuesday, May 4

General Instructions. Students are required to work in groups of 2 or 3 for this assignment. However, you need not work in the same group as you did in Phases I or II. An assignment submitted on behalf of a "group" comprising only a single student will receive a grade of F.

Hand in a single set of files for the entire group. All members of the group are responsible for understanding the entire assignment.

No late assignments will be accepted.

Academic Integrity. Collaboration between groups is prohibited and will be treated as a violation of the University's academic integrity code.

The Assignment

Through Phase II, messages between the GradeSheet client and server have been unencrypted messages. A passive wiretapper can, therefore, monitor traffic and read grades that are suppose to be private; an active wiretapper can intercept, alter, and/or inject traffic, causing reported grades to differ from values actually being stored by the GradeSheet server. In this next phase of the project, you will defend against such attacks by using encryption.

You have considerable freedom in how you solve this problem. You may build on your solution to Phase II or you may build on a Phase II solution developed by another group. And you may employ whatever methods for encryption and key management you can defend as being appropriate. Of course, the suitability of a defense depends on the anticipated threat, which---for us---intelligence (intelligent?) sources have deemed to be highly-motivated groups of Cornell undergraduates (desiring to defray the cost of tuition by blackmail) who do not have physical access to the GradeSheet client or server but who can monitor and insert messages between the two. Careful readers will have noted that the rather different threat from phase II, where we assumed attackers did have access to the GradeSheet client and/or server (depending on which implementation option you chose).

Grading and Deliverables

Working implementations that extend a Windows-NT based Authentication Phase II solution can receive a maximum grade of A-, since a considerable amount of work will have already been done for you by Microsoft. Other solutions can receive a maximum grade of A+.

Your grade will depend in part on the programming you do but also on the justification you give for why you solved the problem in the way you did. In your written justification (at most 10 pages, but shorter is better), we are more interested in seeing the reasoning behind the your high-level design than in reading justifications for specific implementation details. Questions that we hope to find answered in the written justification you provide include:

To submit your work for grading, store your system and documentation as discussed for Phase II and copy the entire folder, not just its contents) to:

\\Goose\courses\cs513-sp99\proj03.submit

Don't be disturbed by the warning informing you that the file cannot be accessed after it has been copied.

If, for some reason, you wish to edit your submission after you have copied it to Goose (before the final cut-off time, of course) then simply copy another folder to the same place on Goose, but use the suffix "-02" and then "-03" etc. in place of the "-01" in the folder name of the original submission.