Pétitions en ligne, degré zéro de la fiabilité

Dans ce premier article, j’aborderai la question de la fiabilité des pétitions et autres sondages en ligne. Comment garantir que seuls les électeurs ou les habitants d’un pays peuvent voter ?  Et comment garantir qu’ils ne pourront le faire qu’une seule fois ?  A la suite de celui-ci, et s’il y a suffisamment de lecteurs intéressés par la question, j’aborderai plus en profondeur encore la question sous l’angle du vote électronique en tant qu’outil au service de la démocratie (ou pas).

Alors que le Royaume-Uni était secoué par le résultat du référendum historique par lequel les anglais ont exprimé leur souhait de quitter l’Union Européenne, on a vu subitement surgir une « pétition en ligne » demandant qu’un nouveau référendum soit organisé.  Cette pétition atteint pratiquement 4 millions de « signatures » au moment où j’écris ces lignes.

Quel crédit peut-on accorder à ce genre de « pétitions » ?

Pour pouvoir répondre objectivement à cette question, il convient de connaître les garanties qu’apportent les référendums classiques (sur papier), lorsqu’ils sont organisés dans les démocraties telles que nous les connaissons, sans préjuger de leur caractère contraignant ou non, qu’il s’agisse donc d’une « consultation référendaire » ou à proprement parler d’un référendum.

Ces garanties sont

  • Que seuls les électeurs dûment inscrits sur les listes électorales peuvent exprimer leur suffrage
  • Qu’ils ne peuvent le faire qu’une seule fois
  • Que le processus de dépouillement se fait de manière transparente et sous contrôle de témoins

Qu’en est-il pour les « pétitions en ligne » ?

Comme nous le verrons, ces initiatives n’apportent aucune des garanties que les élections « papier » organisées dans les formes prescrites garantissent.

Transparence du processus

Je ne vais pas m’étendre longuement sur la confiance que l’on peut apporter à un « vote » informel organisé (et géré) par le gouvernement britannique, loin des yeux de témoins réputés impartiaux.  En fait, l’opposition s’en est déjà chargé.  Sans vouloir faire un  procès d’intention au gouvernement anglais, on comprend tout de même qu’il ne peuvent être réputés impartiaux s’agissant de « pétitions » qui pourraient fort bien aller à l’encontre de leur politique.  Et dans la mesure où le processus de collationnement (via une database) n’est pas transparent, la tentation existe de glisser discrètement sous le tapis les sujets dérangeants; ou au contraire, d’utiliser cet outil comme caisse de résonance  sur des questions en accord avec leur agenda politique.

Vote permis aux seuls électeurs inscrits sur les listes électorales

Restreindre l’accès à la pétition aux seuls électeurs britanniques est par essence impossible.  Dans le cas qui nous occupe, d’ailleurs, aucune espèce de filtre n’était présent au point que n’importe qui pouvait s’exprimer.  Qu’il soit Anglais ou pas, et quelque fût le pays d’où il se connectait.   J’ai personnellement vérifié ceci, non sur la pétition en question, mais sur une autre (plus anodine).

Limitation à un seul vote par « électeur »

Là non plus, il n’est pas possible d’appliquer une telle restriction dans la mesure où le serveur (de pétition) ne connaît pas l’identité de la personne qui a signé.  Comment dans ce cas pourrait-il la reconnaître si elle se représente ?  Encore et encore ?

Explication technique

Dans cette partie, je vais détailler pourquoi il n’est pas possible, étant donné l’infrastructure mise en place, d’identifier de manière certaine les « votants », et en quoi cela rend impossible la limitation à un seul vote par personne.  J’essaierai, autant que faire se peut, de rester compréhensible pour les non initiés.

Il n’existe que trois manières d’identifier l’utilisateur qui se connecte.  Je n’aborderai pas ici les méthodes indirectes comme par exemple se baser sur des cookies tiers (des informations transmises/collationnées par d’autres services, en gros).

1) Aucune mesure spécifique n’est prévue

C’est le cas de la pétition appelant à un nouveau référendum sur le site uk.gov.  Dans ce cas, lors de la première connexion, tout ce que le serveur reçoit, c’est l’adresse IP publique (appelée IP WAN) de l’utilisateur.  S’il se connecte à partir d’un réseau d’entreprise, par exemple, il pourrait y avoir des centaines d’utilisateurs qui partagent cette même adresse IP.

Qu’est-ce qu’une adresse IP ?  Il s’agit d’une adresse unique pour tout l’internet à un moment donné.  Elle est exprimée (pour IPV4) comme une suite de 4 nombres entre 1 et 255 séparés par des points.  Par exemple, 8.8.8.8 correspond à un serveur de nom de domaine de Google. Quand je dis « à un moment donné », c’est que beaucoup d’adresses IP attribuées à des connections SOHO (domestiques) sont de nature dynamique.  Chaque fois que vous déconnectez votre routeur (Bbox, etc) et que vous vous reconnectez, vous aurez une adresse différente.  Et si votre routeur reste allumé en permanence, il sera périodiquement déconnecté et après reconnexion, recevra une nouvelle adresse IP (généralement un délai entre 24h et 36h).

Si vous voulez voir à quoi ressemble votre adresse IP en ce moment, vous pouvez le voir ici.

Les adresses fixes, quant à elles sont réservées aux clients professionnels et d’une manière générale à tous les serveurs qui doivent rester joignable facilement sans qu’il soit nécessaire de remettre en permanence les DNS à jour.  Les DNS (domain name servers) sont ces serveurs qui font la jonction entre le nom de domaine (par exemple http://www.commentcamarche.net/ et son adresse IP v4 qui est 62.4.254.198.

Bien sûr cela ne garantit nullement l’anonymat pour qui que ce soit, puisque le fournisseur de services (Orange, Proximus, etc) peut à tout moment corréler l’adresse IP dynamique et le client à qui elle avait été attribuée.  Mais ceci ne peut se faire (en principe) que sur base d’une commission rogatoire, et dépasse largement le cadre du présent article.

Dans la mesure où les adresses IP ont été attribuées par blocs aux fournisseurs, il est également possible de savoir auprès de quel fournisseur vous êtes client, et à la grosse louche, la ville dans laquelle vous vous trouvez.  C’est léger comme identification, n’est-ce pas ?

Sachant cela, il est théoriquement possible de filtrer les demandes de connexion en les limitant aux villes (ou aux pays) de notre choix.  Seulement voilà, certaines connexions ne sont pas géolocalisées du tout, et d’autre part il est tout à fait possible, en utilisant un serveur proxy ou le célèbre réseau TOR de faire passer sa connexion (de l’étranger) pour une connexion locale.  Dans certains cas, ces proxy (relais) sont transparents, c’est-à-dire qu’ils ne transmettent aucune information indiquant qu’ils sont en train de relayer les requêtes pour une autre connexion.

Pire, dans la mesure où je pourrais bien, d’ici une heure, avoir la connexion d’un autre « électeur » à la suite d’un changement d’IP dynamique, il n’est pas concevable, pour les organisateurs, d’exclure une nouvelle connexion sur base d’un vote précédent par cette même IP.  Cela s’applique également au cas où une même IP (dynamique ou fixe) est partagée par plusieurs utilisateurs, chacun étant légitimement fondé à exprimer son opinion.

2) Secret partagé (identifiant et mot de passe)

C’est le cas où vous êtes inscrit auprès d’un service en ligne qui vous attribue un identifiant et un mot de passe avec lequel il pourra ultérieurement vous identifier.  Il convient de noter que dans bien des cas ceci peut se faire de manière anonyme, sous pseudo.  Compte Gmail, Facebook, twitter, etc.

En pratique, donc, la seule chose que le serveur peut faire, c’est établir le lien entre une cette paire d’identifiants et une connexion ultérieure les utilisant.

3) Carte d’identité électronique (identification certaine)

C’est, à l’heure actuelle, la seule manière (pratique) d’identifier de façon certaine un utilisateur en ligne.  Cette méthode est disponible en Belgique et j’ai eu l’occasion dernièrement de développer moi-même un service faisant appel à cette double identification (identification du serveur par son certificat / identification du client par sa carte d’identité qui contient également un certificat).  Dans la mesure où les Anglais n’ont pas de carte d’identité du tout, vous aurez compris qu’elle n’était pas applicable en l’espèce.

De plus, cette méthode qui paraît infalsifiable en théorie pose aux moins deux problèmes qui rendent cette méthode impropre à permettre l’organisation de scrutins électoraux valables.  J’aurai probablement l’occasion d’y revenir à l’occasion du second volet de cette mini-série.

Moyens (dérisoires) pouvant être mis en place pour limiter à un seul vote par personne

Tout d’abord, il ne faut pas être clerc de notaire pour comprendre que si moi j’ai envie de voter, peut-être que mon épouse aussi ?  Et peut-être que mes enfants (majeurs) le désireraient également ?  Ce qui suit est donc non seulement un peu puéril parce qu’imparfait, mais en plus cela constitue en soi une limite à l’expression « démocratique ».  Et au contraire, libre à moi de m’inventer une famille extrêmement nombreuse au moment de compléter mon nom.  D’accord ce n’est pas honnête, mais franchement, si vous pensez  que quatre millions d’électeurs mécontents, déçus ou ayant changé d’avis ont signé ladite pétition, je n’aurai qu’un conseil : think again.

Pour comprendre comment on peut tenter de limiter à un seul le vote exprimé par un utilisateur donné, il convient de comprendre quels sont les moyens à disposition du serveur, sachant que l’IP ne peut lui servir de rien, comme nous l’avions vu précédemment.

Un serveur web ne sait strictement rien de ses utilisateurs avant que ceux-ci ne se soient identifiés, ou qu’il puisse, par comparaison, savoir qu’il a affaire au même utilisateur.

En pratique lors d’une première connexion à un site, appelée ouverture d’une session, en réponse à la première requête, le serveur renverra un identifiant unique sous forme d’un très grand nombre « au hasard » exprimé en hexadécimal.    Cet identifiant est appelé cookie de session, et ne durera que tant que la session vivra.   C’est ce qui permet au serveur de Facebook ou de Google, après que vous vous soyez identifié, de relier vos demandes à votre compte utilisateur, et donc de vous présenter vos données et pas celle d’un autre utilisateur.

A côté de cela, le serveur a également la possibilité de sauver, sur votre PC, des petits fichiers appelés cookies (permanents).  Ils sont accessibles à lui seul, et resteront valides même une fois votre connexion fermée.  En fait c’est le serveur qui détermine la période de validité.

Eh bien voilà, on l’a trouvée notre méthode pour s’assurer de la règle one man, one vote ! 

Sauf que non, parce qu’il est très facile d’effacer les cookies, ou de ne pas les stocker.  C’est le mode de navigation privée, qu’on retrouve sur tous les navigateurs aujourd’hui.  Dans ce cas, c’est le navigateur qui traitera les cookies permanents comme des cookies de session et les détruira impitoyablement dès que la session de navigation sera fermée.

Conclusion

Il est impossible de réaliser des « pétitions en ligne » et autre « sondages » qui ne pourraient pas être massivement truqués.  Ceci est de notoriété publique, et notamment auprès des autorités et des médias qui bizarrement pourtant, se sont bien gardés d’en faire état, avant d’avouer tout de même que des connexions semblaient provenir de l’étranger.  A cette heure, je n’ai toujours rien lu sur le plus important problème : il y a fort à parier que certains utilisateurs auront voté des centaines de fois.  Et à cette aune, combien faut-il de fourmis courageuses pour faire 4 millions de votes ?  Facile, si l’on considère 1000 votes/tête, on aurait besoin que de quatre mille utilisateurs.

Il serait même à première vue assez facile d’écrire un programme qui pourrait faire une partie du boulot à la place des fourmis, ça s’appelle un bot.

avatar

Philippe Huysmans

Webmaster du Vilain Petit Canard, citoyen de nationalité belge, né à Schaerbeek le 16.10.1966. Marié et père de deux enfants. Je vis en Belgique et j’exerce la profession d’Informaticien à Bruxelles. Mes articles

Vous aimerez aussi...