Préparation d'une élection
Peut-on choisir la date du début et de la fin de l'élection ?
Oui. Dès l'ouverture de l'élection, il est possible de choisir la date de début et de fin de l'élection. Il est possible de modifier ces dates à tout moment jusqu'au dépouillement.
Peut-on cacher la page de résultats aux électeurs ?
Oui, temporairement. Il est possible de reporter l'affichage des résultats pendant au plus une semaine. Cette fonctionnalité est proposée juste après le dépouillement.
Je vois qu'une maintenance est en cours sur Belenios, est-ce que j'aurai quand même accès à mon élection ? Comment être prévenu(e) ?
Les données sont sauvegardées et les élections pourront reprendre
normalement après la mise en route du serveur. Les arrêts sont
dûs en général à des coupures d'électricité extérieures et
nous informons de ces coupures dès que possible sur la liste
belenios-publicserver@inria.fr
Peut-on mettre en place une élection où les électeurs ont un nombre de voix différents (par exemple, un responsable de club a un nombre de voix qui dépend du nombre de ses adhérents) ?
Oui. Il suffit d'indiquer le nombre de voix de chaque électeur (son "poids") dans la liste électorale, sous la forme mail,login,poids ou mail,,poids.
Peut-on déléguer son vote à un autre électeur ? (vote par procuration)
Non, cette fonctionnalité n'existe pas dans Belenios. Cependant, si
ces procurations sont connues à l'avance, alors l'organisateur
de l'élection peut affecter plusieurs voix à l'électeur qui a
reçu les procurations, et supprimer de la liste électorale les
électeurs qui ont donné procuration.
L'électeur qui a reçu les procurations ne pourra
cependant pas voter différemment pour chacune de ses
voix, il ne pourra effectuer qu'un seul choix.
Peut-on classer les candidats ?
Oui. Il est possible de classer ou noter les candidats. Les
méthodes de dépouillement supportées sont
Condorcet, Single Transferable Vote (STV) et jugement majoritaire. À
l'heure actuelle, il s'agit encore d'un mode expérimental. Vous
trouverez plus d'informations
ici (en anglais).
Si je viens à rencontrer des difficultés, y-a-t-il une possibilité d'avoir une aide en ligne ?
Non, Belenios n'offre pas d'aide en ligne. Nous vous invitons à
rechercher une réponse sur cette FAQ ou encore sur la liste de
discussion
belenios-discuss sur laquelle vous pouvez poster votre question.
Est-ce qu'il a une limite sur le nombre d'électeurs ?
Il manque des fonctionnalités intéressantes !
Nous sommes heureux de recevoir des retours sur des fonctionnalités qui seraient appréciées de nos utilisateurs. Ces retours participent aux choix d'évolution de Belenios. Pour nous faire parvenir une demande ou un commentaire, merci de poster une "issue" dans notre
répertoire github ou bien d'envoyer un message dans la liste de discussion
belenios-discuss
(email: belenios-discuss@inria.fr).
Et si j'ai besoin d'aide ?
Notre plateforme est offerte "en l'état" et nous ne proposons pas de
hotline. Cependant, un service commercial est en cours de création et peut explorer avec vous des solutions d'accompagnement (
contact).
Pendant l'élection
J'ai créé une élection mais voila que j’ai oublié un électeur ! Ai-je une possibilité de le rajouter, voire même de modifier des adresses email erronnées ?
Malheureusement, il est impossible d'ajouter un électeur ou de modifier les adresses mail une fois l'élection commencée. Il s'agit d'une protection pour éviter que l'organisateur modifie la liste électorale. La seule solution est de recommencer l'élection.
Un de mes électeurs n'a pas reçu les mails avec les identifiants et codes de vote. Est-il possible de les renvoyer ?
En mode automatique, vous avez été invité à télécharger les codes de
vote lors de la préparation de l'élection. Il vous suffit alors de
renvoyer vous-même les codes de vote souhaités. Le serveur ne peut
pas renvoyer les codes de vote lui-même car il les supprime lors de
la validation de l'élection par mesure de sécurité. Quant au mail
avec mot de passe, il est envoyé (par défaut) lorsque l'électeur
confirme son vote. Un nouveau mot de passe sera renvoyé à chaque vote.
J'ai pu voter deux fois, est-ce normal ?
Oui, avec Belenios, vous pouvez voter autant de fois que vous le
souhaitez, jusqu'à la clôture de l'élection. Seul le dernier vote est
conservé et vous pouvez vérifier sa présence dans l'urne publique
grâce à votre numéro de suivi.
La possibilité de voter plusieurs fois offre certaines
garanties de sécurité, comme expliqué
ici.
J'ai vu que je dois accepter les cookies pour voter, pourquoi ?
Nous utilisons des cookies pour enregistrer votre préférence linguistique (si vous avez choisi une langue différente de celle par défaut) et pour la gestion des sessions. Cette dernière a pour but de relier les différentes requêtes de l'électeur pendant la phase de vote. Une fois que vous avez voté, toutes les informations permettant de vous identifier sont supprimées. En particulier, nous ne suivons pas les électeurs et n'utilisons pas de cookies à des fins statistiques ou commerciales.
Une autorité de déchiffrement a perdu sa clé, comment faire ?
Malheureusement, personne ne peut récupérer sa clé à sa place ! C'est la base de la sécurité de Belenios : même les administrateurs du serveur n'ont pas accès aux clés de déchiffrement des autorités de déchiffrement. Pour prévenir ce type de problème, nous recommandons deux solutions : 1. faire une répétition sur une fausse élection. Les mêmes clés peuvent être utilisées d'une élection à l'autre en important les clés. 2. mettre en place un seuil d'autorités (par exemple 2 parmi 3). La mise en place des clés de déchiffrement est un peu plus longue mais l'élection peut tout de même être dépouillée lorsque quelques autorités manquent (suivant le seuil choisi).
Sécurité
Est-il obligatoire de choisir une autorité de déchiffrement?
C'est (beaucoup) mieux pour la sécurité. Sans autorité de déchiffrement, le serveur a les capacités techniques de savoir qui a voté quoi. Avec une autorité de déchiffrement (ou plusieurs), pour déchiffrer les bulletins individuels des électeurs, il faut corrompre
cette autorité ET le serveur. En tant qu'électeur vous pouvez contrôler combien d'autorités ont été choisies en consultant l'encadré en bas de la page d'accueil de l'élection.
Est-il possible de vérifier « à la main » le résultat de l'élection, comme on le ferait dans une élection traditionnelle en comptant les bulletins pour chaque candidat ?
Tout dépend ce qu'on appelle « à la main ». Le résultat
est accompagné d'une preuve mathématique qui montre que
le résultat correspond aux bulletins chiffrés de
l'urne. Cette preuve est vérifiable par tous... à
l'aide d'un logiciel. Les instructions pour vérifier le
résultat de l'élection sont disponibles
ici.
Par contre, dans le contexte d'une élection classique, on n'a pas
accès aux votes individuels car les bulletins ne sont
jamais déchiffrés un à un. On utilise une propriété du
système de chiffrement qui fait que l'on peut agglomérer tous les
votes en un seul et ne déchiffrer que le résultat. Ceci donne une
forte garantie de secret du vote, car il n'y a pas besoin de couper le
lien entre un bulletin et la personne qui l'a posté. Des preuves
cryptographiques assurent que le résultat correspond bien au contenu
des bulletins chiffrés. Dans les contextes d'élections complexes
(méthode de Condorcet, jugement majoritaire ou STV), on déchiffre
effectivement les bulletins individuellement, mais cela implique une
procédure plus complexe effectuée par les autorités afin de bien
s'assurer que le lien avec les électeurs a été coupé.
Quel est l'intérêt de laisser les électeurs voter plusieurs fois ?
La possibilité de voter plusieurs fois est une protection (modérée) contre la
coercition : si vous vous sentez obligé de voter avec vos collègues, votre famille, etc.,
vous risquez de ne pas pouvoir voter "librement".
Grâce à la possibilité de revoter, ce n'est pas un vrai problème puisque
vous pouvez voter à nouveau plus tard, lorsqu'il n'y a pas de pression.
Il s'agit parfois d'une fonctionnalité appréciée : vous pouvez expliquer à quelqu'un comment voter (à votre collègue, par exemple)
puis il pourra voter seul, une fois que vous aurez quitté la pièce.
Notez cependant que cela ne constitue pas une protection contre des
coercitions plus fortes : on peut vous demander de fournir vos
identifiants et mots de passe (peut-être serez vous rémunéré en échange de ce matériel) et Belenios
ne protège pas contre ce type de coercition.
Pourquoi permettez-vous l'authentification avec Google et non d'autres services ? Pourquoi ne pas proposer la fédération d’identité Education/Recherche comme le propose RENATER?
Nous supportons l'authentification OpenID Connect et nous avons
ajouté Google comme service possible. Concernant Renater, il y a des questions techniques liées à
l'interfaçage,
mais aussi la question de savoir si Renater souhaite héberger une instance de Belenios.
Belenios peut-il être utilisé pour des élections à fort enjeu ?
A notre avis, aucun des systèmes de vote existants n'offre le même
niveau de garantie de sécurité que le vote traditionnel sur papier
(tel qu'il est organisé en France par exemple). En effet, les
élections à fort enjeu nécessitent des systèmes qui assurent
simultanément le secret du vote, la résistance à la coercition et la
vérifiabilité, sans avoir à faire confiance aux autorités
organisatrices ou au prestataire qui gère l'élection. En outre, un
système de vote devrait également protéger contre la corruption de
l'ordinateur des électeurs : même si l'ordinateur l'électeur est compromis (par un logiciel malveillant par exemple), il ne devrait toujours pas être possible de changer le vote choisi par l'électeur ni même de divulguer son vote.
Belenios ne parvient pas à résister à la coercition : il est facile de
vendre les identifiants et les mots de passe (à moins d'utiliser un
serveur CAS). Une attaque par coercition plus sophistiquée (même en
cas d'utilisation d'un serveur CAS) consiste à demander aux électeurs
de fournir les nombres aléatoires utilisés pour chiffrer leur
vote. Notre propre implémentation de l'isoloir Belenios n'inclut bien
sûr pas cette fonctionnalité (c'est-à-dire la fuite des nombres
aléatoires) mais un coerceur pourrait facilement adapter notre outil
et fournir un service de vote spécial aux électeurs sous
coercition. Une autre limitation importante de Belenios est qu'il
n'est pas résistant à la corruption de l'ordinateur de l'électeur. S'il est corrompu, votre ordinateur peut divulguer votre vote à un tiers ou même voter pour un autre candidat.
Certains systèmes permettent de surmonter ces limites, mais souvent au prix d'autres compromis en matière de sécurité ou de convivialité.
Pourquoi ne pas utiliser un outil de sondage en mode anonyme, comme
Google form ou LimeSurvey?
Tout d'abord, si vous utilisez un outil de sondage, le prestataire
(par exemple Google ou LimeSurvey) a les
moyens techniques de :
- changer le résultat (manipuler chaque vote)
- savoir qui a voté quoi : certes, le vote est anonyme mais le prestataire sait
avec quelle adresse IP vous vous connectez, quel navigateur, quel
système d'exploitation. Si en plus vous avez un compte auprès
de ce prestataire,
ça ne devrait pas être très
dur pour lui de savoir qui vous êtes. Mais l'adresse IP est en général
déjà largement identifiante.
Maintenant, qu'en est-il de l'organisateur de l'élection ?
- Dans la plupart des solutions, il voit les résultats "anonymes" arriver au fur et à mesure, ce qui
présente deux défauts :
- l'organisateur a accès aux résultats partiels ce qui peut influencer
son propre vote s'il est électeur. Il peut aussi tenter de modifier sa
"campagne" s'il fait campagne pour quelqu'un.
- pire, si vous déclarez fièrement à l'organisateur "c'est bon, je
viens de voter, ça marche très bien" et bien, par observation du
résultat partiel avant et après votre vote ... il connait votre vote.
Idem pour le dernier électeur dont tout le monde sait qu'il a eu du mal
et qu'il a voté en dernier.
- Il va falloir faire confiance à l’organisateur quand il va annoncer
les résultats. Quid s'il annonce un faux résultat ? Ou alors, il faut
créer un compte dédié pour l'élection, que tout le monde (ou des
assesseurs) peut consulter, avec les défaut mentionnés au-dessus.
- L'organisateur a envoyé les liens permettant de voter. Il peut donc voter
à la place de chacun (*). Pratique, non ?
(*) Ce dernier point dépend fortement de la solution
utilisée et est à tester. Mais il y a forcément deux
logiques qui s'affrontent et qui sont difficiles à
résoudre : garder un sondage anonyme ou au contraire
authentifier les électeurs et s'assurer qu'un seul vote est pris
en compte pour chaque électeur.
Dans
tous les cas, si l'organisateur a envoyé les liens, il pourra
au moins voter à la place de ceux qui
s'abstiennent.
Et pour les "attaquants" extérieurs ?
Si le sondage est anonyme, il est souvent possible pour un
électeur de :
- voter discrètement une 2e ou 3e fois avec le même lien, en espérant
que quelques personnes s'abstiennent.
- voter plusieurs fois (volontairement ou par erreur), ce qui mènera à
avoir un nombre de vote trop élevé et donc l'annulation de l'élection.
On retombe ici dans la difficulté de maintenir à la fois
anonymat et authentification.
À noter : si vous utilisez Belenios dans le mode le plus simple et donc
sans autorité de déchiffrement, alors notre serveur a
aussi la capacité technique de savoir qui a voté quoi. Si votre élection
dépasse le niveau de sensibilité du choix de la pizza du soir, nous
vous conseillons de nommer une autorité de déchiffrement
externe (ou plusieurs) et de bien tester avant (sinon vous risquez de ne
pas pouvoir dépouiller l'élection).
Installation de votre propre serveur Belenios
Quelles sont les préconisations en terme d'OS, de RAM de disque, etc.. quand on souhaite installer une instance locale ?
Notre serveur tourne dans une machine virtuelle sous la dernière Debian stable, a 4 Go de RAM, 16 Go de disque et 2 CPUs.
Pour un déploiement en production, nous recommandons l'utilisation
d'un reverse-proxy (nous utilisons nginx) pour faire le HTTPS.
Vous trouverez plus de détails
ici.
Une fois le serveur installé, quels sont les tests à effectuer pour vérifier que tout est ok (sécurité, etc...) ?
Il faut s'assurer que le service est bien opérationnel en HTTPS (et pas en HTTP). Après, il n'y a rien de spécifique à Belenios et le serveur doit être bien maintenu : mises à jour du système, pare-feu,
authentification SSH par clé, etc.
Quelle est la procédure à suivre pour effectuer des mises à jour si besoin ?
Le plus simple est de refaire le déploiement à un nouvel endroit de votre système à partir de zéro, en conservant le répertoire "spool" (et les logs s'ils vous intéressent). Les subtilités éventuelles sont
documentées dans RELEASE_NOTES.md.
Il est aussi possible de mettre à jour Belenios en place (c'est plus pratique avec un clone git), mais nous recommandons quand même de commencer par lancer le script opam-bootstrap.sh, lorsqu'il a changé, avec BELENIOS_SYSROOT pointant sur un nouvel emplacement.
J'ai essayé de mettre en place Belenios mais le bootstrapping échoue.