Deux voix pour changer une majorité en Belgique

Notre système d’attribution des sièges est extrêmement sensible à la moindre erreur de comptage. Parfois une erreur de comptage de 2 bulletins peut faire basculer une majorité.

Après l’annonce des résultats électoraux pour les communales et les provinciales d’octobre 2018, on devrait pouvoir se demander quel est le degré de précision des résultats et en particulier des décomptes de bulletins. Quel est l’impact de potentielles erreurs de comptage sur les résultats? C’est ce que j’ai cherché à comprendre ici.

L’erreur est humaine…

Dans tout processus impliquant des humains, l’apparition d’erreurs est inévitable. A fortiori si les humains en question ne sont pas ou peu formés à la tâche qui leur est confiée . Il est assez naturel que les citoyens chargés de compter les bulletins de vote lors d’une élection n’échappent pas à la règle.  Les erreurs peuvent prendre plusieurs formes : il peut s’agit d’un bulletin non comptabilisé, comme un bulletin qui s’est égaré [1, 2, 3], ou d’un bulletin mal comptabilisé,  comme un bulletin compté pour un parti ou un candidat alors qu’il en indiquait un autre (on pense aux listes qui comptent parfois plusieurs dizaines de candidats). Ou encore d’un bulletin compté comme nul alors qu’il ne l’est pas, ou pris en compte alors qu’il aurait dû être déclaré nul. Deux mécanismes sont à l’œuvre :  d’une part, une pure erreur de distraction, d’autre part, une interprétation difficile des règles (par exemple une rature peut disqualifier un bulletin pour certains et pas pour d’autres, de même qu’une  case qui ne serait pas coloriée à 100%). Dans certains bureaux de dépouillements les bulletins dits “disputés” sont d’abord classés à part puis, délibérés un à un sur le sens à leur donner (par exemple à Eghezee, ces bulletins comptent pour 2% à 2,5% du total [3a]).

Même si la tâche de compter des bulletins paraît simple, la répétition de cette tâche et les différentes interprétations possibles engendrent ces erreurs de comptage, inéluctablement.

Il existe peu de littérature scientifique sur le sujet. On peut par exemple lire dans une étude effectuée à l’université de Rice [4]  qu’une erreur d’un ordre de grandeur oscillant entre 0,5% et 2% est observée lors du comptage de bulletins. Néanmoins, il est difficile de dire si cette tranche de 0,5 à 2% colle ou non au contexte belge. Par exemple, lors des élections communales à Assesse en 2012, on relève une erreur de comptage de 1,4% [5]. Autre cas, celui d’Antoing en 2018 où 370 bulletins n’ont pris été en compte, ce qui donne une erreur de comptage de 7% [2]. Ou encore, à Erquelinnes en 2018, où un recomptage partiel du scrutin à mené à une différence de 100 bulletins dans un bureau de dépouillement ce qui indiquerait une erreur d’au minimum 1,5% [6, 7]. Néanmoins dans ces deux derniers cas, on manque d’éléments pour conclure qu’il s’agit de pures erreurs de comptage comme défini plus haut. En réalité les cas de recomptages sont peu nombreux et très peu de demandes de recomptage aboutissent à un recomptage effectif. J’ai donc peu de données à ce niveau et je n’ai aucune idée de ce que peut être cette erreur en moyenne en Wallonie.

Dans le cas de Wavre décrit ci-dessous, il semble que l’erreur mesurée soit plutôt de l’ordre de 0,08%. Comme nous allons le voir, même 0,08% d’erreur est suffisant pour modifier les résultats du scrutin dans certains cas.

Le cas de Wavre

Prenons donc le cas de la commune de Wavre. Lors du décompte des élections d’octobre 2018, catastrophe, panne de courant (ah oui parce qu’on n’est pas non plus à l’abri des problèmes techniques…) : « Deux clés USB sur lesquelles tout avait été encodé sont “perdues”.  Il faut recompter les bulletins. » Le président du bureau de dépouillement témoigne : « La situation était intenable. Certains avaient fait beaucoup d’efforts. A 22h00, certains étaient allés jusqu’au bout de leurs forces et ne voulaient pas rester pour recompter les voix. Normalement, on doit rester jusqu’à la fin du dépouillement mais j’ai effectivement pris cette décision de nécessité de libérer des assesseurs et présidents vu la fatigue et l’atmosphère un peu lourde qui régnaient. Et le personnel communal, sous notre contrôle et celui des témoins de partis, s’est dévoué jusqu’au bout. » [8]. Un témoin précise également : « Lorsque l’on a arrêté le travail des assesseurs, certains bulletins de vote ont été déplacés. Certains ont même été posés sur de simples tréteaux. Certains auraient pu être glissés dans un mauvais tas par inadvertance. »[9].

Résultat : le décompte obtenu à 3h30 du matin le lundi 15 octobre 2018 donne le parti vainqueur avec une majorité absolue, mais cette majorité absolue ne tient qu’à une avance de 6 voix sur 21711 bulletins. Une liste demande un troisième recomptage qui aura lieu le 6 novembre : 3995 bulletins sont recomptés sur les 21711 [9], et ce recompte fait apparaître une nouvelle différence de 3 votes (donc 0,08% d’erreur), qui ne modifient pas le résultat annoncé [10]. Cette différence de 3 votes est cependant apparue en recomptant moins de 20% des bulletins, et on peut s’interroger sur le résultat qu’un recompte intégral aurait donné. Et se demander à quel point un nouveau recomptage aurait encore différé du précédent.

On peut prendre le problème à l’envers. Dans le cas de la commune de Wavre, un changement de majorité peut voir le jour si 5 voix changent de camp (la différence entre 5 et 6 voix s’explique par la méthode de calcul de marge de victoire qui est légèrement différente mais 5 est bien le minimum requis). Or, 5 voix sur 21711 bulletins soumis, c’est 0,02 % des bulletins. Il faut donc que l’erreur de comptage soit inférieure à 0,02 %. On est en dessous des 0,08% mesurés. Pour se donner une idée, il pourrait suffire d’une erreur de comptage par tranche de 4000 bulletins pour faire basculer le résultat. Et ce en sachant que le comptage est effectué par des personnes qui effectuent souvent cette tâche pour la première fois, en condition de stress, en fin de week-end, en ayant en tête tout ce qu’il reste à préparer pour la reprise de la semaine le lendemain.

Il semble dès lors bien difficile de se convaincre, au vu des informations communiquées sur les décomptes effectués à Wavre, si oui ou non les bulletins de vote déposés par les votants octroyaient une majorité absolue.

Wavre, un cas isolé ?

Le cas de Wavre n’est malheureusement pas isolé: c’est plutôt l’arbre qui cache la forêt. J’ai calculé, pour toutes les communes wallonnes, les cas où quelques voix peuvent faire changer une majorité en restant systématiquement en dessous d’une erreur de comptage de 1%. Cette limite (arbitraire vu le manque d’études sur le sujet) semble très pessimiste comme dit plus haut. Il ne faut donc pas considérer que 1% d’erreur soit systématique. Par contre aller jusqu’à 1% me permet de considérer de nombreux cas de figure. Voyez donc la tranche de 0 à 1% d’erreur comme ma zone d’exploration pour cet article.

Pour détecter un changement, j’ajoute des voix à une liste que je retire à une autre. Ce sont les résultats que je présente ici. Néanmoins, j’obtiens des résultats similaires à ceux ci-dessous en redistribuant quelques voix de plusieurs listes à une seule. On peut imaginer que d’autres manières de procéder mettraient plus ou moins en évidence le même problème : les marges des résultats sont souvent très minces. Par exemple la marge de 6 voix pour Wavre a été calculée en ajoutant ces voix à une liste mais sans compenser le déplacement de voix. Supposer des erreurs de comptage totalement aléatoires donnerait lieu, dans une certaine mesure, à des erreurs se compensant l’une l’autre, mais comment savoir si les erreurs commises sont réellement aléatoires ou reflètent des biais des personnes effectuant le décompte?

Les résultats

Le record va à la commune de Belœil pour laquelle deux voix suffisent à faire basculer la majorité. Voici les dix premières communes pour lesquelles les plus petites erreurs de comptage auraient un impact (c’est-à-dire que de nouvelles majorités sont possibles) :

Rang Commune Nombre de voix suffisant pour changer la majorité Erreur maximum admissible sur le total de bulletins soumis
1 Beloeil 2 0,021%
2 Wavre 5 0,023%
3 Gembloux 6 0,034%
4 Tubize 9 0,058%
5 Lessines 8 0,064%
6 Frameries 10 0,072%
7 Liège 117 0,109%
8 Estinnes 7 0,129%
9 Braine-le-Comte-Chevigny 19 0,134%
10 Ecaussinnes 11 0,147%

Cette liste ne s’arrête pas là. J’ai recensé 64 communes pour lesquelles une erreur de moins de 1% lors du décompte peut conduire à un changement dans les majorités possibles dont 43 pour lesquelles l’erreur doit être en dessous de 0,5%. Par ailleurs, si l’on regarde maintenant les communes pour lesquelles une erreur de moins de 1% modifie l’attribution des sièges au sein des listes, alors pas moins de 181 communes sont concernées, c’est-à-dire une large majorité. Par exemple à Florennes, une voix suffit à faire passer un siège d’une liste à une autre.

Je reprends ici les résultats détaillés pour toutes les communes wallonnes.

J’ai réalisé des tests similaires pour les circonscriptions électorales pour la chambre des représentants côté Wallon pour les élections fédérales de mai 2019 : résultats ici. On remarque que pour les élections fédérales, ces marges d’erreurs sont plus élevées, allant de 0,16% à plus de 1%.

Pour conforter nos résultats, nous avons procédé à des simulations de comptage de bulletins avec un taux d’erreur fixé de 1% pour voir l’impact des mécanismes de compensation (une liste perd et gagne des voix à cause des erreurs de comptage). Ces simulations conduisent aux mêmes conclusions que ci-dessus, à savoir, les marges de victoire sont souvent inférieures au seuil d’erreur moyen. En étudiant ces seuils, on peut dégager des lois statistiques qui les régissent (détails ici). En cas d’erreurs “honnêtes”, on peut s’attendre à ce que ces erreurs se produisent de manière aléatoire et se compensent les unes les autres dans une certaine mesure. Pour les décompte étudiés ici, et selon les simulations d’erreurs que nous avons effectuées, le niveau de ces compensations reste cependant bien insuffisant que pour arriver en dehors de la marge d’erreur. Et les compensations se font de manière plus faibles encore si on fait l’hypothèse d’erreurs causées par l’habitude qui auraient tendance à soutenir les partis fortement soutenus.

[ERRATUM (18/07/2023) : la version précédente des résultats contenait des erreurs de nouvelle répartition pour la chambre. Une mauvaise clé de calculs des quotients avait été utilisée. Il y avait également des nouvelles répartitions excédentaires qui apparaissaient dû au fait que le seuil électoral de 5% n’était pas respecté dans ces cas là. Ces erreurs sont à présent corrigées. Elles ne changent en rien la discussion générale de cet article.]

Des conséquences en cascade

Toutes ces difficultés ne concernent pas seulement les attributions de sièges au sein des collèges communaux, mais aussi l’attribution des sièges au sein de toute une série de commissions (si l’on pense aux commissions parlementaires) et de mandats. En effet, c’est souvent sur base des résultats électoraux que l’on calcule et distribue ce genre de mandats en suivant la clé D’Hondt ou la clé  Imperiali qui est d’application dans notre cas (voir par exemple [11] pour l’explication de cette attribution).

Comment améliorer les résultats électoraux?

Une élection est comme une photographie à un instant donné de l’ensemble des choix du corps électoral. La question que l’on pose ici est de savoir comment faire la photo la plus nette possible : comment obtenir des résultats électoraux de la meilleure qualité possible?

On l’a vu, les erreurs sur les décomptes surviennent naturellement. On peut s’attendre à ce que les résultats soient entachés d’une erreur de mesure. On ne connaît pas la quantité d’erreurs qui se produisent :  0,08% à Wavre mais peut-être plus en moyenne.  Il serait certainement intéressant de procéder à un recompte systématique des bulletins dans un certain nombre de juridictions, en vue d’obtenir une  mesure plus précise de l’ampleur des erreurs de comptage. Mais, on l’a vu, il en faut parfois très peu pour faire basculer des majorités et redistribuer les cartes fort différemment pour toute la durée d’une législature. Il est donc indispensable d’avoir des résultats corrects avec une marge d’erreur inférieure à 0,01%. Comment y arriver? Avec un décompte purement papier, cela semble essentiellement impossible à atteindre à moins de mettre en place de très importants moyens humains et financiers, impliquant notamment davantage de formation, de contrôles et de drill.

Compter à l’aide de machines

S’il y a bien une chose qu’une machine fait mieux que l’homme, c’est compter. Un ordinateur ne se trompe pas en comptant. L’usage d’ordinateurs pour l’expression d’un vote supprime aussi les problèmes d’interprétation à la lecture (le fameux problème de la case à moitié coloriée) éliminant aussi toutes les erreurs découlant d’une mauvaise interprétation des bulletins. Même si l’on s’écarte du sujet ici, notons que l’informatique donne accès à des méthodes de scrutins plus élaborées (scrutin à vote unique transférable, jugement majoritaire, démocratie liquide, etc.) plus difficilement envisageables avec du vote strictement papier.

Les bugs et le piratage informatique sont une objection importante au comptage informatisé de bulletins de vote. Des systèmes de vote combinant les bulletins papier au comptage électronique apportent des solutions à ce problème : en laissant aux machines le soin de compter, des procédures de “risk limiting audit” [11b] permettent, en examinant un petit nombre de bulletins papier, de garantir que les attributions de sièges résultant du décompte électronique sont correctes. Par exemple, pour les élections fédérales de mai 2019, dans la circonscription du Luxembourg ou l’erreur minimale admise est de 0,16%, il faudrait selon cette méthode, recompter au moins 2963 bulletins (sur les 188681 soumis). Ce nombre peut augmenter si des erreurs sont trouvées dans ces bulletins. Ce recomptage nous semble bien en valoir la peine car il nous garantit que le résultat du scrutin est correct avec une confiance de 90%.  Dans les cas où la marge d’erreur admissible est plus faible, ce nombre de bulletins minimum à examiner diminue (ainsi dans la circonscription du Hainaut, il faudrait recompter 683 bulletins sur les 810896 soumis).

Le vote  électronique a cependant été massivement abandonné en Wallonie  pour des raisons de coût et de fiabilité [12]. Malgré les avantages pointés ci-dessus, force est de constater que les systèmes de vote électronique déployés en Belgique ont aussi suscité leur lot de problèmes et de questions (voir par exemple [3] et [13]).

Néanmoins, si on souhaite aujourd’hui pouvoir réduire la marge d’erreur en-dessous d’un niveau acceptable, il semble n’y avoir que deux voies possibles : le vote papier avec beaucoup plus de moyens financiers et humains ou le comptage des bulletins assisté par des outils électroniques plus fiables. Sur cette base,  on peut s’attendre à ce que la différence de coût entre vote papier et vote électronique diminue voire s’inverse et que ceci ne constitue plus un argument en faveur du vote purement papier.

La question qui reste est donc : “Souhaitons-nous améliorer la qualité de nos résultats électoraux ?” Souhaitons-nous faire la photographie la plus nette possible pour poser les choix de notre démocratie qui correspondent aux choix de ses citoyens? Ou bien souhaitons-nous garder le système actuel qui, exprimé de manière peut-être un peu provocatrice,   semble parfois ressembler à une loterie particulièrement complexe et coûteuse ?

[1] D’importantes lacunes mises au jour lors des élections communales à Charleroi, La Libre, 01/04/2019, https://www.lalibre.be/actu/politique-belge/d-importantes-lacunes-mises-au-jour-lors-des-elections-communales-a-charleroi-5ca199859978e263332db23a

[2] 370 bulletins de vote ont été “oubliés” à Antoing: “Ce n’est pas normal”, Belga, 15 octobre 2018 à 10h32, https://www.lalibre.be/regions/hainaut/370-bulletins-de-vote-ont-ete-oublies-a-antoing-ce-n-est-pas-normal-5bc44fc4cd70e3d2f62d3cac

[3] Médor, Le jour où la Belgique a buggé, https://medor.coop/media/filer_public/5f/9f/5f9f29ca-5556-42f9-8f80-90b683243b90/medor-bug-12-05-2015.pdf

[3a] STAR Vote in Belgium, Charlotte Poncette, mémoire de master, École polytechnique de Louvain, 2019, p. 12.

[4] Rice University. “Hand counts of votes may cause errors.” ScienceDaily. Février 2012. http://news.rice.edu/2012/02/02/hand-counts-of-votes-may-cause-errors-says-new-rice-u-study/

[5] Communales 2012: scrutin annulé, on va certainement revoter à Assesse, Colette Jaspers, François Louis et Danielle Welter, RTBF info, 13/11/2012, https://www.rtbf.be/info/regions/detail_communales-2012-on-recompte-les-bulletins-de-votes-d-assesse-ce-matin?id=7873445

[6] Elections enfin validées à Pont-à-Celles et Erquelinnes, La Province, le 21/11/2018, https://www.laprovince.be/310663/article/2018-11-21/elections-enfin-validees-pont-celles-et-erquelinnes

[7] Validation des élections communales pour Pont-à-Celles et Erquelinnes, L’Avenir, 21/11/2018, https://www.lavenir.net/cnt/dmf20181121_01260157/validation-des-elections-communales-pour-pont-a-celles-et-erquelinnes

[8] Panne de courant, rappel du personnel, majorité à 6 voix près: “Non, il n’y a pas eu de tricherie à Wavre”, Li. B., La DH, 16 octobre 2018, https://www.dhnet.be/regions/brabant/panne-de-courant-rappel-du-personnel-majorite-a-6-voix-pres-non-il-n-y-a-pas-eu-de-tricherie-a-wavre-5bc5ed8dcd70e3d2f62fd432

[9] Elections communales suite : le recomptage pour Wavre ce sera mardi, Fabien Van Eeckhaut et Danielle Welter, RTBF INFO, 2 novembre 2018, https://www.rtbf.be/info/belgique/detail_elections-communales-suite-le-recomptage-pour-wavre-ce-sera-mardi?id=10062667

[10] Wavre: pas de changement dans les résultats suite au recomptage des bulletins, L’Avenir, 6 novembre 2018, https://www.lavenir.net/cnt/dmf20181106_01252970/wavre-pas-de-changement-dans-les-resultats-suite-au-recomptage-des-bulletins

[11] http://electionslocales.wallonie.be/candidats/foire-aux-questions/repartition-voix-sieges-apparentement

[11b] A Gentle Introduction to Risk-limiting Audits

[12] Réponse du Ministre Furlan à une question parlementaire, Doc. parl., P.W., CRIC n° 162, 2010-2011, pp. 18-23. http://nautilus.parlement-wallon.be/Archives/2010_2011/CRIC/cric162.pdf

[13] Le vote électronique presque aussi peu fiable que le papier, Thomas Casavecchia, Le Soir, 17 octobre 2018, https://plus.lesoir.be/185118/article/2018-10-17/le-vote-electronique-presque-aussi-peu-fiable-que-le-papier?

Remerciement

Un remerciement particulier à Cyprien Delpech de Saint Guilhem pour avoir spotter l’erreur pour les résultats de la chambre!

Nouvelles faiblesses dans sVote

Le test d’intrusion que Swiss Post a organisé pour son système de vote, est arrivé à sa fin ce dimanche 24 mars.

Suites de la découverte d’une trappe dans sVote.

Il y a deux semaines, Sarah Jamie Lewis, Vanessa Teague et moi annoncions l’existence d’une trappe dans l’un des mécanismes que le système sVote utilise pour prouver que l’intégrité des votes a été préservée lors du processus de dépouillement — il s’agissait plus précisément d’une trappe dans la preuve de mélange des bulletins de vote, qui permettrait de modifier ces votes de manière indétectable.

La publication de cette trappe ne devait avoir de conséquence pour aucune élection: le système publié par Swiss Post n’a pas encore été utilisé.
Il est cependant apparu que le code dans lequel la trappe était présente, qui a été réalisé par la société Scytl, était déployé au même moment pour des élections dans l’état du New South Wales (NSW) en Australie, au travers du  système iVote dont le code n’est pas ouvert à l’examen public. La Commission électorale de l’état du NSW (NSWEC), a immédiatement déclaré que l’erreur avait été corrigée, à temps avant que le décompte n’ait lieu, et que l’élection ne serait pas affectée. Le NSW a ainsi pu bénéficier des effets de l’ordonnance de la Chancellerie fédérale suisse imposant le libre accès au code source de ses systèmes de vote (à partir d’un certain niveau d’usage), soulignant ainsi les avantages d’un débat public sur la sécurité de systèmes critiques.

Un nouveau problème

Nous faisons état aujourd’hui de notre découverte d’un second problème critique dans sVote, totalement indépendant du premier: il est possible d’invalider des bulletins de vote parfaitement valides, sans que les processus d’audit ne le détectent. A nouveau, le problème se situe dans les mécanismes de preuve d’intégrité des bulletins de vote du protocole sVote, qui permettent cette fois à une machine en charge du déchiffrement des bulletins de vote d’invalider un nombre quelconque de bulletins, tout en apportant toutes les preuves requises par le système. Notre rapport montre en effet qu’il est possible de falsifier les preuves de correction des opérations de déchiffrement utilisées dans sVote, et de convaincre n’importe quel auditeur que des bulletins sont invalides, alors que ces bulletins sont en réalité valides.

Interpellés par ce problème, nous avons immédiatement averti Swiss Post et NSWEC de notre découverte, et des premiers pas de notre investigation de ses conséquences: ce problème, qui aurait dû pouvoir être examiné en détail hors de tout déploiement du système Swiss Post, se trouvait à présent susceptible d’avoir un impact sur une élection en cours en NSW. Ce samedi, la NSWEC a spontanément annoncé que ce nouveau problème n’avait pas d’impact sur leur système.

Une tentation pourrait être de minimiser l’importance de cette nouvelle faille dans la mesure où, pour le moment, elle semble “seulement” permettre d’invalider des bulletins de vote. Et ces bulletins déclarés invalides, bien que conformes aux procédures d’audit du système, risquent de susciter des questions. (Trouver la réponse à apporter à ces questions semble par contre plus complexe: comment détecter qui a triché sans violer la confidentialité des votes si on ne peut pas croire les preuves fournies par le système?)

Ce serait passer à côté de deux autres points. Premièrement, le problème n’est pas isolé, ce qui soulève la question de la présence d’autres faiblesses.  Outre la trappe identifiée précédemment, notre rapport fait état d’un certain nombre d’autres faiblesses dans les mécanismes de preuve présents dans le code de sVote: le problème identifié dans la preuve de déchiffrement se retrouve à d’autres endroits dans le système, d’autres difficultés existent, mais leur impact nous est encore inconnu. Deuxièmement, et de manière plus fondamentale, mesurer l’importance des faiblesses du protocole sVote à leur impact en terme d’attaques possibles passe à côté de l’objectif principal que vise ce protocole, et qui est requis par la Chancellerie fédérale suisse: offrir des élections vérifiables.

Qu’est-ce qu’une élection vérifiable?

L’organisation d’élections vérifiables passe par deux étapes:

  1. La définition d’un processus d’audit qui indique la procédure à suivre pour vérifier les résultats d’une élection, et
  2. La démonstration qu’un audit réussi garantit que le résultat de l’élection est correct.

La faille que nous avons identifiée montre, tout comme la précédente, que les hypothèses faites dans cette démonstration ne sont pas satisfaites, parce que les preuves fournies par le système peuvent être falsifiées. En l’état, sVote ne permet donc pas l’organisation d’élections vérifiables.

Pour plus d’informations:

Cette recherche a bénéficié du soutien du F.R.S.-FNRS via le projet SeVote.

Une trappe dans sVote, le système suisse de vote par internet

En collaboration avec Sarah Jamie Lewis et Vanessa Teague, nous avons effectué quelques coups de sonde dans le code du système suisse de vote par internet sVote.

La pratique du vote par internet connaît un développement croissant en Suisse: au départ, depuis 2003, de référendums à  portée limitée, le vote par internet a été graduellement proposé à  un nombre croissant de citoyens.

La Chancellerie fédérale suisse balise ce déploiement, en imposant des contraintes de sécurité allant croissant selon la proportion des électeurs qui seraient autorisés à  voter par internet.

Le système de vote électronique de la Poste suisse, basé sur le protocole sVote développé par la société Scytl, est le premier à  avoir passé la barre d’une certification pour plus de 30% de votants, et à  voir ainsi son usage autorisé jusqu’à  une proportion de 50% des votants d’un canton.

Swiss Post souhaite aujourd’hui que sVote puisse franchir cette barre des 50%, et le système doit pour cela satisfaire un certain nombre de conditions fort strictes. Notamment:

  • Les votants ou les vérificateurs doivent avoir la possibilité, dans le respect du secret du vote, d’identifier toute manipulation aboutissant à une falsification des résultats (Art 5).
  • Le code source du logiciel du système doit être publié. […] Toute personne a le droit non seulement d’examiner, de modifier, de compiler et d’exécuter le code source à des fins idéales, mais aussi de rédiger des études en la matière et de les publier. (Art. 7.a et 7.b)

Suite à la publication de ce code, nous avons effectué des coups de sonde afin de déterminer la manière dont il pourrait garantir les propriétés de vérifiabilité  annoncées et requises.

Notre investigation nous a mené à  la mise en évidence d’une trappe dans le système sVote, trappe qui pourrait permettre aux opérateurs du système de vote, ou à  une personne qui serait parvenue à  s’introduire dans leur système informatique, de modifier un nombre quelconque de votes, et d’ainsi produire un résultat d’élection qui ne serait pas conforme aux votes transmis par les électeurs. De manière préoccupante, cette trappe permettrait de modifier les votes d’une manière qui est indétectable par les mécanismes de vérification spécifiés par la système. Dès lors, l’usage de ces mécanismes de vérification convaincrait, à  tort, à n’importe quel auditeur de la correction des résultats.  Qui plus est, même en connaissant le fonctionnement de la trappe, il ne serait pas possible de détecter la manipulation en examinant les “preuves” fournies par le système : l’exploitation de cette trappe ne laisse aucune trace.

L’existence de cette trappe est préoccupante. L’interprétation la plus évidente serait que les mécanismes cryptographiques présents dans le système ont été mis en œuvre de manière erronée: la présence de cette trappe peur être expliquée par la mise en œuvre de protocoles cryptographiques par des personnes bien intentionnées mais n’ayant qu’une compréhension très superficielle de ceux-ci. Bien sûr, si une personne mal intentionnée souhaitait introduire une trappe dans un système, il serait préférable de choisir une trappe qui pourrait être présentée, si elle venait à  être découverte, comme une erreur involontaire ou une négligence. Notre examen du code ne nous donne aucune indication allant dans un sens ou dans l’autre.

La découverte de cette trappe pose évidemment de nombreuses questions.

  • Est-il possible que cette trappe ait déjà  été exploitée dans une élection?
    La version du code de sVote que nous avons examinée n’a, à  notre connaissance, jamais été déployée. S’il s’avérait que la partie du code contenant la trappe avait été déployée dans d’autres contextes, il resterait possible de tester son éventuelle exploitation en reproduisant la procédure de décompte au moyen de mécanismes cryptographiques effectivement vérifiables (et ce pour autant que les données nécessaires sont encore disponibles).
  • Scytl a publié différents documents présentant des preuves de la vérifiabilité du système sVote. Ces preuves sont-elles erronées?
    Nous n’avons aucune indication que les “preuves” proposées sont erronées. Les preuves de la sécurité de sVote ne sont proposées que moyennant des hypothèses particulièrement fortes, portant notamment sur la sécurité des composants de sVote, pris individuellement.  Notre analyse montre que certaines de ces hypothèses ne sont pas satisfaites, ce qui rend ces preuves inopérantes. Une analyse détaillée de sVote, qui se passerait de ces hypothèses ou les affaiblirait sensiblement, et qui serait plus proche de ce qui est fait pour d’autres protocoles critiques (comme TLS 1.3), est essentiellement hors de ce qu’il est possible de réaliser avec les connaissances actuelles et moyennant un effort raisonnable. Bon nombre de chercheurs dans le monde travaillent à  améliorer ces méthodes d’analyse, qui peuvent sensiblement améliorer la compréhension du fonctionnement d’un système et révéler des erreurs ou omissions.
  • Est-il possible de modifier sVote pour retirer cette trappe?
    Oui: il existe différents mécanismes cryptographiques, bien documentés dans la littérature scientifique, dont la mise en œuvre permettrait de démontrer et de vérifier, à  l’avenir, l’absence de cette trappe. Swiss Post propose aujourd’hui d’utiliser une solution de ce type.
  • Est-il possible qu’il existe d’autres trappes ou vulnérabilités critiques dans sVote?
    Ce système est remarquablement complexe, et notre analyse n’a procédé que par coups de sonde sur une période de temps très limitée — le code source contient plus de 6000 fichiers. Notre analyse reste bien trop partielle que pour suggérer qu’il n’y aurait pas d’autre vulnérabilité importante dans ce système.

Pour plus d’informations:

Cette recherche a bénéficié du soutien du F.R.S.-FNRS via le projet SeVote.

Vote électronique – Vote Vérifiable

Suffragium ex Machina

Quelle idée d’utiliser une machine pour remplacer une bête feuille et un crayon rouge à  la portée de tout le monde pas vrai ? Et puis cette utilisation à  tout prix de la technologie pour la technologie ça fait vraiment gadget non ? Pourquoi aller s’encombrer avec des machines qui coûtent cher, qui cassent tout le temps et qui ne sont manipulables que par quelques geeks ?

Oui oui oui ! Toutes ces questions sont pertinentes et super intéressantes, mais avant d’en débattre il sera utile d’en connaître un peu plus sur le vote électronique. Continue reading “Vote électronique – Vote Vérifiable”