
Dans un peu moins de trois semaines, environ un demi-million d’électeurs de la ville de Moscou devraient normalement être autorisés à utiliser le système de vote par Internet conçu pour l’occasion. Le système de vote de Moscou est le premier de son type. Il a été développé en interne par le département des technologies de l'information de Moscou. Ce dernier utilise la blockchain Ethereum, avec ses capacités de « contrat intelligent ». Notez qu’un « contrat intelligent » est un protocole informatique destiné à faciliter, vérifier ou appliquer numériquement la négociation ou l'exécution d'un contrat.
En effet, les contrats intelligents permettent d'effectuer des transactions crédibles sans tiers. Ces transactions sont traçables et irréversibles. Les partisans des contrats intelligents s’accordent à dire que de nombreux types de clauses contractuelles peuvent être partiellement ou totalement exécutoires, s’appliquer de manière autonome, ou les deux. Les contrats intelligents ont pour objectif de fournir une sécurité supérieure au droit des contrats traditionnel et de réduire les autres coûts de transaction liés aux contrats. Un nombre important de cryptomonnaies ont implémenté des types de contrats intelligents.
La blockchain de l’Ethereum utilise une implémentation des contrats intelligents et les Moscovites ont basé leur système de vote sur cette dernière pour en tirer les avantages. Seulement, le système de vote, dont une partie du code source a été publiée sur GitHub à la fin du mois de juillet, a montré lors d’un test public qu’il contenait une vulnérabilité critique pouvant permettre à un attaquant de compromettre les votes des électeurs. Le test a révélé que le schéma de chiffrement utilisé dans cette partie du code est complètement non sécurisé. Il peut être cassé en moins de 20 minutes avec du matériel standard.
C’est Pierrick Gaudry de l'université de Lorraine et chercheur à l'INRIA, l'institut français de recherche pour les sciences numériques, qui a découvert la vulnérabilité. Il a découvert qu'il pouvait calculer les clés privées du système de vote à partir de ses clés publiques. Ces clés privées sont utilisées avec les clés publiques pour chiffrer les votes des utilisateurs exprimés lors de l'élection. Selon Pierrick Gaudry, la vulnérabilité serait imputable aux responsables russes qui ont utilisé une variante du schéma de cryptage ElGamal avec des tailles de clé de cryptage trop petites pour être sécurisées.
D’après un rapport détaillé du problème qu’il a présenté plus tôt ce mois, il a expliqué que le schéma de chiffrement utilisé dans la partie du code publié est complètement non sécurisé. Il poursuit en expliquant que ce chiffrement peut être cassé en 20 minutes environ en utilisant un ordinateur personnel standard et en utilisant uniquement des logiciels libres disponibles au public. Plus précisément, il a dit qu’il est possible de calculer les clés privées à partir des clés publiques. Une fois que ceux-ci sont connus, toutes les données chiffrées peuvent être déchiffrées aussi rapidement qu'elles ont été créées.
Le problème est donc l’utilisation d’une clé privée de chiffrement trop faible. Lorsque Gaudry a découvert la vulnérabilité et a informé le département des technologies de l'information de Moscou, ce dernier a promis de résoudre le problème très rapidement. « Nous sommes absolument d'accord sur le fait que la longueur de la clé privée 256x3 bits n'est pas suffisamment sécurisée. Cette implémentation a été utilisée uniquement dans une période d’essai. Dans quelques jours, la longueur de la clé passera à 1024 bits », a déclaré un porte-parole du département des technologies de l'information de Moscou.
Les responsables moscovites avaient modifié le schéma de cryptage ElGamal pour utiliser trois clés privées plus faibles au lieu d’une. Gaudry a déclaré qu’il n’avait pas compris pourquoi les responsables du système de vote ont choisi de faire une chose pareille, même s’il ne s’agissait que d’un test. Plus important encore, Gaudry n’est pas favorable à la solution proposée par le département pour résoudre le problème. Selon lui, une clé privée de chiffrement d’une longueur de 1024 bits est toujours trop petite pour assurer une bonne sécurité dans ce genre de système. Il estime qu’ils devraient au moins utiliser une clé d’une longueur de 2048 bits.
« C'est un mystère. La seule explication possible à laquelle nous puissions penser est que les concepteurs pensaient que cela compenserait la trop petite taille des clés des nombres premiers impliqués. Mais 3 nombres premiers de 256 bits ne sont vraiment pas identiques à un nombre premier de 768 bits », a déclaré Pierrick Gaudry dans son rapport. De plus, il n’est pas le seul à avoir critiqué l’utilisation d’une clé privée de chiffrement trop courte par les développeurs du système de vote de Moscou. Le responsable de la sécurité chez Attivo Networks, Chris Roberts, a aussi exprimé son inquiétude sur cette situation.
« Savoir pourquoi les développeurs du système ont utilisé une clé de longueur trop faible en premier lieu est évidemment une question. Est-ce un manque de connaissances et de compréhension de leur part ? Ou bien cherchaient-ils simplement à maximiser la vitesse et l'efficacité ou quelque chose d'autre ? », s'interroge Chris Roberts. Il a néanmoins ajouté que Moscou a bien fait de soumettre son système à un test de la part des chercheurs.
Cela dit, d’autres personnes dans la communauté pensent que les systèmes actuels de vote par Internet sont une très mauvaise idée, car les technologies actuelles ne le permettent tout simplement pas.
Si le système de vote de Moscou devait être utilisé pour le scrutin du 8 septembre prochain, sa durée de fonctionnement sera de 12 heures, en synchronisation avec la séance de vote officielle. Il permettra aux habitants de Moscou de voter lors du scrutin via Internet, avec leur téléphone ou leur ordinateur personnel et de consigner leurs votes sous forme cryptographique sur la blockchain publique Ethereum. D’après le rapport de Gaudry, ce qu'un attaquant peut faire avec ces clés de chiffrement lui est encore inconnu, car les protocoles du système de vote n’étaient pas encore disponibles en anglais au moment des tests.
« Sans avoir lu le protocole, il est difficile de dire avec précision les conséquences, car, bien que nous croyions que ce schéma de chiffrement faible est utilisé pour chiffrer les bulletins de vote, il est difficile de dire à quel point il serait facile pour un attaquant de trouver la correspondance entre les bulletins de vote et les électeurs. Dans le pire des cas, les votes de tous les électeurs utilisant ce système seraient révélés à quiconque dès qu'ils auraient voté », a déclaré le chercheur français.
Pour beaucoup d’autres, la blockchain est une technologie prometteuse, mais son utilisation dans la conception des systèmes de vote en ligne manque encore de connaissances approfondies. Ainsi, ils estiment que tous les systèmes actuels de vote en ligne ne sont pas sécurisés comme cela se doit. Ainsi, les utiliser dans les élections qui ont un enjeu très important comporte beaucoup trop de risques.
Sources : Pierrick Gaudry, Rapport (PDF)
Et vous ?


Voir aussi




Vous avez lu gratuitement 441 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.