Kiesraad vindt geen onregelmatigheden bij gebruik van OSV-verkiezingssoftware

De Nederlandse Kiesraad heeft na de gemeenteraadsverkiezingen eerder deze maand meerdere steekproeven uitgevoerd om de werking en resultaten van de gebruikte software te verifiëren. Daarbij zijn volgens de Kiesraad geen onregelmatigheden gevonden.

De Kiesraad, die verantwoordelijk is voor de verkiezingsuitslag, schrijft dat het bij een onbekend aantal gemeenten een controle heeft uitgevoerd. De Kiesraad keek naar de werking van de software die tijdens verkiezingen wordt gebruikt, de Ondersteunende Software Verkiezingen of OSV2020. "Bij de gemeenteraadsverkiezingen zijn extra controles uitgevoerd op de vaststelling van de uitslagen", schrijft de Kiesraad. "Op grond van de ontvangen verslagen van de controles kan worden vastgesteld dat de software zoals uitgeleverd door de Kiesraad correct heeft gefunctioneerd." De instantie heeft van tien gemeenten waar het informatie had opgevraagd nog geen controleverslagen gekregen.

Bij de steekproef controleerde de Kiesraad of de uitslag van de OSV2020-software overeenkwam met de met de hand getelde uitkomsten van stembureaus. Tijdens de verkiezingen tellen stembureaus de uitslagen met de hand, maar die uitslagen worden vervolgens vastgelegd in het programma OSV2020. Die bundelt de resultaten van alle stembureaus op gemeenteniveau en berekent de verdeelsleutel voor kandidaten. Dat proces kreeg in de afgelopen jaren regelmatig kritiek, met name van de Stichting Tegen Hackbare Verkiezingen. Dat collectief van privacy-experts en ethisch hackers waarschuwde dat er binnen dat proces een theoretische mogelijkheid bestond dat de resultaten van stembureaus niet overeenkomen met de resultaten die uiteindelijk naar de Kiesraad worden gestuurd. Zo zou er ergens in de keten kunnen worden geknoeid met de software. Dat is vooralsnog alleen een risico; er zijn geen aanwijzingen dat zoiets echt gebeurd is.

De stichting ging voorafgaand aan de Tweede Kamerverkiezingen in 2021 in gesprek met de Kiesraad over de risico's. Die beloofde na die gesprekken steekproeven te gaan houden. Daarbij worden er specifiek twee controles uitgevoerd. Een daarvan kijkt naar de totale optelling van stemmen, het andere naar de zetelverdeling van kandidaten. "In geen van de ontvangen verslagen is een onverklaarbaar verschil geconstateerd bij de optelling van de stemaantallen of de zetelverdeling", schrijft de Kiesraad. Dat proces werd eerder ook uitgevoerd tijdens de gemeentelijke herindelingsverkiezingen die in november 2021 plaatsvonden in een handvol gemeenten.

Het ministerie van Binnenlandse Zaken begon eerder al een aanbesteding voor een opvolger van de OSV2020-software. Dat Digitale Hulpmiddel Verkiezingen wordt nog ontwikkeld, maar is eveneens controversieel. Die software is namelijk gecentraliseerd en stuurt via internet resultaten naar een centrale server die door de Kiesraad wordt beheerd. Tweakers schreef daar vorig jaar een achtergrondartikel over.

Door Tijs Hofmans

Nieuwscoördinator

28-03-2022 • 13:04

36

Reacties (36)

36
35
28
7
0
1
Wijzig sortering
Ik zou het wel aardig vinden als de resultaten van de stembureaus niet alleen digitaal naar de centrale server van de kiesraad worden gestuurd maar ook tegelijkertijd per stembureau op internet worden gepubliceerd, desnoods op Twitter of Mastodon of iets dergelijks. Je houdt dezelfde snelheid maar iedereen kan zelf de resultaten van alle stembureaus bij elkaar optellen en vaststellen dat er niet tussendoor mee gesjoemeld is.

Theoretisch zou je natuurlijk bij een individueel stembureau kunnen sjoemelen voordat de uitslag überhaupt lokaal opgeteld is. Alleen hebben we in Nederland zo'n 10.000 stembureaus die ieder dus maar een minuscule bijdrage leveren aan de totaaluitslag. Je zou dan dus duizenden stembureaus moeten corrumperen voordat het enige invloed heeft op de uitslag

Ik heb dat ooit eens met de presidentsverkiezingen in Nigeria gezien. Daar moeten de voorzitters van ieder kiesdistrict na het sluiten van de stembus naar de hoofdstad Abuja reizen om de uitslag van hun regio publiekelijk voor te lezen voor de kiesraad. Leuk voor de transparantie maar iedereen ging er vanuit dat er tijdens de reis naar Abuja (toch al gauw een dagdeel) flink met de stemmen geknoeid werd. Nigeria is natuurlijk een ontzettend corrupt land. Dat hebben ze toen opgelost door iedere voorzitter, nog voor ze in auto of vliegtuig naar Abuja stapten, op social media hun uitslag te laten voorlezen voor een menigte met smartphones. Ieder knoeien tussendoor zou direct opgevallen zijn.

Nou heeft Nederland natuurlijk niet de problemen (of het wantrouwen) die Nigeria wel heeft maar in het kader van de transparantie lijkt het me een mooie stap.
Als vrijwilliger op het stemburo bij de afgelopen verkiezingen heb ik van dicht bij meegemaakt hoe het gaat:
Tijdens het stemmen worden de stemmers geteld dus is er gekend hoeveel stemmen er in de stembus moeten zitten. Ook wordt in de gaten gehouden of mensen hun stembiljet mee naar huis nemen (dat mag) of in de stembus doen (zodat ze wel telt).

Dan worden de stemmen gesorteerd op partij. Daarna worden ze per partij geteld. Die telling wordt naar een centraal punt doorgegeven via een speciale app, de resultaten hiervan zie je op tv. Daarna worden alle stemmen per persoon binnen de partijen geteld. Deze details gaan ook via de app naar het centrale punt. De resultaten van deze telling zijn de details waar je de volgende dag van hoort.

Bij deze tellingen worden ook de totalen berekend en die moeten onderling kloppen. Tussen het aantal stemmers en het aantal stemmen kan/mag een kleine afwijking zijn maar dat moet bijna per stem verklaard worden. Tussen de verschillende tellingen mag geen stem verschil zitten.

Bij dit alles wordt ook een papieren administratie bijgehouden: lijsten per partij met hoeveel stemmen er in welk vakje zijn geplaatst. Die papieren administratie worden door de voorzitter van het stemburo naar een centraal punt gebracht. Voor zover mij bekend worden deze papieren resultaten nog een keer ter controle opgevoerd.

Uiteindelijk worden alle stemmen bij de stemburo's gesorteerd in zakken weer in de stembus gedaan, verzegeld en naar een centraal punt gebracht om eventueel te hertellen. Dat is in sommige gemeentes gebeurt de laatste keer.

Dus ja, er is mogelijkheid tot malversaties. Maar je moet van goede huize komen om daar tussen te komen en om de getallen kloppend te krijgen.

Goed dat deze zaken op alle manieren worden nagezien. Ook goed dat de gebruikte software wordt gecontroleerd en nagezien, zowel op code basis als op basis van steekproeven op de gegevens zelf.

Enneh, ja, iedereen kan en mag op alles toezien en mee kijken. Op 1 stemburo zitten 4 of 5 vrijwilligers die op 1 of andere manier zijn gescreend en getraind.

Hier in NL heb ik er wel vertrouwen in zolang de stemming maar (mede) op papier is zodat ze ook kan worden nagekeken. Ooit heb ik elektronisch gestemd, toen in goed vertrouwen. Maar als computer techneut, tweaker en nerd wil ik het graag op 1 of andere manier op papier houden zodat het zonder computer kan worden nagezien.
Deze keer werden bij ons in Den Haag de tellingen per persoon niet via de app naar het centraal stembureau van Den Haag verzonden.
Het papieren proces-verbaal waarin wel alle tellingen worden genoteerd is leidend bij het vaststellen van de uitslag, de app is alleen indicatief voor het snel publiceren van de opkomst en de uitslag per partij.
Een kopie van elk papieren proces-verbaal staat online (wel zonder de handtekeningen van de stembureauleden).

[Reactie gewijzigd door Brechtje op 24 juli 2024 00:02]

Ik zou het wel aardig vinden als de resultaten van de stembureaus niet alleen digitaal naar de centrale server van de kiesraad worden gestuurd maar ook tegelijkertijd per stembureau op internet worden gepubliceerd
Doen de gemeentes ook, de PV's worden door de gemeentes gepubliceerd op eigen site.

https://www.kiesraad.nl/v...en/uitslagen-per-gemeente
maakt het opensource :X

[Reactie gewijzigd door himlims_ op 24 juli 2024 00:02]

Ik ben geen java programeur, maar als ik er snel doorheen lees, dan zie ik dat het van origine software is voor de Duitse markt, en dat dit is aangepast naar een Nederlandse variant

Ook mis ik totaal hoe je een build zou kunnen maken van de sourcecode, mogelijk is dat voor een java programeur super simpel, maar ik zou niet weten waar te beginnen.

Voorbeeld van de code
https://ibb.co/yQnTzDJ

De leesmij.txt bevat enkel
# Toelichting bij broncode OSV2020-U versie 1.4.3

Bij de gemeenteraadsverkiezingen van 16 maart 2022 heeft de Kiesraad versie
1.4.3 van de OSV2020-U software beschikbaar gesteld aan de centraal
stembureaus van de gemeenten. Hierbij treft u de broncode van OSV2020-U aan.

## Onderzoeksrapporten

Externe partijen hebben onderzoek gedaan naar de OSV2020-U software. De
onderzoeksrapporten van Hackdefense, Expleo en KPMG zijn gepubliceerd op de
website van de Kiesraad.

## Meldingen

Op basis van de beschikbaar gestelde broncode kan een indruk verkregen worden
van de werking van de software op broncodeniveau. Ontdekt u een kwetsbaarheid
in de software, dan kunt u dit melden aan het Nationaal Cyber Security Centrum
(NCSC): https://www.ncsc.nl/contact/kwetsbaarheid-melden
Even snel door de "code" heen gekeken. Die archive is alleen source code, het is echt absurd veel "code" die echt alle afgrijselijke "enterprise software" kenmerken bevat.
45MiB aan source code. Veel van de code is in het Duits zonder commentaar. Het ruikt enorm naar gegenereerde code.
Ga maar in 45MiB aan onleesbare Java code zoeken naar achterdeuren.
Nou, ik open toevallig twee bestanden en zie meteen al een probleem in SHA512.java:
public static byte[] getEncryptedPassword(String password, byte[] salt, int iterations) {
Het doorgeven van wachtwoorden als String is onveilig omdat Strings (in de gangbare JVMs) in een literal pool zitten en dus leesbaar in het geheugen blijven totdat de JVM wordt herstart ze leesbaar in de heap space zitten. Iemand met toegang tot het geheugen (zeg een Spectre-exploit of anderzijds) kan het wachtwoord dus achterhalen. OWASP adviseert dan ook om wachtwoorden in een byte array op te slaan. Vreemd genoeg doen ze het wel goed voor de salt.

[Reactie gewijzigd door ari3 op 24 juli 2024 00:02]

Dat is een risico als die software in een cloud-omgeving zou runnen, maar dat is niet het geval bij onze verkiezingen.
De String pool is alleen voor literals, niet voor dynamisch gealloceerde Strings tenzij expliciet in de pool geplaatst (met intern()). Ik mag hopen dat wachtwoorden daar niet bij horen.

[Reactie gewijzigd door eThomas op 24 juli 2024 00:02]

Dank voor de correctie, heb het even aangepast. Het kan nog steeds een probleem zijn als de String leesbaar op de heap staat, al is het dan wel meer tijdelijk totdat de garbage collector zijn werk doet.
De broncode is beschikbaar maar het is niet open source.
En zelfs dan, de volledige keten moet transparant zijn, ga jij de documentatie van processor die gebruikt is in de machine doorlezen, of de netwerk driver(s) peer reviewen? En kan jij verwachten dat elke stemgerechtigde dat kan?

[Reactie gewijzigd door Ed Vertijsment op 24 juli 2024 00:02]

Los daarvan, is de keten door veel meer invloeden te verstoren dan handmatig tellen: The Universe is Hostile to Computers

Het is dus voorgekomen dat kosmische straling uitslagen heeft beïnvloed. Dan kan hard- en software nog zo betrouwbaar zijn, de uitslagen van de verkiezingen zijn dan nog steeds niet...
Tja wel erg ver gezocht. Dan kun je alle computers wel uitschakelen. In de praktijk heb ik nog nooit gehoord dat een overboeking van een bedrag of pin transactie oid fout is gegaan door kosmische straling of invloeden van buitenaf. Waarom zou die ene dag per jaar dat er verkiezingen zijn (en dan nog niet eens elk jaar) wel invloed hebben waardoor we dit niet doen? Al die enorme papieren formulieren lijken me nu ook niet enorm handig om handmatig te tellen. Denk dat een computer dat wel beter kan.

En iemand die van buitenaf op die manier kan hacken kan dat beter met een pinterminal doen dan een paar extra stemmen op die manier aanpassen.
Het is juist omdat het die ene dag per jaar is. Het gaat dan bovendien om een van onze aller grootste rechten. Dat mag niet fout gaan en daar is geen ruimte voor correctie.

Over een verkeerde transactie kan je in gesprek met de bank. Over een foute stem niet. In de eerste plaats omdat het anoniem is.

De kosten voor het ontwikkelen van een digitale oplossing die net zo onhackbaar en anoniem is als handmatig stemmen terwijl je het maar eens per jaar gebruikt (dus opslag wordt ook een belangrijke component!) zijn in mijn ogen niet te verantwoorden. Hierbij negeer is nog de vraag of het technisch überhaupt mogelijk is.
Dus we moeten iedere dag gaan stemmen zodat we zeker weten dat het effect van kosmische straling gemiddeld wordt? Of alles weer met de hand omdat daar nooit fouten worden gemaakt (of in ieder geval net zo onaantoonbaar)? Of is het voldoende om de stemcomputer met een aluminium schild af te schermen? (Ik noem het maar even geen "hoedje" om het ironisch te houden)
Dus we moeten iedere dag gaan stemmen zodat we zeker weten dat het effect van kosmische straling gemiddeld wordt? Of alles weer met de hand omdat daar nooit fouten worden gemaakt (of in ieder geval net zo onaantoonbaar)? Of is het voldoende om de stemcomputer met een aluminium schild af te schermen? (Ik noem het maar even geen "hoedje" om het ironisch te houden)
Dat is... bad faith argumentatie. Verder niet op in gaan mensen.

Tom Scott heeft een video gemaakt waarin goed uitgelegd waarom stemcomputers een slecht idee zijn.

Why Electronic Voting Is Still A Bad Idea
https://www.youtube.com/watch?v=LkH2r-sNjQs
Maar dat gaat over electronisch stemmen, en de privacy-issues die dat oplevert (kort samengevat, het kan OF met privacy, of met security, of met een compromis op beide).

Dit gaat over het optellen van de totale stemmen, waarbij wij al met papier (zo prive als maar kan) gestemd hebben.

(overigens wordt deze discussie volgens mij elk jaar gevoerd, en vanaf 2019 wordt dit filmpje aangehaald)
Hoe zie je dit voor je. Het lijkt me nagenoeg niet haalbaar (tegen een enigszins acceptabel prijs niveau) om dit mogelijk te maken met open source hardware en opensource software.
Hoe zie je dit voor je. Het lijkt me nagenoeg niet haalbaar (tegen een enigszins acceptabel prijs niveau) om dit mogelijk te maken met open source hardware en opensource software.
Waar denk je dat de problemen zitten?

De software is er al, de code openen is in principe een kwestie van een handtekening zetten. Misschien dat er nog iets geregeld moet worden met leveranciers zoals het afkopen van rechten maar dat is allemaal papierwerk, geen fundamenteel of technisch probleem.
Heel ingewikkeld is dit soort software niet, de kosten zullen vooral zitten in de zorgvuldigheid waarmee er gewerkt moet worden. Daar verandert niks aan of de broncode nu open is of niet. Dit soort software zal ook specifiek voor Nederland ontwikkelt worden dus het is niet dat we extra op kosten worden gejaagd omdat er geen schaalvoordeel mogelijk is.

Wat hardware betreft geloof ik niet dat er iets spannends nodig is. Het bijhouden van een paar miljoen stemmen is een koud kunstje voor iedere computer. Het aanbod aan echt open hardware is misschien wat beperkt maar er is genoeg te krijgen. Een Librem Mini kost nog geen 1000 euro. Aangezien we maar een paar van deze computers nodig hebben kunnen de kosten het probleem niet zijn.

Ik zie het probleem dus niet zo en ben benieuwd welk struikelblok jij ziet.

[Reactie gewijzigd door CAPSLOCK2000 op 24 juli 2024 00:02]

Niets mis met open source etc., maar zo moeilijk lijkt mij dit niet om dit gedeeltelijk te automatiseren al dan niet met open en/of closed source.

Gebruik bijvoorbeeld die stemcomputers van enkele verkiezingsjaren geleden, maar pas deze aan met een bonnenprinter. Een deelnemer brengt de stem uit, stem wordt geprint op het bonnetje zowel menselijk leesbaar (bijvoorbeeld kandidaat nr X lijst nr y) als in barcode/ qr code format.
bonnetjes worden verzameld in de stem doos. Deze kunnen relatief snel gescand en geteld worden voor een uitslag. Bij twijfel en steekproefsgewijs kan menselijk geteld worden.

Grote nadeel van het huidige potlood en papier is dat die papieren zo achterlijk groot zijn. In mijn gemeente 23 lijsten met de meeste ervan met tig kandidaten. Het uitvouwen van die dingen kost in ieder district al uren werk. Nog los van het tellen.

Op deze manier heb je het geautomatiseerd voor snelle verwerking en is altijd een handmatige controle mogelijk.
Daar ben ik het mee eens, daarnaast is het dan nog steeds niet fatsoenlijk controleerbaar. Niets mis met het potlood toch?

[Reactie gewijzigd door Ed Vertijsment op 24 juli 2024 00:02]

Ken jij het hele wetboek? Vast niet, maar het is wel openbaar en iedereen kan het lezen.
Wat mij betreft onnodige digitalisatie. Het handmatig stemmen tellen is aardig robuust en werkt al jaren prima. Ja, je komt pas de volgende dag pas te weten wie gewonnen heeft, maar nou en? Die avond in "spanning" kan je toch wel overleven?

Ik zie dadelijk weer een hoop problemen die we liever niet willen.
Als stemburo vrijwilliger zie ik de automatisering zoals dat nu is zeker niet als onnodig. Het is als digitale ondersteuning voor de communicatie:

Tijdens het stemmen worden de stempassen via de electronische weg gecontroleerd. Die kan veel sneller zien of stempassen zijn geblokkeerd of niet. Er is wel een papieren backup maar dat duurt veel langer.

Tijdens het stemmen worden het aantal stempassen geteld. Dat moet op een stemburo overeen komen met het aantal uitgebrachte stemmen, al kan/mag er een kleine afwijking zijn omdat iedereen het stembiljet mee naar huis mag nemen, met de opmerking dat deze stemmen dan naast de ongeldige en blanco stemmen niet als geldige stem mee tellen.

En bij het tellen wordt de app gebruikt voor het doorgeven van de tellingen per partij (en later tot op kandidaat niveau) zodat in de avond de totalen op tv kunnen komen. De ervaring leert dat elektronisch doorgegeven tellingen minder fout gevoelig zijn dan in gesproken woord. En daarbij sneller dan per koerier.
Het gaat mijns inziens minder om de spanning van een aantal uur moeten wachten op de uitslag, en meer op controle op data (de feitelijke stemmen) en de aantoonbaar onverstoorde werking van het stemproces.

Met financiele geldstromen doen we dat al steeds meer, en voor stemmen lijkt het me niet minder belangrijk dan bij geld om aan te kunnen tonen dat er geen onregelmatigheden geconstateerd zijn.

De betekenis van "geen onregelmatigheden geconstateerd" is nihil, tenzij je daadwerkelijk controleert, en neemt verder toe wanneer je controle in staat is om bij feitelijke onregelmatigheden deze daadwerkelijk te kunnen waarnemen.
Dit is geen vervanging van het handmatig tellen. Dit is een verzamelpakket. Het verzameld de handmatig getelde stemmen per bureau en verzameld dat per kiesdistrict/gemeente/provincie naar gelang wat er gewenst is. En kan vervolgens de zetelverdeling uitrekenen.
Alle papieren en tellijsten zijn nog aanwezig. En kunnen indien gewenst met de hand nogmaals verwerkt worden.
Dit is de software die gebruikt wordt bij het (totaliseren van) het handmatige tellen...
Eens dat het onnodig is. Het wordt er vooral veel duurder van, dan heb ik liever dat mijn belastinggeld ergens anders naar toe gaat. Ik kan de business case voor een stemcomputer in ieder geval niet maken als je privacy en veiligheid meeneemt...
Of het digitaal moet, is wat ander dan dat het kan. IK vond het vroeger wel fijn dat je niet aan het rotzooien was met een papier zo groot als 3 hokjes. Maar helaas het was niet controleerbaar. Wat eenvoudig is op te lossen met een printertje. Dit gaat trouwens niet over de stem computer maar over de verzamel software. Ander moet het met de fiets? of via Whatsapp? wat is je oplossing.
... Ander moet het met de fiets? of via Whatsapp? wat is je oplossing.
In de meeste gevallen gaat het alsnog ook nog op de fiets: De voorzitter van het stemburo moet de gegevens doorgeven.

En daarna ook nog met de verhuiswagen, als alle fysieke stemmen worden verzameld.
Sinds gemeenten de papieren uitslagen per stemlokaal zelf online plaatsen, is de verkiezingsuitslag nagenoeg "onhackbaar". Op lokaal niveau kunnen inwoners namelijk zelf de uitslag van hun eigen stembureau controleren en vergelijken met de handmatige telling die op de verkiezingsdag is gedaan. Op een hoger niveau hoef je (bij landelijke verkiezingen) maar van 345 gemeenten de totalen bij elkaar op te tellen, waarbij je van elke gemeente er dus van uit kunt gaan dat de uitslagen kloppen.

De eerste paar keren in het verleden dat OSV is gebruikt, werd de uitslag digitaal doorgegeven aan een hoofdstembureau waarna daar (automatisch) de stemmen bij elkaar werden opgeteld. Als de software bij één lokale gemeente een uitslag doorstuurde waarbij partij X een miljoen stemmen had, dan werd dit nergens in de keten opgemerkt en werden die miljoen stemmen gewoon bij het totaal opgeteld. Er is dus ook niet na te gaan of hier in het verleden fraude mee is gepleegd.
Verdiep je dan eens in het huidige proces. Er word gewoon handmatig geteld namelijk. OSV zorgt ervoor dat de uitslagen van alle stembureaus en gemeente bij elkaar worden opgeteld en bij de Kiesraad terecht komen.

Op dit item kan niet meer gereageerd worden.