Nu we over een paar weken weer het kieshokje in mogen, is er één vraag die in 2021 nóg relevanter is dan normaal: waarom stemmen we niet digitaal? Door de coronacrisis moeten er immers extra maatregelen worden genomen en doen we de belangrijkste zaken online. Dat stemmen nog ouderwets aanvoelt, komt doordat je daarvoor twee dingen nodig hebt die haaks op elkaar staan. Bovendien gebruiken we in Nederland wel degelijk software in het verkiezingsproces, maar daar merk je als kiezer niets van.
In Nederland gaan er bij vlagen stemmen op om elektronisch stemmen in te voeren. Heel serieus zijn die doorgaans niet en evenmin klinken ze overtuigend. In Nederland pleit dit jaar de PvdA openlijk voor digitaal stemmen, maar de partij zegt vooral 'die mogelijkheid krachtig na te willen streven'. Sommige kleine partijen, zoals de PiratenPartij en Splinter, gebruiken hun eigen systemen om interne stemmingen uit te voeren, bijvoorbeeld over standpunten van de partijen. En natuurlijk zijn er voorbeelden waarbij kleine verkiezingen werden opgezet, zoals de lijsttrekkersverkiezingen, die vervolgens helemaal verkeerd gingen.

Elektronisch stemmen tijdens grote, landelijke verkiezingen is sinds 2007 niet meer de norm. Daaraan ging een lang maatschappelijk debat vooraf. Daarin toonde de stichting Wij Vertrouwen Stemcomputers Niet, met aan het hoofd hacker Rop Gonggrijp, op verschillende vlakken aan dat de computers niet veilig waren. Sindsdien zijn er weer een rood potlood en een steeds langer wordende lijst met namen.
Ondersteunende Software Verkiezingen 2020
Ook in de verkiezingen van 2021 stemmen we weer met dat potlood. Weliswaar moeten daarvoor veel meer fysieke potloden worden aangesleept, maar de verkiezing is grotendeels analoog. Grotendeels, maar niet helemaal, op sommige vlakken komt er toch nog wat technologie om de hoek kijken en daar zijn experts ook nu weer niet blij mee.
Dat zit zo. In de ruwweg tienduizend stemlokalen in Nederland gaat zowel het stemmen als het inleveren en het tellen met de hand. Het papieren biljet wordt uitgereikt na vertoon van een paspoort of identiteitsbewijs en de fysieke stempas. Na de stemming gaat dat papieren biljet in een container. Na 21.00 uur op verkiezingsdag worden de biljetten handmatig geteld, een tijdrovend maar verifieerbaar proces. De uitslagen per stembureau worden vervolgens vastgelegd in een opnieuw papieren proces-verbaal. Dat wordt naar de gemeente gebracht. So far, so good.
Dan komt het. De gemeente moet de uitslagen verifiëren en met een handtekening van de burgemeester doorgeven aan de Kiesraad. Dat is het punt waar software zijn intrede doet. Gemeenteambtenaren moeten de resultaten van de verschillende stembureaus namelijk overnemen in een digitaal programma, de Ondersteunende Software Verkiezingen, of OSV. Er zijn verschillende versies daarvan; sinds de gemeentelijke herindelingsverkiezingen vorig jaar is OSV2020 actief.
Als alle resultaten uit een gemeente in OSV2020 staan, wordt er een uitdraai gemaakt met het eindresultaat: winnende partijen, voorkeursstemmen en zetelverdelingen. Die uitdraai wordt ondertekend door de burgemeester en opgenomen in het landelijke verkiezingsresultaat.
OSV2020 bestaat uit drie onderdelen. Er is een sectie, OSV2020-PP, voor politieke partijen die er hun kandidatenlijsten en andere documenten mee kunnen opstellen. Die worden dan ook direct beschikbaar voor OSV2020-KS, of Kandidaatstelling. Dat is het onderdeel dat in het stembureau wordt gebruikt om kandidatenlijsten te verifiëren, als ondersteuning voor de vrijwilligers daar. Het onderdeel waarmee de gemeenten de uitslag verifiëren, is OSV2020-U.
:strip_exif()/i/2004213400.jpeg?f=imagenormal)
Kwetsbaarheden in de telsoftware
Over het gebruik van OSV2020, en specifiek OSV2020U, is veel te doen geweest. Dat er gebruik wordt gemaakt van software in het stemproces werkt als een rode lap op een stier voor veel activisten. "De fundamentele kwetsbaarheid zit in het feit dat alle papieren processen-verbaal van stembureaus overgetypt worden door gemeenteambtenaren in het programma OSV2020-U, dat in de meeste gevallen op Windows draait", schrijft de Stichting tegen Hackbare Verkiezingen. "Daarna gaat het papier de kluis in en er wordt verder niet meer naar omgekeken in het optelproces, omdat het gedigitaliseerd is."
De stichting was vorig jaar een van de felste tegenstanders van het gebruik van OSV. Dat schreef ze in november vorig jaar in een rapport waarin ze opriep te stoppen met de optelcomputers. De stichting bestaat niet uit de minsten; in het bestuur zitten securityconsultant Sijmen Ruwhof, VU-hoogleraar Herbert Bos en freelance securityontwikkelaar Ron van Workum. Het rapport werd onderschreven door invloedrijke hoogleraren informatietechnologie, zoals Bart Jacobs van de Radboud Universiteit, Aiko Pras van de Universiteit Twente en Lokke Moerel van de Universiteit van Tilburg. De kritiek richtte zich vooral op het stem- en verkiezingsproces, en niet specifiek op de aard van de software zelf. "De kern van het probleem is dat software die best geschikt is voor het bepalen voor een voorlopige uitslag, gebruikt wordt voor de definitieve uitslag", schreef de stichting.
Waarborgen
Volgens de Kiesraad zijn er genoeg waarborgen dat er niet geknoeid wordt met de uitslag. Er is bijvoorbeeld een 'vierogenprincipe', waarbij de uitslagen niet door een, maar door twee ambtenaren worden ingevoerd in het programma. Die typen allebei de resultaten van de stembureaus over in de computer en die registreert dat pas als de uitslagen hetzelfde zijn. Ook zijn er richtlijnen voor het gebruik van computers waar OSV op draait. Die computers moeten in een ruimte staan die fysiek af te sluiten is en ze moeten air-gapped zijn. Sterker nog, de software is zo opgezet dat het programma zich afsluit zodra er een internetverbinding wordt gelegd.
Die waarborgen zijn niet lang geleden ingesteld. Ze zijn een direct gevolg van kritische rapporten en vertragingen, waardoor OSV2020 voor minister van Binnenlandse Zaken Kajsa Ollongren inmiddels een hoofdpijndossier is geworden. Het was namelijk de bedoeling dat de nieuwe software, die enigszins inspiratieloos OSV2021 heet, bij de verkiezingen in maart gebruikt zou worden. Eind 2019 gaf staatssecretaris Knops van Binnenlandse Zaken opdracht voor een aanbesteding daarvoor. De software had zelfs al af moeten zijn in november vorig jaar, toen er in een aantal gemeenten herindelingsverkiezingen plaatsvonden. Ook daarbij werd dus nog steeds OSV2020 ingezet. De Kiesraad concludeerde dat die software goed werkte, mede omdat er handmatige controles werden ingezet.
De Nederlandse telsoftware kent diverse grote en kleine kwetsbaarheden
Dat de software werkt, wil echter niet zeggen dat hij feilloos is. OSV2020 moest worden vervangen omdat meer dan eens bleek dat er kwetsbaarheden in zaten. Het laatste beveiligingsrapport kwam in oktober 2020 uit. Conclusie: de grootste kwetsbaarheden waren uit de software. Cross-site scripting of SQL injections waren niet meer mogelijk, maar perfect is de software nog zeker niet. OSV2020 bevat geen meerfactorauthenticatie, het gebruikt nog een standaardwachtwoord en geblokkeerde accounts met actieve sessies kunnen de software alsnog gebruiken. De audit die het vrij onbekende securitybedrijf HackDefense uitvoerde, is daarbij ook niet helemaal volledig. Een codereview was volgens het bedrijf lastig, doordat er weinig commentregels in de broncode staan. De commentregels dié er zijn, zijn Duits. Wanneer de definitieve versie van OSV klaar is, is vooralsnog niet bekend.
Inmiddels zijn er stappen gezet om de Stichting Tegen Hackbare Verkiezingen tegemoet te komen. Vorige week werd bekend dat de Kiesraad in overleg gaat met de stichting, maar de kans dat er nog vóór 17 maart significante veranderingen worden doorgevoerd aan de software, lijkt niet groot. Het is op dit moment ook nog heel moeilijk voor externe experts om de code van OSV2020 onafhankelijk te bekijken. Dat begint al bij de eerste stap, want de code compileert bijvoorbeeld niet eens op de meeste systemen.
DigiD
Waarom is het zo moeilijk om software te gebruiken tijdens verkiezingen? De vraag is relevant, zeker als je bedenkt dat we andere belangrijke interacties met de overheid, zoals belasting betalen, ook gewoon online doen. Daar hebben we zelfs een heel handige tool voor, DigiD. Als dat veilig genoeg is voor je belastingaangifte, waarom dan niet ook om te stemmen?

Het probleem met stemmen is dat je twee dingen moet controleren die eigenlijk haaks op elkaar staan. Aan de ene kant moet je verifiëren dat iemand is wie hij zegt dat hij is, en dat hij het recht heeft om te stemmen. Dat gedeelte is redelijk makkelijk te regelen; daar hebben we paspoorten voor, stempassen en de Gemeentelijke Basisadministratie. Je zou het kunnen regelen met DigiD of opvolgers zoals eID. Daarna komt het moeilijke, want vanaf het moment dat iemand zijn stem uitbrengt, komt het stemgeheim om de hoek kijken. Je wil dan direct alles weer vergeten van die persoon. Je wil niet weten waarop hij gestemd heeft en zelfs niet óf hij gestemd heeft. Met computers is die tegenstelling moeilijk op te lossen. Software laat immers al snel sporen achter en ook als ontwikkelaars hard hun best doen om dat te voorkomen, blijf je altijd met twijfel zitten. 'Weet dit programma echt niet wat ik heb gestemd?'
Stemmen met DigiD lost dus zeker een probleem op en is geschikt voor een deel van het stemproces. De authenticatie kun je er makkelijk mee doen, maar daarmee ondergraaf je het andere cruciale onderdeel van het stemmen, want het stemgeheim is er niet mee gewaarborgd. En dat is ook precies waarom wijzen naar Estland een oneerlijke vergelijking is.
Stemmen in Estland
Estland stemt al jaren digitaal en dan niet met een computer, maar gewoon via internet of een smartphone. Het is hét voorbeeld waar voorstanders van digitaal stemmen vaak naar wijzen. Als het in de Baltische staat kan, waarom dan hier niet?
Estland begon in 2005 met de eerste proef rondom digitaal stemmen. Dat bleek een succes; tijdens de parlementsverkiezingen in 2019 werd maar liefst 44 procent van alle stemmen elektronisch uitgebracht. Dat komt in absolute getallen nog steeds op kleine aantallen neer; Estland heeft 1,3 miljoen inwoners. Het systeem heet i-Vote en wordt inmiddels in landelijke, regionale en Europese verkiezingen gebruikt.
Centraal in Estlands strategie om elektronisch te stemmen is het centrale identiteitsbewijs in het land. Dat is vergelijkbaar met dat van Nederland; het gaat om een landelijke kaart die voor iedere bewoner hetzelfde is en ook vereist is voor identificatie bij overheidsdiensten. De Estse id-kaart is echter een smartcard, terwijl Nederland pas sinds begin dit jaar dergelijke kaarten levert.
Stemmen veranderen
Burgers kunnen in Estland tussen de vier en tien dagen voorafgaand aan verkiezingen elektronisch stemmen. Opvallend is dat ze daarbij op ieder moment ná het uitbrengen hun stem nog kunnen veranderen, zo vaak als ze maar willen. Dat kan niet meer op de verkiezingsdag zelf; dan moet de stem binnen zijn.
Stemmers moeten inloggen met hun id-kaart en een kaartlezer. Dat kan een ingebouwde smartcardlezer voor laptops of smartphones zijn, maar het is ook mogelijk een externe lezer te kopen voor ongeveer vijftien euro. Sinds een paar jaar is het zelfs mogelijk voor Esten om zich via hun telefoonprovider te identificeren. Dat kan met Mobile-ID. Dat is een simkaart waaraan de Estse identificatie is gekoppeld. Burgers kunnen het gebruiken om zich digitaal te identificeren bij de landelijke belastingdienst of om documenten digitaal te ondertekenen. En dus ook om mee te stemmen.
Gebruikers loggen om te stemmen in op een app met hun id-kaart of met hun telefoon. De app herkent meteen in welk district iemand mag stemmen en voor welke verkiezing dat relevant is. Na de stemming moeten gebruikers een pincode invoeren die geldt als een handtekening. Om burgers te verzekeren dat hun stem is meegenomen, krijgt een stemmer na het uitbrengen van de stem een QR-code te zien. Daarmee kan hij op latere momenten weer 'inloggen' op het systeem om zijn stem te bekijken en te wijzigen. Volgens de kiesautoriteit in Estland is dat bedoeld om te controleren of een stem daadwerkelijk is vastgelegd.
Estland heeft verschillende maatregelen genomen om ervoor te zorgen dat het online stemproces transparant is. De code is sinds 2013 op GitHub te zien. De repo's worden daar voor iedere verkiezing bijgewerkt. Dat ging niet zonder slag of stoot; privacyvoorvechters hekelden destijds het feit dat er een Creative Commons-licentie werd gebruikt en dat het daarmee niet echt open source was.
'Geen incidenten'
Het land is trots op zijn stemsysteem. Het pocht dat er tot nu toe nog nooit een incident is geweest waarbij een stem verdacht was of waarbij resultaten in twijfel werden getrokken. Er vertrekken ook regelmatig ambtenaren uit andere landen naar Estland om kennis op te doen; waarom lukt elektronisch stemmen daar wel en bij ons niet?
'Geen incidenten' blijkt in dit geval een conclusie die vrij lichtzinnig wordt aangenomen. Onderzoekers vonden in 2014 diverse potentiële kwetsbaarheden in het systeem. "Als je geavanceerde bedreigingen van statelijke actoren in het threat model meeneemt, wat voor een nationaal verkiezingsproces kan, zien we dat het I-voting-systeem serieuze architecturele en procedurele grenzen kent die de integriteit van de verkiezingen in gevaar kunnen brengen", schreven de onderzoekers. De problemen draaiden bijvoorbeeld om het feit dat de datacenters met de software slecht afgesloten waren, dat medewerkers onversleutelde back-ups meenamen naar huis en dat er onderling dvd's met stemdata werden uitgewisseld. Ook in de code van de software zaten kwetsbaarheden. Het was mogelijk een denial-of-serviceaanval uit te voeren en de onderzoekers beschrijven een scenario waarbij server-side een shell injection kan worden uitgevoerd.
Toegegeven, dat onderzoek vond jaren geleden plaats. Inmiddels zijn die specifieke bugs opgelost, maar het feit dat het land toen al negen jaar gebruikmaakte van een systeem met zulke fouten, is veelzeggend. Vergelijk het maar eens met de problemen die de Stichting Tegen Hackbare Verkiezingen noemt. De potentiële scenario's om verkiezingsuitslagen daadwerkelijk te manipuleren zijn aanwezig, maar lastig in de praktijk uit te voeren. Bij veel software maken ontwikkelaars de afweging welke risico's acceptabel zijn. In een verkiezing wil je dat liefst helemaal niet. Dat zeggen ook ingewijden die de Nederlandse telsoftware ooit hebben bekeken; de geringste twijfel aan de resultaten is genoeg om verkiezingen in het geheel in twijfel te trekken.
Integriteit
Technisch gezien is online stemmen best makkelijk,
Technisch lijkt Estlands stemsysteem niet heel ingewikkeld. Het is prima mogelijk, ook in Nederland, een systeem te maken waarbij iemand volledig online zijn stem kan uitbrengen en kan verifiëren of die geteld is. Het is echter de combinatie van de absolute geheimhouding van de stem aan de ene kant en de verificatie van de stem aan de andere kant, die het online stemmen zo moeilijk maakt.
maar de integriteit is niet te verzekeren
De code open source maken is ook niet alles, zeggen experts. Een veelgenoemd argument is bijvoorbeeld dat je wel code kunt controleren, maar nooit weet of dat ook precies de code is die op de telcomputer draait. Dat zeiden ook de onderzoekers die in 2014 het systeem bekeken. "Het feit dat dat probleem niet voorafgaand aan de verkiezingen werd ontdekt, is een teken dat open source niet betekent dat er geen bugs in code zitten." Zo is het ook; de combinatie van mogelijke bugs en het niet kunnen verzekeren van het stemgeheim heeft tot gevolg dat we over een paar weken allemaal, zoals al sinds jaar en dag het geval is, met een rood potlood in handen staan om een vakje op het stembiljet in te kleuren.