[EM] CORRECTING Black box voting repost re how HAVA imploded
Dave Ketchum
davek at clarityconnect.com
Fri Feb 2 02:18:48 PST 2007
On Thu, 01 Feb 2007 08:10:49 -0500 Michael Poole wrote:
> Dave Ketchum writes:
>
>
>>>>Are there ways to improve DREs so that they can be made secure and
>>>>fully auditable? NIST and the STS do not know how to write testable
>>>>requirements to satisfy that the software in a DRE is correct.
>>>
>>
>>If they ain't that smart, nor even smart enough to hire needed smarts,
>>this should have been admitted, to permit intelligent response.
>
>
> How would you write testable security requirements for voting
> software? Requirements are generally written as black box tests,
> since they guide the design process. In my experience with formal
> requirement specifications, the only testable kind of requirement is
> of the kind "if X happens, the unit must do Y". You cannot perform
> black-box testing for requirements of the form "the unit must not do Y
> except as specified in this document" (for example, Y could be to
> record a vote for candidate 1) -- you have the usual difficulty with
> proving a negative.
Ok, demands better be such as can be tested. Without getting too formal:
Better have a list of races, with candidates in each.
If voter votes for D in race xx:
Unless there is a race xx with D; politely reject.
If method is Approval, record the vote; done.
If method is Plurality and this would be an overvote; politely
reject.
Record valid Plurality vote; done.
Since method is not one of above; CRY.
>
> Some companies have done rigorous proofs of software correctness for
> applications like money-holding smart cards (including proofs for the
> related protocols). This is a more-constrained problem than
> electronic voting -- primarily in the complexity of I/O channels.
> Proving correctness for the money cards still required a lot of
> research in formal methods, and a lot of time and money to apply the
> formal methods to the software. The last time I looked at the
> literature on software proofs, something on the scale of DRE voting
> could not be verified by proof.
Let's take a couple minutes to think of breaking the load into packages
such that each package is simple enough to be testable, yet do useful work:
M - master computer, which does what needs centralizing such as
maintaining master data.
T - as many task computers as may be useful, each given a testable
task.
DVD(s) - owned exclusively by M.
K - keyboards - M must have one, some Ts may have their own.
Shared memory - M owns and can read and write; Ts can only read.
T->M Data - each T can, as permitted, send data up.
T-DRE display - this T owns such a display and keyboard.
T-disabled - one or more to interface with voters with special needs.
Internet access - I would give M such - packaged such that M can
prevent unacceptable transmissions.
Vote printer - if such is demanded, M owns.
Paper ballot scanner: I mention them because absentees and some
others would do paper ballots - not clear if this would be part of the
package, or separate, but it needs doing.
Proving - this must be thorough for M. Less for he Ts, for they are
not able to create as much trouble.
>
> Code inspections and tests written for the code can satisfy security
> concerns. It takes a lot of time and money, and can take an enormous
> amount of both if the software is not designed for testability from
> the start. That kind of thing is why other highly-regulated computer
> systems -- including most of what you cited -- cost six figures and up
> per unit. (ATM machines are relatively cheap, but the usual arguments
> apply about why voting machines are harder than ATM machines.)
>
Only need about 3 voting machine builders - thus each with enough volume
to talk about reasonable pricing.
What I wrote above is into designing for testability. Does not require
new code for everything - should be usable code available for such as
read/write DVDs, etc.
>
>>>> The
>>>>use of COTS software in DREs causes additional problems; having, for
>>>>example, a large opaque COTS operating system to evaluate in
>>>>addition to the voting system software is not feasible.
>>>>
>>>
>>Obvious response to this is simpler: If some COTS is too complex to be
>>testable at tolerable expense, forbid its use.
>
>
> Forbidding use of COTS software requires DRE machine vendors to
> implement their own device drivers, user interfaces, network protocol
> stack, and whatever else they may need. Considering both development
> and testing costs, do you think that will have tolerable cost?
I am after a middle ground. One thing I was after with the T computers
was tasks that could be borrowed from COTS.
>
> Michael Poole
--
davek at clarityconnect.com people.clarityconnect.com/webpages3/davek
Dave Ketchum 108 Halstead Ave, Owego, NY 13827-1708 607-687-5026
Do to no one what you would not want done to you.
If you want peace, work for justice.
More information about the Election-Methods
mailing list