280 000 personnes avaient déjà voté en ligne avant que quiconque ne remarque la faille
Pendant une élection en direct avec 280 000 votes déjà comptabilisés, deux chercheurs ont découvert une faille que l'examen de sécurité officiel avait ratée — et le système de vérification censé la détecter était également défaillant.
Nous sommes en mars 2015, et quelque part en Nouvelle-Galles du Sud, un électeur ouvre un navigateur, suit un lien et vote lors d'une élection d'État. Le processus entier prend quelques minutes. Pas de file d'attente. Pas de bureau de vote. Juste un formulaire, un clic et un message de confirmation.
Ce que cet électeur ne sait pas — ce que personne en dehors d'une petite équipe de recherche ne sait pas encore — c'est que le code s'exécutant sous son navigateur est chargé via une connexion présentant une faille de sécurité connue. Un attaquant réseau assis entre l'électeur et le serveur aurait pu, en principe, modifier ce code avant le chargement de la page. Que le service de vérification téléphonique distinct que le système offrait comme contrôle d'intégrité aurait lui-même pu être contourné. Et qu'un examen de sécurité antérieur avait examiné ce système et n'avait rien trouvé de tout cela.
Au moment où les chercheurs J. Alex Halderman et Vanessa Teague ont rendu publics leurs résultats, environ 280 000 votes avaient déjà été comptabilisés.
Le système qui s'est auto-validé
Le système iVote n'était pas une expérience clandestine ou une mesure bâclée. La Nouvelle-Galles du Sud y avait investi délibérément, l'offrant aux électeurs aveugles ou en situation de handicap visuel, éloignés, ou simplement qui préféraient la commodité du vote en ligne. Il avait réussi un examen de sécurité officiel pré-électoral. Les autorités connaissaient les risques du vote par internet — elles avaient examiné le système à cet égard. Elles ont conclu qu'il était prêt.
Un examen fermé qui valide un système n'est pas la même chose que ce système étant sécurisé.
Voici ce que l'examen officiel n'a pas détecté, selon l'article évalué par les pairs que Halderman et Teague ont publié à E-Vote-ID 2015 : iVote chargeait du JavaScript externe — du code s'exécutant dans le navigateur de l'électeur — depuis un serveur d'analyse via une connexion vulnérable aux attaques FREAK et Logjam. Il s'agissait de faiblesses TLS connues et documentées qui avaient été divulguées publiquement. Un attaquant positionné sur le réseau exploitant cette faiblesse aurait pu injecter du code malveillant dans la page iVote avant qu'elle n'atteigne l'électeur, en altérant potentiellement le déroulement du vote sans la connaissance de l'électeur. L'attaquant n'aurait pas eu besoin de s'introduire dans les propres serveurs de la commission électorale. Il aurait juste eu besoin d'être au bon endroit sur le réseau.
Les chercheurs ont également examiné le service de vérification téléphonique d'iVote — la fonctionnalité que le système offrait comme moyen pour les électeurs de confirmer que leur vote avait été enregistré correctement. Ce qu'ils ont découvert, c'est que le service lui-même était susceptible d'être manipulé d'une manière qui pouvait faire apparaître un vote altéré comme vérifié. La vérification était vérifiée par rapport à une source qui pouvait également être modifiée.
Ce n'est pas un filet de sécurité. C'est l'illusion d'un.
Ce que « après qu'un examen antérieur l'ait validé » signifie réellement
Soyons précis concernant la chronologie des événements, car la chronologie est toute l'histoire.
Un examen de sécurité a été mené avant l'élection. L'examen n'a pas trouvé les vulnérabilités que Halderman et Teague ont trouvées. L'élection a commencé. Les votes se sont accumulés — atteignant finalement environ 280 000. Puis deux chercheurs indépendants, travaillant en dehors de la commission électorale et en dehors des examinateurs contractés, ont analysé le système en fonctionnement et ont trouvé des failles sérieuses. Ils ont divulgué les problèmes. Un correctif a été déployé tandis que le vote était encore en cours.
En d'autres termes : l'examen de sécurité officiel pré-électoral a donné une approbation. Deux outsiders sans enjeu institutionnel dans la réponse ont trouvé ce que l'examen officiel avait ratée. Les problèmes ont été découverts non pas parce que le processus fonctionnait, mais parce que des chercheurs indépendants ont décidé de regarder — de leur propre initiative, lors d'une élection en direct.
« C'est passé son examen de sécurité » est une affirmation concernant un instantané. Ce n'est pas une affirmation concernant le système qui s'exécute le jour de l'élection.
C'est le problème de l'instantané de certification. Un examen est mené à un moment donné, sur le code et la configuration qui existent à ce moment, en utilisant le plan de test et le modèle de menace que les examinateurs ont apportés avec eux. Si le modèle de menace a manqué une classe d'attaque TLS connue, ces vulnérabilités n'apparaissent pas dans le rapport. Le système change légèrement — une bibliothèque d'analyse tierces est mise à jour, un paramètre de configuration se décale — et l'examen ne couvre plus ce qui s'exécute réellement.
La Cour constitutionnelle allemande a affronté une version de ce problème en 2009, quand elle a jugé que le vote électronique n'est constitutionnellement légitime que lorsque les citoyens ordinaires peuvent vérifier chaque étape essentielle sans connaissances spécialisées. Les électeurs vérifiant un écran après avoir cliqué sur « Soumettre » et reçu un message de confirmation ne peuvent pas le faire. De plus, il s'avère qu'une équipe de sécurité pré-électorale qui ne regarde pas une dépendance externe spécifique chargée via TLS ne le peut pas non plus.
Le mécanisme de vérification qui n'a pas vérifié
Le détail qui mérite que vous vous y arrêtiez un moment est la vérification téléphonique.
iVote donnait aux électeurs un moyen d'appeler et de vérifier que leur vote avait été enregistré comme prévu. C'est le bon instinct. La vérifiabilité de bout en bout — la capacité pour un électeur de confirmer que son bulletin a été capturé correctement — est une véritable exigence de sécurité, pas une fonctionnalité marketing. La Norvège, l'Estonie et la Suisse se sont toutes battues sérieusement sur la façon de la fournir. Le système 2019 de Swiss Post utilisait des preuves cryptographiques pour offrir ce qu'elle appelait la vérifiabilité universelle, jusqu'à ce que des chercheurs indépendants découvrent une trappe dans le mixnet qui pouvait générer une preuve convaincante tout en cachant les votes altérés.
L'impulsion de donner aux électeurs un contrôle sur le système est exactement juste. Le problème survient quand ce contrôle s'exécute sur la même infrastructure que ce qu'il vérifie — ou quand il peut être manipulé par le même attaquant qui pourrait manipuler le vote lui-même.
Ce n'est pas un risque hypothétique. Halderman et Teague ont documenté que la vérification téléphonique d'iVote était elle-même susceptible d'être manipulée de manière à produire une fausse confirmation. Un électeur appelant pour vérifier son bulletin entendrait que tout allait bien. Un électeur dont le bulletin aurait été altéré par un attaquant réseau entendrait également que tout allait bien. Le service de vérification et la vulnérabilité vivaient dans le même écosystème.
Un mécanisme de vérification qui peut être trompé par la même attaque que le système sous-jacent ne vérifie rien. Il offre du réconfort, et le réconfort n'est pas une propriété de sécurité.
Pourquoi « indépendant » fait tout le travail
Voici la vérité inconfortable de l'épisode de la Nouvelle-Galles du Sud : personne dans la chaîne officielle ne l'a attrapé.
Pas le fournisseur. Pas l'équipe propre de la commission électorale. Pas les examinateurs de sécurité contractés. C'est deux universitaires qui n'ont pas été demandés, pas payés, et pas reçu d'accès spécial à un environnement de test. Ils ont analysé le système de production — celui traitant les vrais votes de vrais électeurs — et ont trouvé ce que le processus officiel n'avait pas.
Washington, D.C. en 2010 est la comparaison la plus utile. Avant de déployer un système de retour de bulletin par internet pour les électeurs à l'étranger, D.C. a mené un essai public ouvert et a explicitement invité le public à l'attaquer. Une équipe de l'Université du Michigan dirigée par Halderman a obtenu un contrôle quasi complet du serveur pilote en environ 48 heures, a modifié les bulletins qui avaient été votés, et a laissé la chanson du combat jouer comme preuve de leur accès. D.C. a abandonné le système. Aucun vrai vote n'a été affecté. Les vulnérabilités ont été attrapées parce que le test était explicitement ouvert — n'importe qui pouvait essayer, et l'équipe qui l'a fait a trouvé ce que les tests internes fermés n'avaient pas.
Le cas de la Nouvelle-Galles du Sud est le reflet de D.C. Pas de test public ouvert. Un examen fermé qui a validé le système. Les vulnérabilités trouvées quand même, par des chercheurs indépendants, après que des vrais votes soient déjà dans le système.
La différence entre un désastre et un défaut attrapé est souvent juste si le bon outsider s'est décidé à regarder.
C'est une phrase inconfortable, parce qu'elle signifie que la sécurité d'une élection peut dépendre de l'initiative de chercheurs qui ne font pas partie du processus officiel et qui n'auraient facilement pas pu regarder. Cela signifie également que quand ils regardent et trouvent quelque chose, la réponse officielle devrait être « merci et voici ce que nous avons changé » — non pas « notre examen avait déjà validé le système. »
L'examen qui valide le système est le point de données qui devrait vous inquiéter, pas vous rassurer. Il vous dit qu'un examen fermé n'a pas trouvé ce qu'un examen ouvert a trouvé plus tard. La réponse appropriée est de demander ce d'autre que l'examen fermé n'aurait pu trouver.
Le problème de l'instantané s'étend plus loin
Chaque système de vote certifié au monde a été certifié à un moment qui est maintenant dans le passé.
La Commission d'assistance électorale des États-Unis certifie les systèmes de vote contre les Directives volontaires pour les systèmes de vote. Un rapport de la GAO de 2005 a constaté que même l'infrastructure de base pour ce programme de certification était incomplète, des années après que la Loi sur l'aide au vote améliore ait l'ait mandaté. Les normes sont établies. Les systèmes sont testés contre elles. La certification est délivrée.
Puis le temps passe. De nouvelles classes d'attaque sont découvertes. Les dépendances sont mises à jour. Les configurations se décalent. Et la certification, qui était un instantané d'un système par rapport à une norme à un moment donné, reste accrochée au mur comme une photographie encadrée d'un bâtiment qui a depuis été rénové.
Le problème plus profond est qu'aucun processus de certification ne peut tenir compte des classes d'attaque qui n'étaient pas dans le modèle de menace quand l'examen a été mené. FREAK et Logjam étaient des faiblesses publiquement connues quand iVote s'exécutait. Elles étaient dans la littérature académique. Elles avaient des noms. Et elles n'étaient apparemment pas dans le plan de test qui a validé le système.
Ce n'est pas un argument contre la certification — c'est un argument que la certification est nécessaire mais insuffisante, et que son suffisance s'érode au fil du temps. La version honnête de « ce système est certifié » est : « ce système a réussi un examen par rapport à une norme spécifique, mené par une équipe spécifique, en utilisant un modèle de menace spécifique, à un moment spécifique. Aucune de ces choses n'est garantie de rester actuelle. »
La solution n'est pas un meilleur instantané. La solution est la vérifiabilité continue, ouverte et indépendante — de sorte que la question n'est pas « a-t-il réussi son examen ? » mais « pouvez-vous me montrer les mathématiques ? »
Ce que « indépendamment vérifiable » exige réellement
L'histoire d'iVote en Nouvelle-Galles du Sud se termine par un correctif déployé au milieu de l'élection et un système qui a continué à fonctionner. L'élection n'a pas été arrêtée. Les 280 000 votes déjà comptabilisés n'ont pas été refaits. Il n'y avait aucun mécanisme pour confirmer rétrospectivement si l'un de ces votes avait été altéré avant le correctif.
C'est la partie difficile de l'histoire qui ne se résout pas proprement.
Le système i-voting estonien, que l'équipe de Springall, Finkbeiner et Halderman a analysée en 2014, offrait au moins un code source partiel pour examen indépendant. Les chercheurs ont trouvé de sérieuses faiblesses de sécurité opérationnelle et ont conclu qu'un attaquant bien doté aurait pu altérer les votes de manière indétectable. L'Estonie a contesté les conclusions. Le système a continué à fonctionner. La contestation et la continuation ne sont pas la même chose que la résolution.
Le système 2019 de Swiss Post est allé plus loin encore — il a publié son code source complet pour examen public avant le déploiement dans les élections contraignantes. Des chercheurs indépendants ont trouvé la trappe dans la preuve de mélange. Les autorités suisses ont suspendu le système. C'est le plus proche d'une histoire de succès dans ce domaine : source publiée, faille trouvée, système arrêté avant que des vrais votes soient affectés.
La progression de la Nouvelle-Galles du Sud à l'Estonie à la Suisse est une progression vers l'ouverture. Nouvelle-Galles du Sud : examen fermé, failles trouvées lors d'une élection en direct, aucun mécanisme pour que les électeurs vérifient rétrospectivement. Estonie : ouverture partielle, analyse indépendante, conclusions contestées. Suisse : publication complète, faille cryptographique trouvée avant utilisation contraignante, système suspendu.
La direction est importante. Mais remarquez ce que la Suisse a dû faire pour réussir : non seulement la publication, mais des cryptographes avec les outils et les connaissances pour repérer une trappe subtile dans une preuve de mixnet. Vanessa Teague — qui a travaillé à la fois sur l'analyse de la Nouvelle-Galles du Sud et sur l'analyse de Swiss Post — est l'une d'un petit nombre de personnes au monde qui peut lire une preuve de mélange et remarquer que quelque chose n'y va pas.
« Indépendamment vérifiable » n'est pas la même chose que « techniquement possible pour n'importe quel citoyen de vérifier. » Pour le vote par internet cryptographique, la vérifiabilité indépendante authentique exige un engagement actif et ouvert de la part des outsiders qualifiés — et un processus qui le sollicite activement, pas un qui le tolère seulement après que les chercheurs décident d'eux-mêmes de regarder.
La cour électorale brésilienne dirige un programme officiel public de test de sécurité à chaque cycle électoral, invitant n'importe quel citoyen qualifié à essayer de casser le système et en réparant ce qu'il trouve. Ce n'est pas un modèle parfait — il teste des systèmes spécifiques dans des configurations spécifiques à des moments spécifiques, et les problèmes qui n'ont pas surgi dans le test peuvent toujours exister dans le système de production. Mais c'est structurellement mieux qu'un examen fermé, parce qu'il est ouvert, adversarial et institutionnalisé plutôt qu'occasionnel et accidentel.
Ce qui n'est toujours pas vérifiable
Voici ce que ni l'examen post-électoral officiel de la Nouvelle-Galles du Sud ni l'article de recherche indépendant ne peut vous dire : si l'un des 280 000 votes comptabilisés avant le correctif a été altéré.
Non pas à cause de la mauvaise foi. Non pas parce que quelqu'un cache quelque chose. Mais parce que le système n'a pas été conçu pour permettre que cette question soit répondue après coup. Il n'y a aucun dossier vérifiable par l'électeur qui a été engagé avant que le vote ne soit soumis et qui peut être comparé par après. Il n'y a aucune piste d'audit cryptographique qu'un électeur peut examiner pour confirmer que son bulletin a été compté comme voté. Le service de vérification téléphonique qui aurait pu servir cette fonction aurait lui-même pu être compromis.
C'est la lacune qu'aucune déclaration officielle ne peut combler. Les autorités peuvent dire — et ont dit — qu'elles n'ont connaissance d'aucun vote altéré. C'est une affirmation sincère. C'est aussi une affirmation infalsifiable. « Pas conscient de » et « n'a pas eu lieu » sont séparés par la largeur entière de la question.
La norme de la Cour constitutionnelle allemande vaut la peine d'être répétée ici, parce qu'elle s'applique de plein droit : une élection n'est légitime que lorsque les étapes essentielles du bulletin au résultat peuvent être vérifiées par les citoyens sans connaissances spécialisées. Pour un vote en ligne qui charge du code via une connexion vulnérable, l'électeur ne peut pas vérifier que le code qu'il a reçu était le code que le serveur a envoyé. Pour un service de vérification qui peut lui-même être manipulé, l'électeur ne peut pas confirmer que la confirmation est réelle. Pour un système sans piste d'audit rétroactive, les responsables qui l'ont exploité ne peuvent pas confirmer qu'aucun vote n'a été changé.
La bonne question n'est pas « avons-nous trouvé des preuves de manipulation ? » La bonne question est : « quelqu'un aurait-il pu trouver s'il y avait eu manipulation ? »
Si la réponse à la deuxième question est non, la première question ne fournit aucune assurance du tout.
Explorez comment cette lacune apparaît dans les systèmes du monde entier →
Lisez la version deux minutes →
Consultez le motif complet dans tous les cas documentés →
Sources
- Halderman, Teague — The New South Wales iVote System: Security Failures and Verification Flaws in a Live Online Election, E-Vote-ID 2015 (arXiv:1504.05646)
- Wolchok, Wustrow, Halderman, Prasad — Attacking the Washington, D.C. Internet Voting System, Financial Cryptography 2012
- Springall, Finkbeiner, Durumeric, Kitcat, Hursti, MacAlpine, Halderman — Security Analysis of the Estonian Internet Voting System, ACM CCS 2014
- Lewis, Pereira, Teague — Ceci n'est pas une preuve (trapdoor commitments in the Scytl-SwissPost Internet voting system), 2019
- Bundesverfassungsgericht, Judgment of 3 March 2009, 2 BvC 3/07 and 2 BvC 4/07 (English translation)
- GAO-05-956, 'Elections: Federal Efforts to Improve Security and Reliability of Electronic Voting Systems Are Under Way, but Key Activities Need to Be Completed' (Sept. 21, 2005)