Broncode OSV2020- U

Voor de Tweede Kamerverkiezing van maart 2021 stelt de Kiesraad versie 1.3 van de OSV2020-U software beschikbaar.
Versie OSV2020-U 1.3.9 is getoetst door Expleo. Gemeenten en hoofdstembureaus maken gebruik van OSV2020-U 1.3.15. Het centraal stembureau gebruikt versie OSV2020-U. 1.3.16. De wijze van het berekenen van de zetels is na de toets niet aangepast.

De algemene Creative Commons zero verklaring (CC0) is niet van toepassing op de broncodes OSV2020-U.
 

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), overeenkomstig het “Responsible Disclosure Statement”.

Melding naar aanleiding van de gepubliceerde broncode

Hieronder een overzicht van meldingen die door derden zijn gedaan met daarbij de voorgenomen vervolgacties:

  • Zwakke implementatie random functie bij java keystore wachtwoord, NCSC-NL #133778

Melding: De melding heeft betrekking op de toegepaste random functie die in OSV2020-U wordt toegepast voor het bepalen van het keystore wachtwoord. In de betreffende keystore wordt de private key opgeslagen die wordt gebruikt bij het (digitaal) ondertekenen van EML-bestanden. Bij het bepalen van het keystore wachtwoord wordt de standaard Java PRNG (Pseudorandom Number Generator) gebruikt die beperkt is tot een interne staat van 2^48 verschillende mogelijkheden en niet bedoeld is voor gebruik binnen security-doeleinden.

Context: Voor het waarborgen van de authenticiteit en integriteit bij de overdacht van digitale uitslaggegevens wordt (digitaal) ondertekenen van EML-bestanden toegepast. De digitale ondertekening vindt plaats met behulp van de private key die in de keystore is opgeslagen die enkel in het systeem wordt gebruikt en niet daarbuiten. Voor de verificatie van de digitale ondertekening wordt het publieke deel (certificaat) gebruikt. De digitale ondertekening is niet de enige methode voor het waarborgen van de authenticiteit en integriteit van de digitale uitslaggegevens. Daarnaast wordt de integriteit ook geverifieerd met behulp van een SHA256 hashcode en met het handmatig overnemen van de op papier vastgelegde uitslag.

Duiding: Om misbruik te kunnen maken van de implementatie van deze random functie moet een aanvaller zowel fysiek toegang hebben tot en een gebruikersaccount hebben op de computer waarop OSV2002-U is geïnstalleerd. Daarnaast wordt de authenticiteit en integriteit van de digitale uitslaggegevens ook geverifieerd met behulp van een SHA256 hashcode en met het handmatig overnemen van de op papier vastgelegde uitslag.

Vervolgactie: We zijn met de ontwikkelaar van de software in overleg om de wijze waarop het wachtwoord voor de keystore wordt bepaald in een volgende versie te versterken.

  • Er vindt geen continue controle plaats of de OSV2020 computer verbonden is met internet, NCSC-NL #134572

Melding: De controlemethode die is vastgelegd in NlAirGapCheckCronTimer.java controleert om de 5 minuten of er een verbinding met internet aanwezig is. Doordat deze controle periodiek wordt uitgevoerd met een tussenpossen van 5 minuten, bestaat de mogelijkheid voor een kwaadwillende om buiten deze controle momenten een verbinding met internet op te bouwen en vervolgens te sluiten zonder dat dit gedetecteerd wordt door de OSV2020 software. Daarnaast is het mogelijk voor een persoon die fysiek toegang heeft tot de OSV2020 computer en over een administrator account beschikt om via aangepaste firewall regels een verbinding op te zetten naar een extern systeem zonder dat dit gedetecteerd wordt door het geïmplementeerde controlemechanisme.

Context: De controle, of er sprake is van een internetverbinding, is primair bedoeld om te voorkomen dat een gebruiker onbedoeld de OSV2020 computer verbindt met het internet. In de situatie waarbij de OSV2020 software wordt toegepast voor het bepalen van de officiële verkiezingsuitslag is het van belang dat onbevoegden geen toegang hebben tot het computersysteem. In de voorwaarden die verbonden zijn aan het gebruik van de OSV2020 software is onder meer opgenomen dat er voor gezorgd moet worden dat onbevoegden geen toegang hebben tot het OSV2020 systeem en dat de software op een fysiek gescheiden netwerk zonder koppeling met de reguliere IT-infrastructuur van de gemeente en zonder koppeling met het internet wordt gebruikt.

Duiding: De geïmplementeerde controlemethode is in overeenstemming met de opgegeven functionele behoefte, namelijk dat voorkomen wordt dat een gebruiker onbedoeld de OSV2020 software gebruikt in combinatie met een internetverbinding. Als iemand (fysiek) toegang heeft tot de computer en manipulaties probeert uit te voeren kan dit op de verschillende niveaus waar OSV2020 gebruikt wordt ontdekt worden via de in een protocol voorgeschreven controles.

Vervolgactie: De melding is voor ons geen aanleiding om de OSV2020 software aan te passen.