In comp.os.linux.advocacy, resonator80
<w.edelstein RemoveThis @gmail.com>
wrote
on Sun, 15 Jul 2007 15:09:43 -0000
<1184512183.628120.165180 RemoveThis @q75g2000hsh.googlegroups.com>:
> Computerized voting systems (aka DREs or Direct Recording Electronic)
> must be based on an operating system, for example, Windows or Linux.
>
> Linux has the advantage of being open so that all the source code can
> be open. Windows source code will not be opened to anyone.
>
> Some people have argued that the basic Windows operating system can
> remain secret as long as the voting application program (i.e. C,
> Python, etc) is open.
>
> Here are some questions about such an arrangement.
>
> 1. Could someone tamper with the Windows OS or put in some additional
> code that would not be found in an inspection of the application
> program that could alter the results?
>
> 2. Could viruses and other malware affect the OS and, ultimately, an
> election without its effects being detected by examining the
> application program?
>
> Any other comments are welcom.
>
> Thanks,
> Bill Edelstein
> Baltimore, MD
>
You have completely missed a fundamental (and unfortunate)
flaw in electronic voting machines. Regardless of OS,
hardware, or method, there's a disconnect on what is
displayed on the screen -- the voting choices, and the
user's selections among them -- and what is recorded.
One hopes this recording is done honestly -- and it is
possible that open source will be sufficient; I'd have
to think about it. I doubt it; Murphy was an optimist.
The vote is very easily lost (which is why TCP has
retransmission as part of its spec, for example).
And even if the vote is successfully transfered to tally
machine, the tally machine might be broken in a rather
interesting way. Sequoia in particular is the machines we
use around here. I'm not sure regarding their OS basis,
but from a voter's viewpoint a card (similar to a credit
card in general form factor, although it doesn't use
a magnetic stripe; it uses some sort of gold thing in
the middle) is inserted into the machine, the user votes
using a touchscreen, the card is ejected and inserted into
a tally box. Diebold could be using a similar system,
or simply network their votes into a central domain node
(I don't know). Either way, the user has no idea what's
going into that tally box or domain node, does he? One
*hopes* it's his voting selections...
At least with the old system -- the user wielded a small
awl through a plastic device that had flippable, numbered
holes; the Hollerith-like card is then boxed and read by
a card reader -- a recount is possible, and the user can
check the vote on the card, if he looks carefully at the
punch holes (conveniently numbered on the ballot proper,
if in small print). A borked or altered card reader can
be replaced if the vote is in dispute, and one discovers
the tampering.
One could still gimmick the system, of course, by losing
boxes filled with ballots from selected precincts,
or stuffing them, but that's a given no matter what
system one uses, though stuffing might be alleviated by
cross-checking; in my precinct each voter is identified
in a master book and is required to sign in -- which has
its own problems if a citizen is homeless. Not sure
regarding ballot/vote back-traceability; if Smith knows
Jones voted for Bob as opposed to Steve, blackmail could
ensue in extreme cases. Not a good thing.
The Canadians have an even simpler system, as I understand
it, similar to old "fill-in-the-bubble" mark-sense tests:
vote in the indicated square. No numbers required on the
ballot itself, though one has to contemplate such issues as
printing costs (since the ballot changes every election).
The votes are then hand-tallied.
Of course Canada isn't quite as big as the US in population,
even if they are bigger than the US in land area.
If one wants to contemplate even more sinister variants,
consider replacing the voting machine with an order
tracking system, which could record orders the user didn't
really want -- and then transfer funds from his account
to the vendors'. This sort of problem is obviously not
limited to electioneering/voting fraud.
There is also, of course, the fundamental disconnect
between the source code, which a human can understand
without much difficulty, if he is properly trained, and
the binary, which requires a specialist (or at least
a card which indicates what every numeric code does;
such cards might be obtained as PDFs from Intel but aren't
horribly enlightening to someone who doesn't understand
the basics of microprocessors and how machine code
is represented internally). Gentoo is an interesting
distro, from a Linux standpoint, and is one of the few
which requires the source code to be downloaded into a
user's computer and compiled on site, although special
considerations are available for some packages such as
OpenOffice -- because it's so big -- nVidia drivers, and
some proprietary games.
(AFAIK, most distros serve up prepackaged binaries.)
Scripting languages might be of some help there, if the
interpreting engine is thorougly verified -- but the
interpreting engine is by necessity binary. Ideally,
it would be structured roughly as a ballot, as in the
following hypothetical example:
vote_for[1]
Bob Jones
Steve Smith
Andrew Johnson
Mork from Ork
end vote
vote_for[1-3]
....
end vote
rank_vote
....
end rank_vote
pick_vote
"proposition 1: should government assess an additional
2% tax on landowners for environmental cleanup?"
"proposition 2: should government sell $100M of bonds for
the purposes of school improvement?"
"proposition 3: ..."
....
end pick_vote
(The third section might require some explanation; it
is designed to allow for "instant runoff" elections.
Basically, one indicates one's preferences by ordering
candidates: one might pick as first preference Steve Smith,
then Bob Jones, then Mork from Ork, then Andrew Johnson.
The tally system takes the ranking into account if one
candidate does not get a majority. The system is somewhat
experimental, but AIUI is already in use in some areas.)
The scripting language in this case looks a lot like
a simple, somewhat specialized GUI design system.
Vote-for-1 is a simple option menu/combobox; if one
wants write-in votes an editable combo box is possible.
(Most systems will probably use checkboxes or radio
buttons, which looks like a more traditional paper ballot.)
Vote-for-N is a multiple choice list with some constraints.
Rank voting is the most complicated, but GUI systems are
easily developed. Yes or No on propositions is a simple
check box, although I suspect in most systems one checks
one of two radio buttons, one marked Yes, the other No.
I'll admit I'm beginning to sound like a Luddite, but
technology is not always the best solution, though it
depends on the problem.
Welcome to the New World Order.
--
#191, ewill3 RemoveThis @earthlink.net
Useless C++ Programming Idea #110309238:
item * f(item *p) { if(p = NULL) return new item; else return p; }
--
Posted via a free Usenet account from
http://www.teranews.com