Wanneer vertrouwen wij stemcomputers wel?

Steeds meer verontrustende berichten over
electronisch stemmen bereiken de media.
Stemcomputers die gemakkelijk te manipuleren
zijn, waarvan door middel van de reststraling op
afstand is vast te stellen wat iemand stemt, die
urenlange storingen veroorzaken zodat je niet
kunt stemmen, en waar wellicht al fraude mee
gepleegd is.  Er gaan dan ook stemmen op om die
machines volkomen transparant te maken:
hardware- en software-specificaties moeten voor
iedereen toegankelijk zijn.  Idee erachter is
dat de burger dan in staat is om de gang van
zaken bij het democratisch proces te kunnen
controleren.  Maar kan dat wel?

Als producenten van stemcomputers hun
specificaties vrijgeven geeft dat problemen.
Alles openbaar opent mogelijkheden voor anderen
om op basis van het al gedane werk vooral
goedkopere stemcomputers op de markt te brengen.
Concurrentie-vervalsing dus.  Ik kan me levendig
voorstellen dat bedrijven dat niet zomaar doen.
Ook met fikse tegenwerking kun je met het
apparaat in de hand, plus IT-activisten en
veel bloed zweet en tranen al heel wat bereiken,
zoals een recent reverse engineering project van
stemcomputers door verontruste computer
deskundigen laat zien.

Maar stel nu eens dat stemcomputer-software wel
beschikbaar wordt gesteld.  Zou dat helpen?
Daarvoor moeten we terug naar 1997 toen tijdens
de door mij voorgezeten Working Conference on
Reverse Engineering het zogenaamde Reverse
Engineering Demonstration Project werd
aangekondigd.  Dat project had tot doel om
gezamelijk met wetenschap en industrie te
demonstreren wat je uit software kon halen met de
tools en technieken die door het veld ontwikkeld
en gebruikt werden.

En wat kon je nu beter gebruiken als vehikel voor
zo'n project dan software van een stemcomputer?
Zo gezegd zo gedaan.  De software van WELTAB III,
een zogenaamd Election Tabulation System, werd
beschikbaar gesteld voor het project.  WELTAB III
stamt uit de eind 1970er jaren en was eerst in
Fortran geschreven.  Dit systeem evolueerde ten
minste tot 23 oktober 88 omdat dat de laatste
update datum is die ik zo gauw kon vinden.  Een
en ander resulteerde in een set van C-programma's
met de daarbij behorende scripts en platte (voor
iedereen leesbare) gegevensfiles.  In totaal 232
files, in 5 directories, werkend op PCs via
netwerkverbindingen, met ponskaartlezers als
interface tussen stemmer en computer.  Het doel
was om te illustreren wat je met de verschillende
tools en technieken die in het veld aanwezig
waren  kon "zien" aan de software.

Een specifieke focus op fouten, malversaties, of
schending van wet- en regelgeving was in die tijd
niet meegenomen.  Ik heb de code net even bekeken
met die pet op.  Wat meteen opvalt is, dat
ondanks het voor deze tijden kleine archief,
860160 bytes aan source code, read-me's en
scripts, het niet gemakkelijk is om overzicht te
krijgen van wat er nu echt gebeurd in dit
systeem.  Het begint al met een Word file:
OPERATNS.DOC.  Als ik die probeer te openen krijg
ik een keuzemenu waarin ik een conversie keuze
kan aangeven.  Alles is er, van Text Only totaan
een Aziatische versie van Word, maar de file
leesbaar krijgen ho maar.

Unix biedt uitkomst en we kunnen waarnemen dat er
een master station en verschillende data entry
stations zijn.  Dat doet vermoeden dat er ook
remote data verkeer moet zijn.  Inderdaad:  ik
tref een pget commando aan in verschillende
scripts.  Dat werd hoogswaarschijnlijk gebruikt
om files over te halen via het file transfer
protocol (ftp).  Daar niets te bekennen van
passwords of dataverkeer over encrypted lines,
danwel versleutelde gegevens.  Gegevens op de
data entry machines plaatsen lijkt dus gewoon
mogelijk.

Doorzoeken van de files op woorden als error,
mistake, correct, en meer levert interessante
informatie op.  Er blijken allerlei quick-fix
programmaatjes te zijn.  Men kan kiesdistrict
resultaten corrigeren tijdens "count night entry"
en als gevolg van "changing tables".  Bovendien
kan men namen van kandidaten corrigeren, veelal
veroorzaakt door write-ins (voorkeursstemmen).
Dat gaat met gebruikersinteractie gepaard want in
de code zie ik dat daarvoor een string naar het
scherm geschreven wordt: "Enter new name".  Er is
dus support om (remote) overal aan te
peuteren---uiteraard bedoeld voor het goede, maar
geschikt voor het kwade.

Voorkeursstemmen zijn tot op de dag van vandaag
een probleem in stemmachines: "It only took me a
minute to discover a foolproof way to crack this
code, and using this, someone intent on bribing
voters to vote in a particular way could simply
assign a nonsense name to each voter, asking them
to write in that person's name for a specified
minor office in order to force the public
disclosure of their ballot in order to prove that
they had earned their bribe."  Aldus een
getuigenis van een expert voor de Amerikaanse
overheid op 22 Mei 2001 die een stemcomputer uit
2000 had doorgelicht.  Probleemloos was en is het
mechaniekje dus niet.

Grappig is dat bij het WELTAB archief ook van een
aantal districten in Boston de live data van een
verkiezing aanwezig zijn.  Het gaat om een hele
trits zaken maar onder andere de
presidentsverkiezingen tussen Ronald Reagan en
Walter Mondale.  Het systeem produceert een
officieel en een niet-officieel cumulatief.  We
zien voor 19 kiesdistricten 2061 Mondale stemmen
en 3674 voor Reagan.  Officieel zit het ietjes
anders: eentje minder voor Mondale, nog steeds
3674 voor Reagan, 55 versnipperde
vorkeursstemmen, vier stemmen op John A. Doe, en
twee op Mary Smith.  Die laatste twee zijn
fictieve namen zoals wij Jan Modaal gebruiken.
In totaal dus 1.05% van de stemmen waar iets mee
is.  Er zijn meer stemmen officieel uitgebracht
dan officieus, en die ene stem minder voor
Mondale, en wat doet Jan Modaal plus echtgenote
daar?  Kortom, toen kon je ook al vele vragen
stellen.

Er worden al decennia lang door computer
deskundigen vragen gesteld bij stemcomputers, hun
hardware, hun software, hun fouten, falen, en
garanties.  Veelal is het de IT-elite die hier
spreekt, en de politieke elite die niet
luistert.  De producenten gebruiken het argument
van kinderziektes, incidenten, en andere
bagatelliserende bewegingen.  Maar dat gaat al
lang niet meer op omdat deze problemen als zo
lang rondzingen.  Reverse engineering van de
hard- en software zou kunnen bijdragen aan
transparantie, en dus garanties.  Blijf ik toch
met een dilemma zitten:  wie vertrouwt er nu een
IT-er die zegt dat een systeem nu wel goed
is?  Een rood potlood is zo gek nog niet.

X

Prof. dr Chris Verhoef is hoogleraar informatica
aan de Vrije Universiteit in Amsterdam.  Hij
schrijft maandelijks een column in AG II.

Meer weten over de wondere wereld van ICT 
in Jip en Janneke taal? Ga dan naar de
knipselkrant van Chris Verhoef

Prof. dr Chris Verhoef is hoogleraar informatica 
aan de Vrije Universiteit in Amsterdam.  Hij
schrijft maandelijks een column in AG II.  hij is
te bereiken via email:  x@cs.vu.nl.  Deze tekst is 
copyright SDU.  Niets van deze uitgave mag zonder
schriftelijke toestemming van de uitgever worden
overgenomen of worden gepubliceerd.