Logo Ordinateurs–de–Vote.org Citoyens et informaticiens
pour un vote vérifié par l'électeur

Accueil du site > Questions qui dérangent > Pourquoi quasiment personne en France n’a vu le code source du (...)

Pourquoi quasiment personne en France n’a vu le code source du logiciel des machines à voter ?

22 mai 2005

Et bien sûr, aucun simple citoyen... Les machines à voter sont des ordinateurs, parfois des PC semblables au votre, mais dans un boitier adapté. Ce qui en fait des machines à voter est donc essentiellement le logiciel qui y tourne. Analyser ce logiciel est donc fondamental, et cela ne peut se faire sans examiner son code source.

Ce qu’est le code source : explication. Ne pas le consulter est comme de goûter un plat sophistiqué. On a beau faire travailler son imagination, on n’en trouvera pas la recette exacte [1]. Ni des ingrédients mystérieux, pour peu qu’ils soient inodores. Seule l’expertise du code source permet de répondre à des questions telles que : le logiciel est-il fiable ? Est-il sécurisé ? Dissimule-t-il des fonctionnalités ?

A l’exception notable des Logiciels Libres ou Open Source, le code source reste secret et propriété de son concepteur. Les motivations sont variées : prétendue sécurité par l’obscurité, protection commerciale, voire qualité médiocre. Détails.

La procédure d’agrément française répond avant tout aux besoins des municipalités : fiabilité de l’électronique, longévité et facilité d’utilisation. La sécurité ne semble pas la principale préoccupation. Il n’y a donc aucune obligation d’analyser le code source. Seul un des deux organismes [2] donnant l’avis avant agrément y a accédé, sans qu’il soit possible de connaître dans quelles conditions [3]. A l’étranger, il a parfois été placé des restrictions sur le nombre de personnes, de jours ou l’emplacement de consultation. Il peut s’agir d’un logiciel composé de plusieurs modules, ou de plusieurs logiciels : l’accés s’est-il fait sur la totalité ? Le logiciel a-t-il évolué depuis sa consultation ? En Irlande, l’apparition de nouvelles versions a perturbé son analyse.

Et accès ne veut pas dire analyse exhaustive. Celle-ci sortirait clairement du cadre de l’agrément, qui ne demande même pas un accés.

Les recommandations suivantes, demandant l’accès au code source par des experts, ne se sont traduites par aucune contrainte lors de l’agrément :
- la CNIL, dans sa délibération 03-036 du 1er juillet 2003, recommandation relative à la sécurité des systèmes de vote électronique : « La Commission estime que dans le cas d’une élection organisée par une collectivité publique, le code source des logiciels utilisés par le système de vote électronique devrait être accessible sans restriction, afin de permettre la réalisation de toutes les expertises jugées nécessaires. »
- le Forum des Droits sur l’Internet, dans sa recommandation “Quel avenir pour le vote électronique en France ?”, 26 septembre 2003 : « Le Forum estime que l’intégrité d’un système de vote n’est garantie que dans la mesure où il doit être possible d’en vérifier l’absence de compromissions tant en amont qu’en aval du déroulement du scrutin. Ce contrôle doit être effectué, pour les élections à caractère politique, par des experts agréés par le ministère de l’intérieur. Un système est ainsi réputé intègre si un accès au code source est possible, si aucune modification ultérieure du système ne peut survenir [4] et si un audit a posteriori est effectif. »

Et pourquoi limiter l’accès à des experts ? Une élection doit être transparente. Tous les outils employés dans le cadre d’un scrutin devraient être ouverts à l’examen par les citoyens. Même si cela est en partie illusoire. Tout le monde n’est pas programmeur informatique, et ne dispose pas de plusieurs semaines de temps libre, ni de compétences en sécurité. Et peut-on garantir que la machine à voter devant vous le jour de l’élection contienne bien le logiciel publié ?

A l’étranger :
- en Belgique, le code source est publié sur Internet depuis peu. Les experts désignés par les Parlements ne l’analysent pas, mais émettent toutefois quelques critiques sur sa qualité.
- en Suisse, à Genève, le code source est consultable librement, mais il faut se rendre physiquement dans un batiment précis (informations datées, et le code source pourrait ne pas être complet).
- en Irlande, la Commission on Electronic Voting a eu accès au code source du logiciel comptant les votes. Le système électoral particulier à ce pays (Système de Hare) nécessite un logiciel spécialisé. Cela a été soumis à des conditions drastiques : une seule personne, durant seulement quelques jours, sous surveillance policière. Nedap, responsable du logiciel situé dans les machines, enregistrant les votes, n’a pas donné d’accès à ce moment-là, mais a accepté une future analyse par des experts[eng].
- aux USA, le projet de loi "Count Every Vote Act" prévoit la consultation du code source par tout citoyen après demande à la commission électorale. En Californie, cela fait débat.
- en Australie, le système de vote eVACS a dès le début été conçu selon les principes du logiciel libre, donc totalement public. La généralisation de ce qui n’était jusqu’à lors qu’une expérimentation limitée au petit électorat du Territoire de la capitale australienne(ACT), pourrait conduire à une fermeture du code [5].
- aux Pays-Bas, le code source du système de vote par Internet des expatriés a été publié[eng], mais partiellement : uniquement la partie écrite spécifiquement, excluant ainsi la bibliothèque de code que la société LogicaCMG (qui a développé ce logiciel pour le compte du gouvernement) réutilise pour d’autres applications [6]. Compiler et tester soi-même ce programme est donc impossible.
- la société VoteHere a publié le code source de son système (informations à compléter : voir déjà le commentaire de Jason Kitcat en 2004).

Notes

[1] La comparaison atteint vite ses limites : la recette la plus complexe tiendra sur quelques pages. Le code source d’un logiciel peut faire des millions de lignes.

[2] Bureau Veritas a accédé au code source des machines Nedap et ES&S. Ils nous ont dit avoir bataillé pour l’obtenir. La sécurité était pour eux le principal enjeu : la "recherche de backdoors" selon leurs termes. Backdoor se traduit littéralement par "porte de derrière", sous-entendu d’une maison, analogie qui revient souvent en sécurité informatique. Une backdoor est une possibilité de prise de contrôle dissimulée dans un logiciel, afin d’en altérer le fonctionnement normal.

[3] Nous avons posé en vain la question à Bureau Veritas. Leurs raisons de ne pas donner de détails sont de ne pas susciter la fraude, ainsi que la confidentialité à laquelle les astreint leurs accords avec les constructeurs de machines.

[4] A cet effet, la CNIL évoque le terme de « scellement » d’un système de vote électronique, c’est-à-dire d’un « procédé permettant de déceler toute modification de ce système » (délibération n°03-036 du 1er juillet 2003).

[5] Selon un article sur Information Age de Mike Bowern, actuellement doctorant, et précédemment employé de la société ayant écrit ce logiciel.

[6] Selon la page sur le vote électronique aux Pays-Bas de Wolter Pieters[eng], chercheur à la Radboud University Nijmegen.

©© ordinateurs-de-vote.org - dernière modification : samedi 18 novembre 2017.

2 Messages de forum

  • Indispensable, l’examen du code source n’est pas suffisant en soi !

    En effet le compilateur qui permet de translater ce dernier en exécutable peut y introduire, à l’insu même du programmeur, un back door. (cf. Kenneth Thompson, Reflections on Trusting Trust, Communication of the ACM, Vol. 27, No. 8, August 1984, pp. 761-763)

    Cette possibilité est décrite dans l’article sur les portes dérobées (back doors) de l’encyclopédie en ligne Wikipédia, lui même référencé sur ce site depuis la page "Code-source-definition" : -http://www.recul-democratique.org/C...

    D’autre part un technicien habile et rompu aux calculs binaires pourrait "sans trop" de difficultés, notamment s’il dispose de ce fameux code source, "patcher" directement, et de façon indétectable par les procédures automatiques de contrôle (checksums), cet exécutable pour en altérer le fonctionnement. C’était jusque dans les années 80 une technique courante pour corriger en urgence des erreurs non détectées pendant la phase de déverminage en attendant de pouvoir intégrer une solution définitive dans une nouvelle version deja en développement et proche de sa phase de déploiement.

    Voir en ligne : Porte dérobée (Wikipédia)

    Répondre à ce message

    • J’irai plus loin : l’ensemble de la chaîne devrait être transparente, par exemple le code source du logiciel, la procédure de compilation complète, le code source des compilateurs (avec leurs procédures de compilation), le code source des logiciels supportant le logiciel principal (y compris le système d’exploitation s’il y en a un et les différents microcodes inclus dans les puces de l’ordinateur, notamment ce que sur un PC on appelle le BIOS), avec là aussi les procédures de compilations.
      Bref un expert indépendant doit pouvoir régénérer le binaire complet de façon totalement transparente.
      Cela est probablement un travail énorme sauf à disposer d’un système très minimaliste (matériel électrique trivial avec des relais, au look plus proche des jeux vidéos des années 70 que du thème playskool de windows xp), ce qui à ma connaissance n’est réellement le cas d’aucune machine à voter (d’ailleurs comment faire moderne et djeunz pour un élu en imposant des machines à relais pour voter ?).

      Et même comme cela, quelqu’un qui aurait de gros moyens pourrait ajouter des traitements dans des copies factices de matériels réputés ne pas contenir de logiciel (par exemple avec un micro-processeur modifié n’ayant pas le comportement qu’il devrait en présence d’un programme bien précis à exécuter). Je reconnais que ce scénario est compliqué à mettre en œuvre, même s’il c’est possible.

      De toute façon la vraie question (lancinante sur le sujet des machines à voter) est : pourquoi faire tout ça alors que le papier marche si bien ?

      Répondre à ce message

Répondre à cet article


Suivre la vie du site Syndication/fil RSS 2.0 (explications) | Plan du site | Espace privé | SPIP