31 Un système de VOTE OPEN SOURCE

Bonjour Etienne Chouard,

un système de vote Open Source (une ressource Internet accessible par tous) dans une démocratie, la vraie, celle que vous décrivez.

Pourriez-vous faire un cahier des charges de ce système ?

Bien cordialement,
ThierryB

Etienne Chouard répond :

Bonjour Thierry.

C’est une approche intéressante (« qu’est-ce que vous voulez, concrètement, finalement ? »).

thierryB: Etablir un cahier des charges permettant l’implémentation d’un système de vote Open Source

Est-ce que vous voulez bien, Thierry, créer un fil sur le forum (lien « Nouvelle discussion », en haut à droite) avec votre question,
pour que je commence à répondre, mais 1) publiquement et 2) pas seul : notre multitude va nous aider à ne rien rater d’important.

En première approche, je dirais que LA difficulté (presque insurmontable, malheureusement), c’est de mettre au point un système qui soit capable, À LA FOIS, de mémoriser qui vote quoi, de ne jamais le dire à personne —même aux programmeurs—, et de permettre un contrôle simple et fiable à n’importe quel non informaticien…

Si je détaille un peu ce qui m’importe, je retiens deux grands cas de figure : A) Élection classique, et B) Sondage-référendum permanent) :

[bgcolor=#FFFF99]A) Élections classiques :[/bgcolor] au minimum : permettre de VOTER sans se souvenir de « qui a voté quoi » :

  1. De vérifier l’authenticité de la connexion (empêcher les usurpations d’identité), mais sans mémoriser ensuite qui vote quoi (il faut peut-être deux PC non connectés et un passage de papier normalisé —codes barres ?— entre les deux),

  2. De collecter et mémoriser le vote de chaque citoyen, mais sans permettre à quiconque l’accès à cette information « qui a voté quoi » => se souvenir de ce vote sans le relier visiblement à une personne : personne d’autre que la machine ne doit pas savoir qui a voté quoi : principe de l’isoloir, qui garantit la liberté d’opinion, l’absence de pressions,

  3. De permettre un contrôle réel, fiable et simple, à tout moment par n’importe quel citoyen non informaticien.
    (Résultat : possibilité, grâce aux ordinateurs, de calculer les résultats dans des élections avec VOTE À POINTS, beaucoup plus respectueux de la complexité de la pensée des hommes.)

[bgcolor=#FFFF99]B) Sondage-référendum permanent :[/bgcolor] si possible, permettre de REVOTER en permanence sur toutes les questions, à volonté :

  1. Se souvenir du vote actuel de chaque citoyen sur chacun des milliers de sujets soumis au vote, pour permettre à chacun de changer d’avis (résultat = sondage permanent et image fidèle de la volonté générale, à tout moment) et de revoter, simplement, dans ce cas de changement d’avis : il faut donc que la machine, et elle seule, soit capable de se souvenir de l’ancien vote et de le remplacer par un nouveau vote,

  2. Permettre à chacun de rajouter une réponse à une question existante (avec un argumentaire joint, et un forum de discussion), et, dans ce cas de nouvelle réponse à une question ancienne, prévenir par mail tous ceux qui avaient déjà voté sur cette question qu’une nouvelle réponse est publiée et qu’il peuvent éventuellement venir corriger leur vote (s’ils trouvent la nouvelle réponse meilleure que les précédentes).

  3. Permettre à chacun de proposer une nouvelle question au vote général (avec un argumentaire joint, et un forum de discussion)

  4. Permettre à chacun de voter sur la pertinence des questions, pour permettre, à la demande, un placement en tête des questions de société les plus importantes (de l’avis général),

  5. Permettre des accès personnalisés à la foule des questions (et des scores actuels) : par date d’ajout, par popularité, par ordre alphabétique, par mot-clef, au hasard…

  6. (last but not least) de permettre un contrôle réel, fiable et simple, à tout moment par n’importe quel citoyen non informaticien.

Nota : ce qu’avaient fait les programmeurs de DEMEXP était formidable, mais le projet est en panne, faute d’animateur… http://www.demexp.org/dokuwiki/start

Au plaisir de vous lire.

Étienne.


thierryb : Je vous cite : « LA difficulté (presque insurmontable, malheureusement), c’est de mettre au point un système qui soit capable, À LA FOIS, de mémoriser qui vote quoi, de ne jamais le dire à personne —même aux programmeurs—, et de permettre un contrôle simple et fiable à n’importe quel non informaticien ».
Ce qui est intéressant est le « presque ». Des idées de solution à ce problème ?

Si il y a des développeurs ici, ils sont les bienvenus …
L’objectif de ce fil de discussion est la constitution d’un cahier des charges détaillé pour l’implémentation d’un système de vote Open Source

La solution est déjà développée, elle nécessite des citoyens, le vote-papier, isoloirs et assesseurs :

décrite en détail par exemple ici : http://www.interieur.gouv.fr/sections/a_votre_service/elections/comment_voter/bureau-vote

Vote par Internet (électronique)

Qu’est-ce que cet que le « vote open source », et en quoi diffère-t-il du vote électronique ?

Si c’est la même chose, il vaudrait mieux combiner ce fil et le fil 59 (« Vote à points et vote électronique » – http://etienne.chouard.free.fr/forum/viewtopic.php?id=239) plutôt que de disperser le débat.

À cette occasion, je propose de modifier l’intitulé du fil 59 comme suit : « Vote électronique (vote Internet), y compris le vote à points ».

Ces questions ont déjà fait l’objet de documents détaillés pour et contre : voir en particulier les rapports du Gouvernement suisse mentionnés sur le fil 59. Des expériences concluantes ont lieu en Suisse depuis 2000 environ : il ne serait pas bon de les oublier pour repartir inutilement de zéro. JR

Je me risque à suggérer une certaine défense du terme « vote open source ».
La mécanique du vote électronique doit être soumise à la surveillance du peuple. Qui doit donc être l’auteur des logiciels, mis au point en commun, selon un processus ouvert et transparent, inspiré par exemple de la tradition de l’open source.

"Open source"/logiciels libres

Après avoir parcouru rapidement les définitions en français et en anglais de l’expression « open source », il me semble que ce que thierryb propose est de mettre au point un système de vote électronique (ou Internet) qui fonctionnerait au moyen de ce qu’on appelle couramment en français des « logiciels libres » – autrement dit librement utilisables, sans avoir à payer.

Je n’ai rien contre, sauf que des logiciels officiels feraient tout aussi bien l’affaire, peut-être mieux à certains égard, sous réserve que des contrôles adéquats puissent être mis en place.

[b]De toute façon, logiciels libres ou logiciels officiels, le principal est que tous les résultats sans exception puissent être vérifiés à tout moment par chaque électeur : c’est la seule garantie réelle de la sincérité du vote.

L’autre impératif majeur est celui de l’anonymat du vote, peut-être plus difficile à réaliser électroniquement.[/b]

Si thierryb est en mesure de nous proposer un modèle satisfaisant à ces impératifs, tant mieux et merci ! Je suppose qu’il tiendra compte de ce qui s’est déjà fait dans ce domaine. JR

Bonjour à tous,

oui le but est bien cela. Un système de vote par Internet avec des logiciels libres Open Source, dont on peut vérifier le fonctionnement car nous aurions les sources du ou des programmes. La licence pour ce type de logiciel est généralement la GPL.
Si les logiciels officiels sont des logiciels Closed Source (code propriétaire, dont le source n’est pas fourni), alors ces logiciels ne feraient pas l’affaire pour ce type d’application, ou pour tout autre type d’application d’ailleurs. Je pense que l’avenir de l’informatique n’est pas dans des logiciels propriétaires mais dans des logiciels ouverts, communicant avec des protocoles ouverts. Pourquoi ? Parce qu’il me semble que Démocratie et Open Source sont deux facettes d’une seule et même chose. Tout comme Internet et GNU/Linux. Des courants de pensées allant dans une même direction. Voilà mon point de vue.

Mais pour l’instant, le plus important est de réfléchir, de lire chacun de vous car vos avis et idées me sont précieux. Il est difficile de prendre un chemin sans se tromper tout seul. A plusieurs, le risque est moins grand et il est plus facile de revenir en arrière si nous nous sommes trompé. Pour l’instant, il est bien de réfléchir ensemble au problème et voir si cela est réalisable ou pas.
Je vais consulter les informations que vous indiquez. On ne part rarement de zéro.

La difficulté majeure à surmonter est je pense celle exprimé par Etienne Chouard, à savoir : « c’est de mettre au point un système qui soit capable, À LA FOIS, de mémoriser qui vote quoi, de ne jamais le dire à personne —même aux programmeurs—, et de permettre un contrôle simple et fiable à n’importe quel non informaticien ». Auriez-vous des idées permettant le respect de ces contraintes ? Pensez-vous que ces contraintes soient nécessaires et suffisantes. Autrement dit, sont t’elles les seules ?

Bonjour à vous,

je pense préciser la pensée de Thierryb en disant que son objectif, à travers l’Open-Source, n’est pas la procédure de vote elle-même et encore moins l’usage non payant du ‹ logiciel › de vote en ligne (il y a des logiciels gratuits ‹ privés ›), mais la formalisation, publiquement, de cette procédure en termes de logique informatique en vue de l’écriture ‹ publique › du code associé, de manière ‹ lisible › au moins par toute personne sachant un tant soit peu programmer, tout ça en vue d’assurer toute la transparence nécessaire à cette démarche citoyenne du vote.

Je ne peux qu’être pour une telle démarche :stuck_out_tongue:
D’ailleurs tant pour le vote que pour le sondage-referendum…

Je ne suis pas assez calé cependant pour savoir comment, physiquement, assurer l’indépendance totale entre une base de données ‹ votants › et une base de données ‹ vote ›, alors qu’il y a forcément un lien entre les 2 !
Là où j’ai tiqué, c’est sur la formule « mémoriser qui vote quoi »…
Peut-être faut-il que la base de données ‹ vote › ne soit accessible que de manière non seulement très contrôlée, mais permettant de ‹ tracer › le plus strictement toute demande de création/modification ET de consultation, SANS LIEN AUCUN avec la base de données ‹ votants ›…

Compte tenu des systèmes de paiement en ligne actuels, ce ne me semble pas impossible, quoi qu’un tantinet complexe pour ceux qui ne sont pas trop habitués à ça (personnes âgées par exemple).
A titre d’exemple, lorsque je fais un paiement sur internet, j’utilise une carte ‹ virtuelle › dont j’obtiens les codes par demande sécurisée en ligne, codes qui ne sont valables que pour 1 seule transaction sur un délai de 1 mois (on peut imaginer qu’il soit réduit encore), que j’utilise dans les secondes qui suivent. De plus, cette transaction n’est finalisée qu’après avoir fourni un dernier code, envoyé par ma banque suite à ma demande, en l’occurrence par SMS, code valable quelques minutes seulement.
Tout ça est certes un peu fastidieux, mais on s’y fait vite, et je n’ai aucune hésitation à payer sur Internet, en France, en Chine ou ailleurs !

En stockant toutes ces données avec le ‹ vote › lui-même, on pourrait (?) s’assurer que la ‹ requête › de création/modification/consultation est en soi valide, sans savoir qui a fait cette requête.
Charge à un autre système (le ‹ vote › proprement dit d’octroyer, sous conditions (présence sur la liste, vote unique ou pas, etc) l’accès à la création de codes que j’évoquais plus haut.
Un contrôle immédiat (continu ? avec alerte immédiate d’irrégularité…) est le comptage des inscrits ayant votés d’un côté, et le nombre de votes exprimés de l’autre.
On peut compléter ça par un contrôle aléatoire a posteriori (par un organisme indépendant !) : tel (tiré au sort) est contacté pour savoir quand/comment il a voté…

Anonymous pourrait prouver le côté illusoire de l’inviolabilité du système, c’est un autre débat :smiley:
Et certaines irrégularités du système actuel telles que listes de votants fictifs ou décédés, échanges de lots d’enveloppes… (et pas si lointaines ! ) montrent qu’il n’est pas infaillible non plus !

PS
on peut imaginer aussi une procédure de traitement qui coupe la liaison physique Internet entre le votant et le stockage du vote :
dans le cas précédent, on stocke tous les codes de transaction dans un fichier qui est transmis (par lot de x milliers, sur clef USB ?) à un système déconnecté du net. Ce fichier est alors soumis au contrôle de cohérence des requêtes avant transfert pour stockage des requêtes valides, qui constituent le résultat. Toute irrégularité conduit à une alerte et l’ensemble du fichier est mis en attente sans stockage. Le fichier résultat n’est ainsi pas atteignable (autrement que physiquement et localement).
On a bien sûr à s’assurer de la probité des opérateurs.

je pense préciser la pensée de Thierryb en disant que son objectif, à travers l'Open-Source, n'est pas la procédure de vote elle-même et encore moins l'usage non payant du 'logiciel' de vote en ligne (il y a des logiciels gratuits 'privés'), mais la formalisation, publiquement, de cette procédure en termes de logique informatique en vue de l'écriture 'publique' du code associé, de manière 'lisible' au moins par toute personne sachant un tant soit peu programmer, tout ça en vue d'assurer toute la transparence nécessaire à cette démarche citoyenne du vote.
Oui, en fait, seule la formalisation est importante. L'écriture 'publique' du code associé est appelé : implémentation. L'implémentation viendra après. Et se sera l'objet d'un autre débat.

Sans être assesseur moi-même, mon ex-femme l’était, j’ai assisté au dépouillement des dernières élections régionales et l’un des assesseurs chargé de la vérification des bulletins prenait un temps très long pour examiner les bulletins du NPA, du Front de Gauche, de Lutte Ouvrière et du Front National en cherchant longtemps la moindre rature ou irrégularité de ce type de bulletin, tandis qu’il passait rapidement sur les bulletins PS et UMP. Je lui en fait la remarque, il a rougit et les autres assesseurs n’ont rien dit et suite à ma remarque il s’est mis à examiner de manière équitable tous les bulletins.

Rien de tel que la présence effective et les contre-pouvoirs concrets, je n’ai aucune confiance en des procédés compliqués qu’une large fraction de la population ne pourrait pas comprendre et qu’il serait facile de détourner, même si ils sont « modernes »

Expérience suisse du vote électronique (Internet)

L’ordinateur ne choisit pas des votes qu’il examinerait plus longtemps que les autres : le problème de dépouillement des bulletins-papier signalé par Gilles dans son message 10 ne se serait donc même pas posé avec le vote électronique (Internet).

Je rappelle, à l’intention de thierryb notamment, que les autorités suisses ont publié des rapports techniques détaillés sur la pratique du vote électronique (Internet) en Suisse. Voir :

FF 2006 5205, http://www.admin.ch/ch/f/ff/2006/5205.pdf (rapport du gouvernement fédéral).

http://www.ge.ch/evoting/ (site de l’État de Genève)

Il serait bon de voir ces rapports avant de se lancer dans la création d’un modèle. On peut envisager (avec modération) de contacter les autorités suisses pour obtenir des renseignements complémentaires.

Pour ce qui est de la vérification de la validité du système, une fois le modèle créé, il appartiendrait aux « cybersceptiques » de faire la preuve qu’il peut être contourné en organisant des attaques. Ce serait l’occasion rêvée d’organiser des sondages sur notre site…

En ce qui me concerne, je n’ai aucune compétence technique en la matière et je m’en tiendrai donc aux résultats des essais (comme beaucoup d’entre nous ici, je pense).

Si thierryb arrive à mettre sur pied un logiciel libre convaincant, il aura droit à notre gratitude éternelle ! JR

Les difficultés d’un tel programme ne relèvent pas (du tout) de la programmation, selon mon expérience sur des projets différents mais utilisant les mêmes technologies, mais sont plutôt :
-Comment assurer que les résultats publiés sont bien issus du processus qu’on croit.
-Comment assurer que le logiciel effectivement utilisé est bien celui qu’on croit.
-Comment assurer que ce logiciel fonctionne de la même façon sur le matériel opérationnel que sur le matériel qui a servi pour les tests.
-Comment assurer que les bugs du compilateur ne modifient pas de façon pernicieuse le comportement du programme exécutable par rapport au comportement théorique du code source.
-Comment assurer que le logiciel exécutable est bien issu du code source qui peut être examiné par ceux qui ont une compétence suffisante pour comprendre son fonctionnement.
-Comment avoir l’assurance formelle que le code source décrit le comportement désiré (notez que c’est le seul point sur lequel l’ouverture du source est, éventuellement, selon la réponse, susceptible d’avoir un effet).
-J’en oublie sûrement.

Ne croyez pas que yaka … , sur chacun des points les procédures de contrôle que vous pourriez imaginer peuvent très facilement être détournées … et le problème n’est même pas celui là, c’est celui de la multiplicité des procédures de contrôle à mettre en place.

En fait on n’est pas prêt d’inventer mieux que des urnes transparentes surveillées par qui le souhaite depuis l’insertion du premier bulletin jusqu’à leur ouverture et l’annonce publique du contenu de chaque bulletin vérifié par qui le souhaite.

L’amélioration ne peut porter que sur le coût écologique, financier et temporel, et a obligatoirement pour conséquence une dégradation de la confiance dans le résultat. Le vote électronique, aussi « satisfaisant » serait il, ne peut être qu’un compromis.

Bonjour lanredec,
merci pour tes précisions.

Les difficultés d'un tel programme ne relèvent pas (du tout) de la programmation ...
Comme stipulé dans le fil de ce post, nous le savons déjà. Merci de le préciser une nouvelle fois.
Ne croyez pas que yaka ... , sur chacun des points les procédures de contrôle que vous pourriez imaginer peuvent très facilement être détournées ... et le problème n'est même pas celui là, c'est celui de la multiplicité des procédures de contrôle à mettre en place.

En fait on n’est pas prêt d’inventer mieux que des urnes transparentes surveillées par qui le souhaite depuis l’insertion du premier bulletin jusqu’à leur ouverture et l’annonce publique du contenu de chaque bulletin vérifié par qui le souhaite.


J’essai de rester lucide et je ne crois pas au Dieu yaka. Je te rassure. Mais, avec les précieuses informations de ce fil, il est bien d’essayer quand même, même si cela s’avère impossible à priori.

-Comment assurer que les résultats publiés sont bien issus du processus qu'on croit. -Comment assurer que le logiciel effectivement utilisé est bien celui qu'on croit. -Comment assurer que ce logiciel fonctionne de la même façon sur le matériel opérationnel que sur le matériel qui a servi pour les tests. -Comment assurer que les bugs du compilateur ne modifient pas de façon pernicieuse le comportement du programme exécutable par rapport au comportement théorique du code source. -Comment assurer que le logiciel exécutable est bien issu du code source qui peut être examiné par ceux qui ont une compétence suffisante pour comprendre son fonctionnement. -Comment avoir l'assurance formelle que le code source décrit le comportement désiré (notez que c'est le seul point sur lequel l'ouverture du source est, éventuellement, selon la réponse, susceptible d'avoir un effet). -J'en oublie sûrement.
Je te remercie pour cette synthèse explicite, qui est le développement de la contrainte "presque insurmontable, malheureusement), c’est de mettre au point un système qui soit capable, À LA FOIS, de mémoriser qui vote quoi, de ne jamais le dire à personne —même aux programmeurs—, et de permettre un contrôle simple et fiable à n’importe quel non informaticien" exprimée par Etienne Chouard.

Nous progressons … ensemble.

Je rappelle l’objectif de ce fil : Permettre à tous et chacun, de s’assurer que le programme et ses données (système de vote Open Source par Internet), n’ont pas été altérés ET de s’assurer, également à tous et chacun, que ses données ainsi que celles concernant le dépouillement sont corrects (contrôle du résultat du dépouillement effectué par le programme).

Cet objectif est à mon sens irréalisable avec un vote à bulletin secret. Pas de solution informatique par Internet à mon sens. La solution restant la meilleure, un bulletin papier avec dépouillement et contrôle.

Il existe cependant, certainement une solution permettant d’atteindre cet objectif SI il a été décidé que le vote ne serait pas anonyme (bulletin secret).
Après réflexions, le fait d’accepter de ne pas voter sous le secret, serait à mon sens, un acte responsable. Qu’en pensez-vous ?

L’anonymat est nécessaire pour assurer la liberté et la sincérité de l’élection

S’il n’était pas possible, il faudrait renoncer au vote Internet.

Sur quelles bases (quelles recherches) thierryb est-il en mesure de conclure que l’anonymat électronique est irréalisable ?

JR

S'il n'était pas possible, il faudrait renoncer au vote Internet. Sur quelles bases (quelles recherches) thierryb est-il en mesure de conclure que l'anonymat électronique est irréalisable ? JR
irréalisable SI le vote est à bulletin secret. Je m'expliquerai dans un prochain post.
[b]L'anonymat est nécessaire pour assurer la liberté et la sincérité de l'élection[/b]
Pour ma part, dire que je vote pour telle ou telle idée ne m'enlève aucunement ma liberté ou ma sincérité. De plus, étant donné que je ne suis pas anonyme dans mon vote, cela me force à être responsable, vis à vis de mes choix et de mes actes. L'anonymat est nécessaire ? Quelle idée saugrenue ! A mon sens.

Anonymat et vote

@thierryb

L’anonymat saugrenu ? Vous croyez, vraiment ?

Vous êtes-vous êtes posé une seconde (on ne le dirait pas !) la question de savoir ce qui se passerait si la famille, le syndicat, les collègues de bureau, les patrons, le gouvernement pouvaient savoir comment on a voté ?

Le vote est affaire de décision individuelle en conscience : aucune pression ne doit être possible. Sans l’anonymat, toutes les pressions sont possibles, et l’expression de la vraie volonté générale est exclue.

Si l’Internet ne permet effectivement pas l’anonymat avant, pendant et après le vote, alors restons-en au système papier.

Mais j’attends bien sûr de savoir sur quoi repose votre conclusion que le vote Internet anonyme n’est pas possible.

Avez-vous vu les rapports suisses ?

JR

Bonjour Jacques Roman, je vais lire toutes les infos de ce fil ce week-end. Merci pour votre point de vue.
Ensuite, j’exprimerai ici pourquoi cela est possible si le vote n’est pas à bulletin secret, et les solutions envisageables. J’exprimerai également, concernant le vote à bulletin secret, pourquoi une une solution informatique par Internet n’est pas possible.
Bien cordialement,

Si l’anonymat est nécessaire pour assurer la liberté et la sincérité de l’election pourquoi les députés n’en bénéficient ils pas ?

Pourquoi le vote citoyen est secret, et pas le vote des élus

Les élus sont des représentants des citoyens, donc des mandataires : le mandant a, évidemment, le droit de savoir ce que le mandataire fait en son nom.

Par contre, l’électeur n’est pas un mandataire.

Mais même pour les élus il peut arriver que le vote soit secret (par bulletin), lorsque la question est à décider en conscience, pour éviter des pressions. Ce ne serait pas possible avec le mandat impératif. JR