Electronic Voting System (Phase III): Trapdoors and Trojans

 

Due: 10:00am Tuesday, April 20, 2004

General Instructions. Students are required to work together in groups of size 3 or 4. An assignment submitted on behalf of a "group" having fewer than 3 students will receive a grade of F. All members of the group are responsible for understanding the entire assignment and will receive the same grade.

You need not work in the same group for this phase as you did for Phase II.

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.


Purpose of Assignment

Losing a needle in a haystack is easy; finding one is not. The same holds for planting versus detecting trapdoors in software systems. However, unlike lost needles in haystacks, experience in planting trapdoors does provide a useful background for finding them. This assignment will help you get that background.

In doing this assignment, you are not restricted to using your own group's Phase II implementation. Feel free to use a working implementation from another group, if you feel this would simplify your task.

The Task at Hand

A variety of behaviors would constitute a compromised election:

For this phase, modify a working Phase II implementation in a way that permits attackers to compromise elections in one or more of the ways outlined above, where your modifications to the source for Phase II are not readily apparent to somebody visually inspecting the source code or testing the system. (Assume inspectors do not have access to the source for the Phase II you started with, so running diff or some similar tool is not an option for them.) This exercise should demonstrate just how easy it is to sabatoge our electronic voting system from the inside by creating infrastructure that allows elections to be compromised.

Design Notes

Work within the following structure:

Submission and Grading

Submission Procedure. Create a .zip file containing the files you wish us to grade. Then submit this .zip file using CMS Your .zip should contain the following files (at least):

TEAM.txt which contains the names (and net-ids) for all team members. Also, for each team member give a 1 or 2 paragraph description of the tasks this team member performed and the number of hours this required.

README.txt which contains:

The C# source needed to compile and test your system.

Any other files (e.g., files containing public keys) required for the operation of your system.

Grading. The quality of a trapdoor is defined by (i) how well hidden it is so detection is unlikely and (ii) the extent to which it helps an attacker compromise an election. In the behavior list for compromised elections that is given above, earlier elements are more serious than later ones; higher-quality trapdoors are those that facilitate more-serious compromises.

Part of this assignment involves developing an aesthetic for the trade-off between the power of a trapdoor and the ease of hiding that trapdoor from inspectors. In any real deployment, if an inspector found even a single trapdoor, then the voting system would be disqualified from service. So opting for fewer and more subtle trapdoors is the prudent strategy---and our grading will reflect that.

In light of these considerations, your grade on this phase will be determined by the quality of the trapdoors you create. Think in terms of designing at most five trapdoors. However, grades will not necessarily correlated with the number of trapdoors you provide. Low-quality trapdoors---because they are not well hidden or are ineffectual---will be grounds for assigning a lower grade to this phase (even to the point of detracting from high marks you might earn by also providing high-quality trapdoors).