Pour organiser une élection, le plus simple est d'utiliser notre plateforme en ligne et de vous laisser guider par le système. Pour une élection test, quelques clics suffisent. Vous aurez besoin d'un compte sur la plateforme (mais les électeurs, eux, n'ont pas besoin de compte). Comment se connecter à la plateforme ?
Documents pour vous aider
- Guide d'utilisation de la plateforme pour l'électeur (présentation)
- Guide d'utilisation de la plateforme pour l'organisateur de l'élection (présentation)
- Explication vulgarisée du fonctionnement de Belenios (présentation)
- Un court article sur le vote électronique et Belenios. In Interstices, January 2013, Updated in March 2017.
Note : contrairement au reste du site, excepté le 3ème, ces documents ont des licences non-compatibles avec un usage commercial.
Avertissements
- La plateforme Belenios est libre et gratuite. Il s'agit d'une plateforme de recherche développée par un petit groupe de chercheurs. Elle vous est offerte "en l'état".
- Nous faisons de notre mieux pour que la plateforme de vote soit disponible à tout moment, mais sans garantie. En particulier, il y a régulièrement des opérations affectant notre serveur (coupure d'électricité par exemple). Lorsque nous en avons connaissance, nous prévenons de l'indisponibilité future de la plateforme sur la liste de diffusion. Nous vous recommandons de vous y abonner. Vous pouvez également installer votre propre plateforme de vote Belenios sur vos propres serveurs et échapper ainsi à ces contraintes en installant le code source.
- La CNIL a émis des recommandations sur l'organisation d'élections électroniques. Nous en décrivons les grandes lignes ici.
- Nous vous recommandons fortement de vous familiariser avec la plateforme de vote avant de lancer la "vraie" élection. Faites une répétition générale (une élection test) avec les personnes concernées (autorités de déchiffrement, générateur de codes de vote) quelques jours avant l'élection.
- Notre plateforme de vote permet d'organiser des élections avec au plus 2500 électeurs. Au-delà, il est préférable d'installer votre propre serveur
- Pour offrir plus d'accompagnement, un service commercial est en cours de création, que vous pouvez contacter.
De quoi avez-vous besoin en tant qu'organisateur d'une élection ?
- Pour former la liste électorale, vous aurez besoin de la liste des adresses email de tous les électeurs (et également leur login si vous pouvez vous reposer sur un CAS existant comme le CAS INRIA). Attention : les adresses email ne pourront pas être modifiées une fois l'élection lancée. Si une adresse est incorrecte, l'utilisateur ne recevra pas ses identifiants de connexion et ne pourra pas voter. Nous vous recommandons de tester la liste des électeurs en envoyant des mails d'information par exemple.
- Vous devez désigner parmi vous (commission électorale par exemple) des autorités de déchiffrement (3 autorités est un bon compromis). Ces personnes devront se connecter avant l'élection et au moment du dépouillement. Elles se verront confier un morceau de la clé de déchiffrement de l'élection. Que doivent faire les autorités de déchiffrement ?
- Vous devez également désigner une personne, chargée de la génération des codes de vote. Elle devra se connecter avant l'élection, posséder des notions d'informatique et être disponible pendant l'élection (au cas où un électeur perd son code de vote). Cette tâche est optionnelle mais fortement recommandée pour des raisons de sécurité.
De quoi un électeur a-t-il besoin pour voter ?
Un électeur recevra par mail un double moyen d'authentification : un code de vote (demandé pour commencer à voter) et un login et mot de passe (pour être autorisé à déposer son bulletin dans l'urne). Cette double protection permet de prévenir les risques de bourrage d'urne : même en cas d'attaque de notre serveur, il est impossible d'ajouter des bulletins.
- Un mot de passe est envoyé par le
serveur de vote à l'électeur.
- Par défaut, il s'agit d'un mot de passe court, envoyé lorsque l'électeur vote, à l'adresse mail renseignée par l'administrateur.
- L'administrateur peut également faire envoyer les mots de passe (par le serveur) avant le début de l'élection. Ce choix est utile pour des élections multiples et rapprochées : l'électeur garde le même mot de passe.
- Si vous pouvez vous reposer sur un CAS existant (CAS de votre université par exemple), c'est une solution à privilégier : les électeurs risquent moins de perdre ou de transmettre leur mot de passe.
- Le code de vote est envoyé par la personne chargée de la génération des codes de vote. À défaut, le code de vote peut être envoyé par le serveur mais il est alors impossible de le renvoyer à l'électeur en cas de perte ou de non-réception, et il ne pourra pas voter.
Autorités de déchiffrement
Les votes sont envoyés chiffrés à
l'urne, en utilisant la clé publique de
l'élection. Par défaut (lors d'élections
test par exemple), la clé de déchiffrement est
stockée sur le serveur. Cela signifie qu'une personne
ayant accès au serveur est en capacité de savoir
qui a voté quoi. Ce mode par défaut est donc
fortement déconseillé pour une vraie
élection.
La solution recommandée est de confier la clé de
déchiffrement à plusieurs autorités de
déchiffrement : chaque autorité possède
un bout de la clé, il faut tous les bouts pour
déchiffrer. Lors de la mise en place de
l'élection, vous pourrez enregistrer autant
d'autorités que vous le souhaitez (3 semble un bon
compromis). Pour chacune d'entre elles, vous aurez une url
à transmettre à l'autorité. En cliquant
sur ce lien, l'autorité génèrera (sur son
propre ordinateur) sa clé privée de
déchiffrement et enverra la clé publique au
serveur.
Cependant, il faut être attentif aux deux risques suivants :
- Les autorités doivent stocker leur clé de déchiffrement précieusement. Si l'une des clés est perdue, il n'est pas possible de déchiffrer et l'élection est annulée.
- Les autorités doivent stocker leur clé dans un endroit sûr (coffre-fort ou bien à l'aide de techniques cryptographiques). Sinon, le secret du vote peut être compromis.
Il peut être pratique que les autorités de déchiffrement gardent la même clé de déchiffrement entre l'élection test et la "vraie" élection. C'est une chose possible : lorsque vous créez une nouvelle élection, vous avez la possibilité d'importer les clés d'une élection précédente (sur la page "Trustees", utiliser le bouton "Import trustees from another election").
Génération des codes de vote
En tant qu'organisateur d'une élection, vous avez deux options : ou bien les codes de vote sont généres et envoyés par le serveur, ou bien vous devez désigner une autorité de codes de vote qui se charge de cette tâche.
- Codes de vote
générés sur la plateforme. C'est la
solution la plus simple. Notre serveur génère les
codes de vote (privés), les envoie par mail aux votants
et stocke uniquement la partie publique correspondante. Il est
recommandé que l'orgnisateur garde une copie des codes
de vote privés au cas où un électeur perd
son code de vote. Ces codes doivent être détruits
dès que l'élection est terminée.
Cependant, cette solution offre moins de sécurité : si notre serveur est compromis au moment de la mise en place de l'élection, alors un attaquant pourra ajouter des bulletins dans l'urne et modifier ainsi le résultat de l'élection. - Autorité de
génération de codes de vote.
Lors de la mise en place de l'élection, vous aurez une
url à transmettre à l'autorité de
génération des codes de vote. En cliquant sur
cette url, l'autorité génèrera (sur son
propre ordinateur) les codes de vote privés et enverra
la partie publique au serveur.
Cette solution offre une meilleure sécurité. Cependant, l'autorité de génération de codes de vote devra envoyer un code à chaque votant. Cela demande quelques compétences comme celle d'écrire (ou d'utiliser) un script pour envoyer des mails. Vous pouvez par exemple utilisez le script Pythonsend_credentials.py
dont la dernière version est disponible dans le dossiercontrib/
du paquet source de Belenios. Pour un très faible nombre d'électeurs (moins de 10), il est envisageable d'envoyer les codes de vote manuellement.