gepubliceerd op 11 maart 2019
Ministerieel besluit tot vastlegging van de erkenningsvoorwaarden voor de software die door de stemopnemingsbureaus voor de elektronische stemmentelling gebruikt wordt bij de verkiezingen van het Europees Parlement, de Kamer van Volksvertegenwoordigers, het Vlaams Parlement, het Waals Parlement, het Parlement van het Brussels Hoofdstedelijk Gewest, de Brusselse leden van het Vlaams Parlement en het Parlement van de Duitstalige Gemeenschap
4 MAART 2019. - Ministerieel besluit tot vastlegging van de erkenningsvoorwaarden voor de software die door de stemopnemingsbureaus voor de elektronische stemmentelling gebruikt wordt bij de verkiezingen van het Europees Parlement, de Kamer van Volksvertegenwoordigers, het Vlaams Parlement, het Waals Parlement, het Parlement van het Brussels Hoofdstedelijk Gewest, de Brusselse leden van het Vlaams Parlement en het Parlement van de Duitstalige Gemeenschap
De Minister van Veiligheid en Binnenlandse Zaken, Gelet op artikel 165, vierde lid, van het Kieswetboek, gewijzigd door de
wet van 19 april 2018Relevante gevonden documenten
type
wet
prom.
19/04/2018
pub.
24/05/2018
numac
2018011790
bron
federale overheidsdienst binnenlandse zaken
Wet houdende verscheidene wijzigingen inzake verkiezingen
sluiten;
Gelet op de wetten op de Raad van State, gecoördineerd op 12 januari 1973, inzonderheid op artikel 3, § 1, eerste lid;
Gelet op de dringendheid;
Overwegende dat de indiening van de kandidaturen voor de gelijktijdige verkiezingen van 26 mei 2019 van het Europees Parlement, de Kamer van Volksvertegenwoordigers, het Vlaams Parlement, het Waals Parlement, het Parlement van het Brussels Hoofdstedelijk Gewest, de Brusselse leden van het Vlaams Parlement en het Parlement van de Duitstalige Gemeenschap vastgelegd werd op vrijdag 29 maart 2019 en zaterdag 30 maart 2019; dat derhalve onmiddellijk de erkenningsvoorwaarden bepaald moeten worden voor de software die door de stemopnemingsbureaus voor de elektronische stemmentelling gebruikt wordt bij die verkiezingen, Besluit :
Artikel 1.De in artikel 165, vierde lid, van het Kieswetboek bedoelde software die door de stemopnemingsbureaus gebruikt wordt voor de elektronische stemmentelling, mag een positief advies krijgen van een instantie, daartoe door de Koning erkend bij een in Ministerraad overlegd besluit, als ze voldoet aan de voorwaarden opgesomd in artikel 2 van dit besluit.
Art. 2.Het systeem zorgt voor het tellen van de stembiljetten afkomstig van de papieren stembureaus.
A. Algemeen Er zijn verschillende verkiezingen mogelijk: - Georganiseerd door de federale overheid: * Europese verkiezingen; * Federale verkiezingen; * Regionale verkiezingen voor: > het Vlaams Parlement; > het Waals parlement; > het Brussels Hoofdstedelijk Parlement; > het Parlement van de Duitstalige Gemeenschap;
Het systeem moet al deze verkiezingen ondersteunen evenals alle mogelijke combinaties van 2 of meerdere verkiezingen tegelijk behorend tot een zelfde organiserende overheid via het configureren van parameters, bijvoorbeeld Europese, federale en regionale verkiezingen of federale verkiezingen en regionale verkiezingen voor het Vlaams Parlement voor de federale overheid.
Per telbureau zal er slechts één soort verkiezing worden geteld.
Achtergrondinformatie, de huidige procedure voor het manueel tellen voor de verkiezingen georganiseerd door de federale overheid: Per telbureau worden de papieren stembiljetten van één of meerdere stembureaus verzameld (normaal 3 stembureaus = maximaal 2400 stembiljetten). Hier worden ze gemengd, op een stapel gelegd en geteld. Daarna worden er 3 stapels gemaakt: de geldige stembiljetten; de ongeldige of blanco stembiljetten; de onduidelijke stembiljetten.
Elk onduidelijk stembiljet wordt door het volledige telbureau bekeken en beoordeeld (eventueel d.m.v. stemming) en worden dan toegevoegd aan de stapel met de geldige stembiljetten of de stapel met de ongeldige en blanco stembiljetten. Zo blijven er nog slechts 2 stapels over. De ongeldige of blanco stembiljetten worden geteld. Het aantal wordt genoteerd op het voorziene formulier.
De geldige stembiljetten worden per partij onderverdeeld in 4 subcategorieën (SC): stembiljetten met enkel lijststemmen (SC1); stembiljetten voor alleen kandidaat-titularis(sen) (SC2); stembiljetten voor kandidaat-titularis(sen) en kandidaat-opvolger(s) (indien van toepassing) (SC3); stembiljetten voor alleen kandidaat-opvolger(s) (indien van toepassing) (SC4).
De 4 stapels worden stem per stem nagekeken en elke stem wordt toegevoegd bij de gekozen partij, kandidaat of opvolger op het voorziene formulier.
Na de telling gebeuren er volgende controles: o het aantal opgenomen stemmen en de overeenkomst tussen de subcategorieën (SC) voor elke lijst: aantal stembiljetten met enkel lijststemmen (SC1); aantal stembiljetten voor alleen kandidaat-titularis(sen) (SC2); aantal stembiljetten voor kandidaat-titularis(sen) en kandidaat-opvolger(s) (indien van toepassing) (SC3); aantal stembiljetten voor alleen kandidaat-opvolger(s) (indien van toepassing) (SC4); stemcijfer van de lijst (CE) o het stemcijfer van de lijst moet gelijk zijn aan de som van de vier subcategorieën (CE = SC1 + SC2 + SC3 + SC4). o Voor de naamstemmen: De som van de uitgebrachte stemmen voor de kandidaat-titularissen moet, wat deze lijst betreft, gelijk zijn aan het totaal uitgebrachte stemmen voor de kandidaat-titularissen; De som van de uitgebrachte stemmen voor de kandidaat-opvolgers moet, wat deze lijst betreft, gelijk zijn aan het totaal uitgebrachte stemmen voor de kandidaat-opvolgers; Het totaal van de stemmen voor de titularissen moet gelijk zijn aan of groter zijn dan de som van het totaal van de stembiljetten voor enkel titularissen (SC2) en van het totaal aantal stembiljetten voor titularissen en opvolgers (SC3); Het totaal aantal stemmen voor opvolgers moet gelijk zijn aan of groter zijn dan de som van het totaal aantal stembiljetten met enkel een stem voor opvolgers (SC4) en van het totaal aantal stembiljetten voor titularissen en opvolgers (SC3).
Deze procedures moeten niet volledig behouden blijven en mogen worden aangepast in functie van het telhulpsysteem. Uiteindelijk moet er een tabel per partij met de 4 subcategorieën worden opgemaakt met het aantal stemmen van elke kandidaat/opvolger.
B. Beschrijving van het systeem De voorzitter van het telbureau ontvangt een gegevensdrager (vb.
USB-stick) met daarop alle kandidaten. Aan de hand van een authenticatie (username en wachtwoord) wordt het juiste telbureau met de juiste kandidaten opgeladen. Deze gegevensdrager wordt ook gebruikt als output van het telhulpsysteem en als input voor het systeem Martine (doorsturen van de resultaten in het hoofdbureau). Deze gegevensdrager moet dus leesbaar zijn op alle meest gebruikelijke platformen (o.a. Windows).De software en OS mag mee met de interface worden opgeladen of reeds aanwezig zijn op het systeem zelf, maar de leverancier moet garanties kunnen geven dat de juiste versie (gecontroleerd door een erkend adviesorgaan) van de software en OS (incl. drivers) gebruikt wordt in de telbureaus. Als output moet deze interface het volgende bevatten: Elke individuele stem in EML-formaat dat digitaal ondertekend is; De resultatenbestanden in EML-formaat die digitaal ondertekend zijn; Het PV in pdf-formaat dat digitaal ondertekend is Als bijkomende integriteitsgarantie van de gegevensdrager wordt er een controlegetal berekend op de resultatenbestanden en wordt dit weergegeven op het scherm van het telhulpsysteem. Dit controlegetal moet worden overgenomen op het daartoe voorziene formulier. Dit controlegetal wordt samen met een hashcode op het geheel van de bestanden opgenomen in het PV. Als basisvereiste wordt er gevraagd om: 1. een dubbele input/telling te voorzien als controle;2. de resultaten van de 2 inputs/tellingen te vergelijken met de geregistreerde/getelde stemmen.Indien er een verschil is, worden de stembiljetten door het hele bureau gecontroleerd en gevalideerd in het systeem.
Het nummeren van de stembiljetten is toegelaten, maar deze nummering moet opnieuw kunnen verwijderd worden.
Een variante mag enkel betrekking hebben op de methode voor vergelijking van de stemmen tussen de 2 inputs/tellingen. Alle voorschriften van het bestek moeten nageleefd worden.
C. Aanmaakprocedure door de organiserende overheid Tijdens de aanmaakprocedure van de gegevensdragers kan er gebruik gemaakt worden van aanmaakapparatuur om één master interface aan te maken. Deze master interface wordt gekopieerd in voldoende aantal om alle telbureaus beveiligd en afzonderlijk te kunnen opstarten.
Deze aanmaakprocedure moet voor alle telbureaus tezamen kunnen uitgevoerd worden op maximaal 2 uur geen rekening gehouden met menselijke handelingen.
Alle importgegevens, zoals de telbureaus en de kandidatenlijsten, moeten in batch kunnen verwerkt worden.
De aanmaakprocedure voorziet in de aanmaak en het gebruik van een Public Key Infrastructuur (PKI) om cryptografische sleutels te genereren voor de telbureaus. Per telsysteem zal een uniek sleutelpaar gemaakt worden, samen met een certificaat. Op basis van deze PKI moet het mogelijk zijn om de integriteit van de digitale resultaten van de telbureaus te controleren.
De volgende vereisten moeten hierbij ingevuld worden: 1) De PKI (hardware, software en procedures) wordt opgeleverd als onderdeel van de aanmaakprocedure en wordt enkel onder controle (en op systemen) van de organiserende overheid gebruikt.2) De private sleutels per telhulpsysteem worden versleuteld opgeslagen op de master gegevensdrager.Deze kunnen enkel gedecrypteerd en gebruikt worden in de telbureaus. Hiervoor wordt een apart paswoord per telbureau gemaakt, dat op een aparte manier wordt doorgestuurd (bv. Een verzegelde enveloppe). 3) Het telsysteem gebruikt deze cryptografische sleutels om de telresultaten digitaal te tekenen, waardoor het mogelijk moet zijn om de integriteit en authenticiteit van de telresultaten te controleren.4) De oplossing levert ook een Certificate Authority (CA), waarmee digitaal getekende telresultaten (in PDF en/of EML formaat) gevalideerd worden. 5) De bijgeleverde procedure voorziet in duidelijke instructies hoe de private sleutel van de root en/of sub-CA moet beveiligd worden (o.a. off-line opslag en back-up hiervan). 6) De voorgestelde oplossing maakt gebruikt van standaarden zoals bv. X.509 voor de certificaten en publiek gekende en betrouwbare cryptografische algoritmes zoals bv. RSA of ECC voor de versleutelingen.
D. Compatibiliteit Het systeem is compatibel met het systeem voor de totalisatie en het doorsturen van de resultaten (Martine).
Als output moet elk telsysteem het volgende voorzien: - Elke individuele stem in EML-formaat dat digitaal ondertekend is - De resultatenbestanden in EML-formaat die digitaal ondertekend zijn - Het PV in pdf-formaat dat digitaal ondertekend is Het digitale verslag met de resultaten moeten digitaal getekend worden met de private sleutel van het telhulpsysteem (hiervoor zijn unieke sleutels per telbureau aanwezig op de master interface).
E. Wetgeving Het systeem moet steeds voldoen aan de kieswetgeving en de taalwetgeving.
Het systeem moet politiek neutraal zijn. Het gebruik van kleuren is toegelaten, maar de administratie mag steeds vragen om de lay-out gratis bij te sturen.
De correctheid van de taal en het gebruik van de juiste taal in elke regio moet gerespecteerd worden, in het bijzonder in de gemeenten met faciliteiten.
F. Niet-Functionele Vereisten Niet alleen moet de toepassing gebruiksvriendelijk zijn en voldoen aan de recentste veiligheidsvereisten.
Gebruiksvriendelijkheid en performantie * Eén telhulpsysteem moet door 1 persoon binnen 10 minuten opgesteld en afgebouwd kunnen worden. Dit is inclusief de tijd die nodig is om het systeem uit de verpakking te halen en weer in te pakken. * Het telhulpsysteem moet binnen 1 minuut opgestart zijn tot het inlogscherm. * Het telhulpsysteem moet de configuratie van de USB stick binnen de 1 minuut inlezen en verwerken tot het startscherm van de applicatie. De vooruitgang hiervan dient visueel te volgen zijn. * De toepassing moeten ergonomisch zijn en eenvoudig en logisch zijn in gebruik. * De geleverde toepassingen moeten intuïtief zonder extra hulp kunnen worden gebruikt. * Bij de verschillende velden die moeten ingevuld worden, wordt er automatisch een begeleidende tekst weergegeven wanneer hierop geklikt wordt. * Voor meldingen van het stemhulpsysteem geldt: o Statusmeldingen moeten visueel worden weergegeven. o Foutmeldingen moeten worden geformuleerd in begrijpelijke processtappen zodat de gebruiker weet wat er moet gebeuren. o Uit de melding moet eenduidig blijken of een probleem door een handeling van het telbureau is te verhelpen dan wel dat een helpdesk moet worden ingeschakeld. o De urgentie moet eenduidig uit de melding blijken, bijvoorbeeld door kleuren te gebruiken. * De responsetijden van het telhulpsysteem zijn: o Maximum 0,1 seconde bij manipulatie van een object in een scherm. o Maximum 1 seconde bij de overgang naar een volgende stap in het telproces. * Het telhulpsysteem moet de uitslagen op de USB stick binnen de 5 minuten wegschrijven. De vooruitgang hiervan dient visueel te volgen zijn.
Beveiliging Algemeen voorziet de aanbieder de nodige beveiligingsmaatregels om beveiligingsincidenten te voorkomen, detecteren en mitigeren.
Organisatie * De leverancier werkt op basis van een te vermelden informatiebeveiligingsraamwerk (gebaseerd op ISO27K, COBIT of een vergelijkbare internationale standaard). Dit raamwerk definieert onder meer de rollen & verantwoordelijkheden, beveiligingsmaatregelen en procedures. * De leverancier heeft een incident response plan om adequaat op beveiligingsincidenten te reageren (in functie van incident classificatie) inclusief root-cause analyse en het uitwerken van duurzame oplossingen. * De leverancier heeft een informatiebeveiligingsverantwoordelijke die de compliance van het informatiebeveiligingsraamwerk en de beveiligingsaspecten van alle deliverables verzekert. * Passende antecedentenonderzoek moet worden uitgevoerd voor alle medewerkers van de leverancier die betrokken zijn bij de verwerking van de project gegevens. De leverancier garandeert de integriteit van zijn medewerkers en eventuele onderaannemers, en garandeert dat alle medewerkers adequate beveiligingsopleidingen gevolgd hebben. * Een data protectie officer wordt aangesteld door de leverancier om de gegevensbescherming te waarborgen. * De leverancier heeft een te vermelden aantoonbaar veilig ontwikkel raamwerk (gebaseerd op OWASP SAMM, BSIMM of een vergelijkbare internationale best practice) voor de ontwikkeling en operationele uitbating van betrouwbare software.
Softwareontwikkeling * Software kwetsbaarheden worden zo vroeg mogelijk tijdens de ontwikkelcyclus geïdentificeerd en opgelost. * Een te vermelden betrouwbaar software buildproces wordt gebruikt die de geleverde software compileert en linkt van alle bronbestanden. Dit omvat een methode voor het verifiëren van de integriteit van de software. * Strikt gescheiden omgevingen worden gebruikt voor ontwikkeling, testen, acceptatie, opleiding en productie. * De geleverde software bevat geen kwaadaardige code, zoals viruses, worms, time bombs, back doors, Trojan horses of Easter eggs. * De leverancier zal - als onderdeel van een analyse fase - gedetailleerde beveiligingsvereisten voor de software uitwerken en documenteren. Deze zullen de beveiligingsmechanismes en veilig design patterns beschrijven en hoe deze in de aangeboden oplossing worden geïmplementeerd. * Gebruikte software componenten van derde partijen (inclusief open source software) moeten ook aan deze vereisten voldoen. * De OS wordt hardened volgens de laatste best-practices van de OS leverancier: o De integriteit van het OS wordt gegarandeerd door het gebruik van Trusted Platform Module (TPM) op de gebruikte hardware. o De minimum software wordt geïnstalleerd, en alle onnodige software of modules en voorbeeld bestanden worden verwijderd. o Alleen de nodige services of daemons worden opgezet o De standaard credentials worden veranderd * Alle geleverde software (inclusief OS en software van derde partijen) zullen op regelmatige basis up to date gebracht worden naar de meest recente versies om kwetsbaarheden op te lossen of te voorkomen. De administraties worden steeds op de hoogte gesteld wanneer bepaalde wijzigingen noodzakelijk zijn en krijgen een gedetailleerde beschrijving van het risico en de voorgestelde oplossing. * Vanuit de applicatie wordt een security log gegenereerd en opgeslagen lokaal en op de USB stick. * Security logging omvat minimaal volgende elementen: o Tijdstip (in UTC) o systeem naam van de betrokken systemen o Identiteit gebruiker o Severity level o Detail van het event. * Volgende security events moeten minimaal gelogd worden in een security log: o Succesvol /mislukte login - logout o Uitzonderingen (exceptions) in de applicaties * Security logs moeten bewaard worden tot de verkiezingen officieel zijn goedgekeurd door de bevoegde instantie.
Testen veilige software De leverancier zal minstens volgende testen voorzien als onderdeel van een veilig ontwikkelproces voor de geleverde software: * De beveiligingstesten moeten een correcte werking van de beveiligingsvereisten testen alsook het ontbreken van veel voorkomende software gebreken. * De beveiligingstesten moeten onder meer statische en dynamische beveiligingstesten omvatten. De uitkomst van deze testen moet samen met een beschrijving in een testrapport, meege leverd worden bij elke release van de software. * Beveiligingstesten zijn steeds onderdeel van de acceptatie testen voor dit bestek. De geleverde software kan enkel geaccepteerd worden als alle gevonden beveiligingskwetsbaarheden zijn opgelost of door de opdrachtgevers aanvaard als risico's. * De opdrachtgever heeft steeds het recht om de geleverde software te onderwerpen aan beveiligingstesten door een derde partij. De leverancier zal hiervoor de nodige ondersteuning beschikbaar maken aan de derde partij (bv. beschikbaar maken van de source code of een test omgeving en het geven van de nodige toelichtingen).
Veilige hardware * De leverancier moet hardware gebruiken van een betrouwbare leverancier. * De gebruikte hardware moet uitgerust zijn met een ingeschakelde Trusted Platform Module (TPM) dat voldoet aan de meest recente vereisten van de Trusted Computing Group1 (TCG). * Ofwel wordt de gebruikte hardware éénmalig gebruikt voor de verkiezingen en nadien (na een veilig wisproces) hergebruikt voor andere doeleinden van de leverancier. Ofwel zal de leverancier de hardware zelf beveiligd opslaan tussen de verkiezingen (tot aan het einde van de looptijd van het contract). * Hardware wordt enkel met beveiligd en traceerbaar transport geleverd en opgehaald in de telbureaus. * De hardware voor het telhulpsysteem wordt geleverd in een afgesloten en verzegelde transportbehuizing waarin de onderdelen vervoerd en opgeslagen worden. Hierin zitten ook de verzegeling en de instructies om dit te laten ophalen door de leverancier. * De leverancier zorgt voor een veilige opslag van de hardware, hierbij worden de volgende maatregelen getroffen: o De buitenkant van de locatie of het gebouw is voldoende solide en op voldoende wijze beschermd tegen toegang door onbevoegden (vb. solide omheining, buitenmuren, buitendeuren, buitenramen, ...). o De toegang tot het gebouw en tot de opslagruimte wordt gecontroleerd zodanig dat enkel bevoegde personen toegang krijgen (vb. permanente bewaking, bemande receptie, badgesysteem, ...). o Een beperkt aantal bevoegde medewerkers heeft fysiek toegang tot de opslagruimte. o Er is toegangscontrole en logging op basis van elektronische toegangspassen. Logging hiervan wordt minstens 3 maanden bijgehouden. o Er zijn gepaste anti-inbraaksystemen geïnstalleerd waarvan de effectieve werking op regelmatige tijdstippen getest wordt. o Er is camera controle op de opslagruimte. Hiervan worden de beelden minstens 1 maand bijgehouden. o De toegangslogs en camerabeelden kunnen door een 3e partij gecontroleerd worden.
Onderhoudbaarheid * Tijdens de ontwikkelingen wordt er steeds afgetoetst of codekwaliteit meetbaar voldoet aan de norm voor onderhoudbaarheid conform de definities in ISO25010. * De gebruikte programmeertalen zijn een gangbare combinatie van Swift, Java, JavaScript, C# en/of HTML5. * De software heeft een goed gestructureerde en duidelijk leesbare broncode. Elke module bevat de nodige commentaar in het Engels die de werking ervan verduidelijkt. * De broncode units (klassen, methodes) zijn klein waarbij het aantal constructors beperkt is. * Functionaliteit wordt één keer geschreven en binnen de software hergebruikt (geen copy/paste van code). * Interfaces in de code zijn beperkt en duidelijk. * Unit-testdekking is met statische analysetooling aantoonbaar > 80 %, gemeten als branch-coverage (aantal beslispaden dat is getest). Er worden voldoende unittesten voorzien, zodat indien nodig in een vroege fase kan worden bijgestuurd. * Er worden geen verouderde libraries gebruikt of libraries waarbij er zwakheden zijn vastgesteld. Om dat te borgen is een actief patchmanagement proces noodzakelijk.
Art. 3.Dit besluit treedt in werking op de dag dat het in het Belgisch Staatsblad bekendgemaakt wordt.
Brussel, 4 maart 2019.
P. DE CREM _______ Nota 1 https://trustedcomputinggroup.org