Avec GvoT, organisez vos votes en ligne !

Posté par  (site Web personnel) . Édité par Val, Davy Defaud, tankey, Ysabeau et Xavier Claude. Modéré par Xavier Claude. Licence CC By‑SA.
22
24
mai
2020
Communauté

GvoT est une application Web visant à permettre le vote en ligne à large échelle dans les organisations.

Habituellement, les rencontres physiques sont des moments privilégiés de la vie associative et peu d’organisations ont recours au vote en ligne. Seules éventuellement des organisations d’envergure nationale y recourent pour augmenter leur participation et atteindre un quorum.

Néanmoins, la crise du Covid‑19 fait émerger le besoin de valider en urgence et à distance des décisions d’assemblées, pour faire face par exemple à des obligations statutaires ou des contraintes budgétaires.

Pour répondre à ce besoin, Cliss XXI a choisi de développer et de mettre à disposition un outil dédié : GvoT. Cet outil est destiné principalement aux moyennes et grosses associations. Il est libre et peut donc être déployé partout où le besoin s’en ferait sentir.

Logo GvoT

Note de l’auteur : le point médian est utilisé sans aucune discrimination et uniquement dans le but d’alléger l’écriture.

Fonctionnalités

Le logiciel est aujourd’hui fonctionnel et a été utilisé à quelques reprises pour des votes d’envergure régionale. L’outil permet déjà l’essentiel :

  • créer un scrutin, c’est‑à‑dire un formulaire accessible seulement aux personnes autorisées sur une plage horaire bien définie ; le formulaire peut comprendre plusieurs formats de questions et de réponses (texte libre, questions à choix multiples, listes déroulantes, etc.), éventuellement sur plusieurs pages ;
  • importer massivement les données des participant·e·s au scrutin, les éventuelles erreurs et doublons peuvent être facilement corrigés, le logiciel prend en charge la pondération des votes en fonction du nombre de mandats que possède chaque votant ;
  • expédier par courriel les accès au scrutin, Gvot permet l’envoi en masse de courriels à destination des participant·e·s ;
  • voter, la participation à un vote est extrêmement simple, il suffit de suivre le lien transmis dans le courriel, de remplir le formulaire et de le soumettre ;
  • relancer par courriel les personnes n’ayant pas encore voté ;
  • corriger son propre vote ou transmettre son pouvoir à autrui.

La feuille de route de Cliss XXI pour GvoT

GvoT n’est cependant pas complètement terminé ; aujourd’hui, seul·e l’administrat·eur·rice du logiciel peut agir sur la plate‑forme. Nos prochaines étapes de développement visent à mieux permettre à des utilisat·eur·rice·s de faire certaines actions sur la plate‑forme (créer le scrutin et les textes qui l’accompagnent, téléverser les documents utiles au vote, gérer les importations de contacts et les publipostages, etc.). La feuille de route est donc la suivante :

  • personnalisation des courriels directement depuis l’interface Web (travail en cours) ;
  • séparations strictes et testées des permissions des utilisat·eur·rice·s et administrat·eur·rice·s (nécessaire pour pouvoir l’ouvrir comme un service hébergé) ;
  • faciliter l’interception des erreurs d’expédition de courriel et les présenter dans l’interface (utile également pour pouvoir l’ouvrir comme un service hébergé) ;
  • intégrer l’existence possible de collèges de votes (pour les SCIC par exemple) ;
  • faciliter l’extraction du résultat du vote (affichage dans la plate‑forme des graphiques utiles à l’analyse du résultat).

Sous le capot

GvoT est une application Python / Django. Elle est basée sur le CMS Wagtail et son extension Wagtailforms, le frontal est un Bootstrap à peine modifié et le tout est sous licence AGPL v3+.

Du côté de la concurrence

Nous connaissons trois exemples de logiciels qui permettent d’atteindre les mêmes buts : Poll‑O, Lime Survey et Benelios :

  • Poll-O est malheureusement à l’abandon, c’est le logiciel qui a été notamment utilisé par l’April ces dernières années pour ses AG ;
  • Lime Survey permet des questionnaires très riches avec de nombreuses options, c’est le logiciel qui a été notamment utilisé par Debian France pour ses AG ; malheureusement, son interface est très complexe à prendre en main et nous le jugeons relativement complexe et anxiogène pour opérer un scrutin d’AG en ligne ;
  • Benelios, logiciel dédié pour le vote en ligne, testé par un des partis pirates français, dont le fonctionnement semble assez complexe.

Par ailleurs, certains CMS comme Drupal ou WordPress possèdent probablement des greffons qui permettent d’atteindre un résultat similaire (coucou Framaforms). Mais ces solutions ne sont pas livrées prêtes à l’emploi. Il semble également que Pollen est en voie de permettre ce genre de service.

GvoT se situe plutôt dans la droite ligne d’un Poll‑O :

  • l’accent est mis sur la simplicité de participation ;
  • il est pensé pour gérer des milliers de participant·e·s ;
  • l’outil possède une interface de gestion qui est le plus directement possible dédiée à la gestion des scrutins.

Aller plus loin

  • # Jugement majoritaire

    Posté par  . Évalué à 3 (+3/-0).

    Il est compatible avec les scrutins en jugement majoritaire?

    • [^] # Commentaire supprimé

      Posté par  . Évalué à -5 (+1/-6). Dernière modification le 25/05/20 à 10:35.

      Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: Jugement majoritaire

      Posté par  (site Web personnel) . Évalué à 3 (+1/-0).

      Il est compatible avec les scrutins en jugement majoritaire ?

      Pour ce que je comprends du scrutin majoritaire, oui.

      Il s'agirait de présenter différentes propositions (« Nico est président », « Phil est président », etc. qui seraient des « questions » au sens de l'outil) et pour chacune d'entre elle proposer un nombre pair de choix via un sélecteur.

      Par contre le dépouillement ne sera pas fait par l'outil. Il nécessitera un calcul ad'hoc (mais c'est le cas de tous les scrutins, en pratique).

      Adhérer à l'April, ça vous tente ?

      • [^] # Limitation pratique

        Posté par  (site Web personnel) . Évalué à 3 (+1/-0).

        J'en profite pour préciser une limitation pratique, la seule que je perçois aujourd'hui pour des besoins normaux : dans le cas des questions à choix multiples, on ne dispose pas des options qui permettraient d'exprimer « veuillez sélectionner au minimum n choix et/ou maximum m choix ».

        C'est une limite qu'il faudra probablement réussir à dépasser pour des élections de listes de personnes. Mais comme dit dans la dépêche, l'outil est encore assez jeune.

        Adhérer à l'April, ça vous tente ?

      • [^] # Re: Jugement majoritaire

        Posté par  (site Web personnel) . Évalué à 2 (+1/-0).

        Je ne comprends pas ce point sur les modes de scrutins.
        Je suppose que le mode de scrutin est codé quelque part, car ,sinon, comment peut-on enregistrer un vote valide ?
        Mais en même temps, non, puisque le dépouillement nécessite un calcul ad'hoc.
        Et un mode de scrutin n'est pas une liste de questions, ni un sondage.
        Pourrais tu expliciter ?

        • [^] # Re: Jugement majoritaire

          Posté par  . Évalué à 3 (+2/-0).

          Je me pose la même question et la documentation en ligne ne permet pas d'y répondre. Je comprends donc comme toi que le logiciel enregistre les réponses et que le dépouillement / analyse du résultat se fait en dehors du logiciel mais il serait bien d'en avoir confirmation

          • [^] # Re: Jugement majoritaire

            Posté par  (site Web personnel) . Évalué à 2 (+0/-0).

            Oui c'est précisément ça. La plus value de l'outil est de publier des questionnaires, de spammer les participants, et de gérer des accès par jeton dans une interface conviviale.

            Je pense qu'il n'y a que des risques inutiles à prendre de calculer naïvement les résultats : chaque organisation a ses méthodes propres (il y a déjà une large diversité des modalités de calculs, simplement au niveau des élections officielles en France).

            Par ailleurs je trouve plutôt sain que ce soit un humain qui compile les résultats via des méthode qu'il maîtrise.

            Adhérer à l'April, ça vous tente ?

            • [^] # Re: Jugement majoritaire

              Posté par  . Évalué à 2 (+1/-0).

              La plus value de l'outil est de […] spammer les participants

              La plus value de l'outil est d'envoyer des spams ? ça c'est de la plus value qui tue ;-)

            • [^] # Re: Jugement majoritaire

              Posté par  (site Web personnel) . Évalué à 1 (+0/-0).

              Merci, ça répond à ma question.
              Il s'agit de soumettre des propositions à un collège de membres et de quantifier le soutien à chaque proposition.
              Je pense que le nom du produit m'a mal orienté.

  • # Typo adresse

    Posté par  . Évalué à 1 (+0/-0).

    Je vais tester ça pour notre assos!
    Par contre l'adresse c'est https://voter.cliss21.org/ , un .com s'est glissé dans la dépêche ;)

  • # Confidentialité, vérifiabilité

    Posté par  . Évalué à 5 (+3/-0).

    En premier, bravo de développer un solution simple de ce genre, ça me semble très utile.

    Dans les fonctionnalités, il n'est pas vraiment précisé quid de l'anonymat et de (l'éventuelle) vérifiabilité ?

    J'ai comme l'impression que le lien de vote est "secret" donc il me semble qu'il y a anonymat ? (si le logiciel ne retient pas le lien entre utilisateur et token de vote).

    Si je comprends bien qu'on est sur une solution centralisée simple, ou l'hébergeur du logiciel joue le rôle de tiers de confiance.

    Y-a-t'il tout de même une forme de vérifiabilité à postériori ?

    Par exemple on pourrait imaginer que chaque vote soit signé par une clé privé (lié au lien du mail) et qu'on émets, au moment de l'envoi des mails, l'ensemble des clés publique (mais pas leur lien aux électeurs). Ceci permettrait : à chaque utilisateur de vérifier que sa clé privé valable est bien représenté dans les clés publiques; de signer soit même son vote (peut être via js dans le navigateur); et, après coup de vérifier que son vote est bien là, signé, et à quelqu'un d'autre de vérifier que chaque clé publique a signé un et un seul vote.

    • [^] # Re: Confidentialité, vérifiabilité

      Posté par  . Évalué à 6 (+5/-0).

      La conception d'un système de vote électronique fiable est un problème difficile, auquel la communauté cryptographique s'intéresse depuis longtemps. Tu peux regarder l'article wikipedia https://en.wikipedia.org/wiki/End-to-end_auditable_voting_systems (qui n'existe malheureusement pas en Français) si le sujet t'interesse.

      Cet article contient, entre autre, une liste des propriétés que doit vérifier un système de vote (David Chaum a initié ce travail, si ma mémoire est bonne). J'ai vu plusieurs présentations commencer par dire qu'on ne peut avoir que deux propriétés simultanées :
      - anonyme ;
      - universellement vérifiable ;
      - simple à expliquer.

      Ce dernier point est d'ailleurs l'une des grandes forces du scrutin papier ; la résistance à la coercition, la grande force de l'isoloir.

    • [^] # Re: Confidentialité, vérifiabilité

      Posté par  (site Web personnel) . Évalué à 3 (+1/-0).

      J'ai comme l'impression que le lien de vote est "secret" donc il me semble qu'il y a anonymat ?

      Oui. C'est le mime d'un bulletin secret car c'est une forme d'expression à laquelle les gens sont attachés, a fortiori dans les grandes assemblées (pour une AG à 15, ne prenez pas GvoT, sauf si vous avez une bonne raison).

      Par ailleurs on parle aussi d'un public qui ne maîtrise pas nécessairement l'informagique et qui se trouve un peu précipitamment à devoir transposer en ligne des habitudes qui n'ont jamais été pensées pour cela (on peut imaginer par exemple que le champ « email » est optionnel dans le gestionnaire de membres …).

      Nous essayons d'être clairs sur les limites de l'outil et insistons sur le fait que la confiance joue un rôle essentiel dans ce contexte (et j'enrichirai la doc à partir des questions reçues ici).

      Si je comprends bien qu'on est sur une solution centralisée simple, ou l'hébergeur du logiciel joue le rôle de tiers de confiance.

      Oui. L'hébergeur doit être tiers de confiance et l'organisateur également (celui qui a la main sur l'interface de gestion et qui annonce le résultat à la fin). Sans que ce soit une solution magique, nous prodiguons ces conseils dans la doc et sur le site.

      il n'est pas vraiment précisé quid de l'anonymat

      L'interface ne fait pas l'association en masse des jetons et des résultats. Mais il y a 10000 façon de surmonter plus ou moins techniquement cette limitation.

      Donc il n'y a pas d'anonymat vis à vis des organisateurs ; encore moins vis à vis de l'hébergeur.

      Par contre il y a un relatif « anonymat » des participants entre eux : ils ne savent pas qui participe et de quelle nature. Si l'organisateur doit publier avant ou après la liste des participants ou la feuille d'émargement, il doit le faire de son coté.

      et de (l'éventuelle) vérifiabilité ?

      La seule vérifiabilité possible est d'ouvrir le scrutin avec tous les participants pour que chacun puisse vérifier que son vote a été pris en compte et qu'il n'y a pas de bourrage manifeste d'urne. C'est pas terrible car ça nécessite une participation plénière et ça nécessite que l'anonymat relatif qui persistait entre les participants soit levé.

      Par exemple on pourrait imaginer que chaque vote soit signé par une clé privé (lié au lien du mail) et qu'on émets, au moment de l'envoi des mails, l'ensemble des clés publique (mais pas leur lien aux électeurs). Ceci permettrait : à chaque utilisateur de vérifier que sa clé privé valable est bien représenté dans les clés publiques; de signer soit même son vote (peut être via js dans le navigateur); et, après coup de vérifier que son vote est bien là, signé, et à quelqu'un d'autre de vérifier que chaque clé publique a signé un et un seul vote.

      Pour ce que j'en comprend, ça ne protège pas contre le bourrage d’urnes ; qui est probablement la façon la plus facile d'influencer un scrutin dont les participants sont trop nombreux pour que chacun connaisse l'orientation et la participation de la plupart des autres.

      Adhérer à l'April, ça vous tente ?

      • [^] # Re: Confidentialité, vérifiabilité

        Posté par  . Évalué à -2 (+0/-2).

        Faire reposer la sincérité d'un vote sur une base de données et l'interface d'admin de Django … c'est un peu bizounours

        Benelios semble adresser ce point tant que l'enjeu ne fait pas courir de barbouzerie de haut vol, mais how it works est incompréhensible pour 99,9999 % des gens et pour le reste faut digérer et auditer le truc.

        Et Ocaml ça aide pas pour reprendre le truc …

        Sinon Benelios est pas si compliqué à utiliser.

        L’intérêt de Wagtail c'est d'avoir un formulaire firendly ? Parce que du vieux Django des familles versus Server Python REST / App React ça se pose comme question ?

        Faut aussi savoir que 99,999% des assos ont au mieux un Wordpress en 1-clic chez Oxx et Helloxxxx @RGPD.fr …

      • [^] # Re: Confidentialité, vérifiabilité

        Posté par  . Évalué à 2 (+0/-0).

        Ma proposition (mais c'est clair c'est du dos d'enveloppe) prenait en compte le bourrage d'urne avec "on émets, au moment de l'envoi des mails, l'ensemble des clés publique (mais pas leur lien aux électeurs)". Donc tu peux vérifier que chaque clé a signé un et un seul bulletin.

        Mais ok, je comprends que là on est loin de ces considérations, vu que vous gardez même l'association jeton / utilisateur. Donc c'est vraiment l'application qui est tiers de confiance (ce qui peut-être acceptable dans pas mal de cas).

        • [^] # Re: Confidentialité, vérifiabilité

          Posté par  (site Web personnel) . Évalué à 5 (+3/-0).

          Ma proposition (mais c'est clair c'est du dos d'enveloppe) prenait en compte le bourrage d'urne avec "on émets, au moment de l'envoi des mails, l'ensemble des clés publique (mais pas leur lien aux électeurs)". Donc tu peux vérifier que chaque clé a signé un et un seul bulletin.

          Pour ce que je comprends du dispositif, j'objecte cet argument : https://wiki.april.org/w/Discussion_vote_%C3%A9lectronique#q.29_.C2.AB_Solution_.C2.BB_technique.2C_round_1

          Mais ok, je comprends que là on est loin de ces considérations, vu que vous gardez même l'association jeton / utilisateur. Donc c'est vraiment l'application qui est tiers de confiance (ce qui peut-être acceptable dans pas mal de cas).

          Aujourd'hui je suis (à titre personnel) arrêté sur l'idée que la seule façon de rendre le vote contrôlable est de tout ouvrir. Je comprends par ailleurs qu'on n'ouvre pas tout par défaut pour des raisons variés (j'ai évoqué des raisons culturelles, mais il y a aussi la liberté d'opinion, les problèmes de vie privée, de droit à l'oubli, etc.).

          Le compromis auquel j'adhère (et GvoT en hérite car en fait c'est un projet initié bien avant la crise du covid) est donc de ne surtout pas oublier l'association jeton / utilisateur. Sinon c'est se priver de ceinture et bretelle.

          Mon sentiment par ailleurs est que toute dissimulation cryptographique des données serait plutôt un élément à charge (dépossédant les votants d'un sentiment de maîtrise) qu'un élément de nature à rassurer. A fortioti si ça n'apporte pas de garantie théorique supplémentaire. Bref, un nid à soucis.

          Par contre, je pense qu'on a de la marge pour ajouter du chiffrement ou des signatures à des endroits pertinents. Typiquement le transport https c'est un pas (qui ne mange pas de pain) transparent pour l'utilisateur et qui ne confisque pas les données. On pourrait réfléchir à blockchainer le processus et/ou faire faire des signatures par un tiers de confiance, etc. Faut voir ce que ça peut apporter. J'ai aussi découvert récemment les recommandations de la cnil dont certaines sont très pertinentes et devraient rentrer dans la roadmap, etc.

          Après faut pas non plus se leurrer dans les geekeries. On est aussi dans une situation où on envoie les secrets par emails et c'est un système incomplet, sans garantie, et sécuritairement atroce (vous avez déjà vu un gestionnaire de membre avec un champ gpg_pubring obligatoire ?). Trouver une meilleure façon de transmettre les secrets serait aussi un gros plus (éventuellement multicanal avec sms et courrier postal en appuis).

          Tout ça pour dire qu'on part de loin, mais il parait que la voie est libre…

          Adhérer à l'April, ça vous tente ?

  • # instance utilisable ?

    Posté par  (site Web personnel) . Évalué à 3 (+1/-0).

    ce logiciel a l'air génial pour les AG qui se profilent…

    Y'a-t-il une instance utilisable quelque part ? que je pourrai utiliser pour mon asso ?

    (je me vois mal monter un serveur juste pour l'AG…)

    • [^] # Re: instance utilisable ?

      Posté par  . Évalué à 2 (+2/-0).

      Bonjour,

      Pour le moment, il n'y a pas d'instance publique (en tout cas aucune proposée par les développeurs du logiciel). Chaque instance du logiciel ne peut produire qu'un scrutin à la fois et il doit y avoir un technicien qui y travaille en arrière plan.

      Mais permettre un service en ligne, autonome au maximum d'interventions techniques, est un gros chantier que nous souhaitons entamer dans les mois à venir.

  • # Framavox, basé sur Loomio et Whale4

    Posté par  . Évalué à 2 (+1/-0).

    Vous parlez des framaforms mais l'application qui est la plus proche serait plutôt framavox basée elle-même sur Loomio.

    Présentation: https://framablog.org/2016/06/07/framavox-discutez-decidez-et-faites-entendre-votre-voix/

    Parmi les autres projets "concurrents", il me semble aussi que le projet Whale4 est en pointe en ce qui concerne le choix du mode d'expression des préférences (type de vote). Il est développé par une équipe de chercheurs au Laboratoire d'Informatique de Grenoble. Son développement a été en partie financé par le projet ANR CoCoRICo-CoDec portant sur le choix social computationnel.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.