( 45 points) You are working for a company that is proposing to
develop a new electronic election system to replace the systems
currently in use throughout the United States. One goal of this
system is to speed up the vote talying phase of an election, providing
almost instantaneous results. It also hopes to eliminate, except in
very clearly defined cases, the need for a manual recount. Voters
must be able to vote from any official poling place in their state of
residence. Please note that you are not being asked to allow voting
from home - as there are many non-technical issues that make voting
from home problematic.
Among the functions to be provided by this system are the managing of
voter lists, determining which ballots each voter is to receive,
presenting that ballot to the voter, and recording the votes. The
system must maintain voter privacy to the greatest extent possible,
but the accurate and auditable tally of votes takes precedence. For
example, if a voter shows up but is not listed as a registered voter,
the voter must be provided with a means to cast a "provisional"
ballot, so that their vote may be counted after the legitimacy of the
voter can be ascertained.
The tallying of the results of the election must be scalable. More
importantly, the casting of votes must be scalable and highly
available, so that no one is prevented from voting during the period
of the election. The system must be resistant to denial of service
attacks intended to prevent voters at particular voting places from
casting there votes - and even more imporantly - from having their
votes not-counted once they have been cast.
- (10 points) Describe the atomicity requirements for your system.
What constitutes a transaction in the system? What is the commit
point of each transaction. How would you preserve the permanence of a
vote once it has been cast and committed?
- (10 points) Where will ballots (the forms to be filled in) be
stored in your system. Where will details of the voted balots be
stored? Explain your reasons for your choice? How does your choice
affect the performance, availability, and security of the system?
- (10 points) List the data to be protected in your system, and the
kinds of protection needed for the different kinds of data. List the
threats posed to such data and describe countermeasures appropriate
for defending against those threats.
- (10 points) The software you develop will be certified and
distributed to equipment at the poling places. How will you design
the system as a whole to prevent modifications to the software that
might compromise the integrity of the election?
- (5 points) There is the possibility that the software for accepting
ballots may have bugs, or might still have been modified despite your
best measures described in parts (a) through (c). What means might
you provide in the system for going back and looking at the individual
votes cast and performing a "re-count" if such problems are found in
the program upon examination after the election. Which of the
security service described in class does this ability relate to?