Ga naar de inhoud
Nederland

Zo werkt het softwaresysteem dat onze stemmen telt

Medewerkers tellen de stemmen voor de Tweede Kamerverkiezingen 2012. Beeld © ANP

De overheid gebruikt software om onze stemmen te tellen en de verkiezingsuitslag te berekenen. Hoe werkt dit systeem en op welke punten hebben beveiligingsonderzoekers kritiek?

Als burger weet je niet beter dan dat je het stembiljet op 15 maart in de grote container stopt. Maar wat er daarna gebeurt, is voor velen een mysterie.

Al die stembiljetten worden maar één keer met de hand geteld: als ze uit de container van het plaatselijke stembureau worden gehaald. Zodra de stemmen zijn geteld, worden de resultaten ingevoerd in het Ondersteunende Software Verkiezingen (OSV), het softwareprogramma van de Kiesraad.

Vanaf dat moment gaan de tellingen digitaal: de resultaten worden op een onbeveiligde usb-stick gezet en van het gemeentelijk stembureau naar één van de twintig kantoren van de kiesringen gebracht. Daar worden de sticks verzameld, één voor één in de computer gestopt en met de OSV-software het totaalresultaat van de kiesring uitgedraaid. Dit proces wordt nog een keer herhaald bij het centraal stembureau.

Beveiligingsonderzoeker Sijmen Ruwhof, die het systeem op verzoek van RTL Nieuws heeft onderzocht, is geschokt dat de OSV-software zo enorm veel kwetsbaarheden bevat. Zijn bevindingen zijn gecheckt door beveiligingsonderzoeker Ger Schinkel.

We lichten de twee belangrijkste problemen uit.

1: De computers waarop de software draait zijn niet veilig

De OSV-software draait op computers waar nauwelijks beveiligingseisen aan worden gesteld. Een pc kan bijvoorbeeld op Windows XP draaien en met het internet zijn verbonden. Windows XP is sinds april van 2014 niet meer van updates voorzien.

Computers zijn kwetsbaar voor hackers als ze op oude software draaien en met het internet verbonden zijn. De Kiesraad raadt aan om de wifi-verbinding tijdens het gebruik van de software uit te schakelen, maar dan kan de malware al door een hacker op het apparaat zijn geplaatst.

Ook is een aanval via de onbeveiligde usb-stick mogelijk. Daarop kan door de aanvaller malware worden geplaatst die zich automatisch op de computer nestelt zodra de usb-stick erin wordt gestoken.

Stemresultaten aanpassen

De malware kan de stemresultaten in de OSV-software aanpassen. Zodra de cijfers zijn ingeladen, kunnen hackers de resultaten naar eigen wens aanpassen en een partij bijvoorbeeld een zetel meer of minder geven.

De software werkt met simpele cijferlijsten, een soort Excel-bestanden, die tijdens het invoeren van alle gegevens tijdelijk op de C-schijf wordt geplaatst. Dit bestand is niet beveiligd en de OSV-software waarschuwt niet als de cijfers worden gemanipuleerd. De uiteindelijke uitdraai van de gefraudeerde resultaten oogt tevens legitiem.

Thumbnail

Een screenshot van het OSV-programma (beeld: Kiesraad)

Ondanks de belangrijke rol van de OSV-software is het programma nog nooit door een onafhankelijk beveiligingsbedrijf onderzocht op kwetsbaarheden, stellen experts. Ook is het programma sinds 2009 niet meer aanzienlijk geüpdatet.

Er zijn wel toetsingsrapporten opgesteld in 2009, 2015 en 2016 (pdf), maar dit zijn functionele testen: of de software in de praktijk werkt.

2. De stemresultaten zijn slecht beveiligd

De enige beveiliging die bij de OSV-software plaatsvindt, is het controleren van de unieke code van het bestand met de stemresultaten. Deze unieke code wordt ook wel een hash genoemd.

De hashcode van het bestand wordt door de medewerker van het stembureau uitgeprint en samen met de usb-stick naar de volgende locatie gebracht. Daar wordt gecontroleerd of de hashcode van het digitale bestand op de usb-stick overeenkomt met die op papier.

Deze beveiliging is een wassen neus, menen de beveiligingsonderzoekers.

SHA1

Allereerst maakt de OSV-software gebruik van het sterk verouderde SHA1-algoritme om hashcodes te genereren. SHA1 wordt al ruim tien jaar door experts afgeraden om te gebruiken, omdat het gemakkelijk te kraken is.

Wat nog erger is: de usb-sticks waar de stemresultaten op worden geplaatst zijn niet versleuteld. De persoon die de usb-stick naar de volgende locatie brengt, heeft daarom de mogelijkheid om de stemresultaten aan te passen.

"Het aanpassen van de stemresultaten is net zo simpel als een cijfertje veranderen in een Excel-document", zegt Ruwhof, die de software op verzoek van RTL Nieuws heeft onderzocht.

Thumbnail

Op deze manier wordt een hash gecontroleerd (beeld: Kiesraad)

Nieuwe hashcode uitprinten

Door het aanpassen verandert de hashcode van het bestand met de stemresultaten. Dat vormt geen probleem: de nieuwe hashcode kan gewoon door de fraudeur worden uitgeprint en ingeleverd.

"Door de usb-stick niet te beveiligen en de hashcode alleen uit te printen, is het simpel om onopgemerkt fraude te plegen", stelt Ruwhof. Hij noemt een mogelijke situatie waarin een medewerker van het stembureau door een inlichtingendienst wordt afgeperst om de stemresultaten onderweg aan te passen.

Of dat nog niet genoeg is, zijn vrijwilligers van de Kiesraad in de meeste gevallen niet verplicht om de hashcode te controleren. Ze kunnen in de OSV-software simpelweg op het knopje 'ja' drukken om vervolgens de stemresultaten in te laden.

Zo kan het verkiezingssysteem veiliger

1. Handmatige telling
De Duitsers gebruiken dezelfde software om de verkiezingsuitslag te bereken. Daar wordt de softwarematige telling als een voorlopig resultaat behandeld.

Pas als alle papieren stembiljetten met de hand zijn nageteld, een proces dat zo'n drie weken duurt en waar geen OSV-software aan te pas komt, is de uitslag definitief.

2. Airgapped computers
De OSV-software zou alleen op computers die nog nooit met het internet verbonden zijn geweest mogen worden gebruikt, zo zeggen de beveiligingsonderzoekers.

Een zogeheten airgapped computer verkleint de kans op een infectie met malware aanzienlijk, omdat hackers veel lastiger toegang kunnen krijgen tot het apparaat.

3. Digitaal ondertekenen van de resultaten
De stemresultaten kunnen worden aangepast zonder dat de OSV-software dit door heeft. Door de resultaten standaard te ondertekenen met een digitale handtekening van de gebruikte OSV-software, wordt het moeilijker om de cijfers te manipuleren.

4. Versleutelde usb-sticks
De usb-sticks waarop de stemresultaten worden opgeslagen moeten worden versleuteld zodat ze niet door jan en alleman kunnen worden geopend en aangepast of dat er malware op kan worden geplaatst.

Een voorbeeld daarvan is dat de usb-stick alleen kan worden geopend met de OSV-software, en niet door een andere computer.

5. Gebruik SHA512 en forceren hashchecks
In plaats van het sterk verouderde SHA1 te gebruiken, zou de OSV-software SHA512 moeten inzetten voor het genereren van hashcodes.

Daarnaast moeten medewerkers van stembureaus altijd worden geforceerd om de hashcode te checken, bijvoorbeeld door gehele code in te voeren. Als de hashcode niet overeenkomt, moet het inladen van de resultaten worden geblokkeerd.