Assez publié de code PHP ostensiblement vulnérable comme ça, passons à autre chose. Comme... le vote électronique... par exemple. Par Internet pour rester dans le Web 2.0.
Récemment, le District of Columbia a proposé une initiative fort louable : l'évaluation publique d'un pilote de vote en ligne. Le défi a été relevé par une équipe de l'Université du Michigan, avec le résultat qu'on pressent, à savoir qu'ils ont réussi à prendre la main sur l'application de vote en ligne... En quelques trente-six heures...
Une injection de commande aura suffit pour mettre le système par terre. D'un autre côté, est-ce si surprenant que ça que de trouver ce genre de faille dans une application web ? Certes non,mais on aurait attendu un meilleur niveau d'un outil spécifiquement développé pour le vote en ligne. Toujours est-il qu'à partir de là, c'est toute l'intégrité du vote qui s'écroule comme un château de cartes.
Récupération de données personnelles, de clés publiques permettant le chiffrement des bulletins, remplacement des votes existants d'électeurs sélectionnés par un bulletin arbitraire, mise en place du code permettant la modification à la volée des votes futurs, installation d'une backdoor permettant d'observer le déroulement de l'élection. Et, enfin, l'ajout d'un easter egg sur la page de confirmation du vote[1].
Allant jusqu'au bout de sa démarche, le Board of Elections and Ethics qui a lancé cette évaluation publique a renoncer à déployer cette application, bien qu'ils continuent à étudier son développement. C'est une décision à saluer, puisqu'ailleurs, on se serait contenté de considérer que les vulnérabilités n'étaient pas applicables et cacher le tout sous un tapis. Ceci étant, ailleurs, on se serait également contenté de ne rien faire, ou, le cas échéant, de faire évaluer le système par des gens complaisants, à défaut d'être compétents...
Si l'initiative d'offrir à l'évaluation publique un système de vote en ligne basé sur un logiciel ouvert est louable, elle démontre quand même un problème de fond. Et je rejoins là complètement la conclusion de J. Alex Halderman. La banalité de la faille qui a entraîné ce résultat démontre qu'il ne s'agit ni plus ni moins qu'une application web tout ce qu'il y a de plus classique, en tout point comparable à toutes celles qui se font déchirer régulièrement. Et quand bien même la vulnérabilité exploitée serait simple à corriger, ce qui est le cas, il n'en reste pas moins que le système reposant sur un socle logiciel lourd qui fourmille très probablement d'autres problèmes, peut-être même plus graves, devrait être considéré comme inadaptée à ce genre d'usage.
Si on ajoute à cela les problèmes intrinsèques que pose le vote à distance[2] et la question de la confiance qu'on peut accorder à sa version électronique, il me semble légitime de s'interroger sur l'opportunité du vote par Internet. Surtout si en plus on ne s'avère pas capable de le fournir exempt de failles sorties tout droit d'un B.A.-BA de sécurité web...
Notes
[1] Ça joue de la musique au bout de 15 secondes.
[2] Vis-à-vis de secret du vote par exemple.