Sans vouloir lancer de polémique, je ne suis pas vraiment d'accord avec de "
prend petit à petit de plus en plus d'ampleur dans la vie du parti ". Le système, en tant que seul implémentation d'un système liquide, reste sous employé par la nature même du fonctionnement du Parti Pirate qui, à défaut d'avoir été pionnier et visionnaire dans le processus de décision collective, a juste remis en place un système représentatif avec une autre distribution de pouvoir.
Je parle de système liquide pour ne pas tomber dans l'amalgame démocratie liquide == Liquid feedbackAvant toute chose, je tiens à rappeler que le vote électronique n'est pas un pré-requis d'un système liquide !
Liquid feeadback ne reste qu'une vision réalisée du concept d'un système liquide. Cela signifie plusieurs choses :
- il correspond à un besoin identifié à un instant T et peu donc correspondre ou pas à notre propre besoin
- il correspond à une définition du concept d'un système liquide alors que nous n'y attribuons pas forcément la même définition. J'explique ce point là par la suite.
Sur cette page, j'ai écris (mais il est possible de ne pas être d'accord)
Lorsqu'on parle de démocratie, et plus particulièrement de processus démocratique, nous parlons de quatre étapes :
1- Mise en évidence d'un problème et de ses composantes
2- Recherche de solution, discussions, arguments-pour et arguments-contre
3- Présentation de la ou des solutions aux personnes devant s'exprimer sur l'adoption de la décision
4- Décision c-à-d choix de la solution la meilleure, ou la moins pire, dans le but de résoudre le problème considérant que la solution n'ira pas à l'encontre des intérêts publics.
La démocratie ne concerne que l'étape 4 pourtant il est essentiel que l'expression publique se fasse aussi dans les trois premières étapes.
Et plus particulièrement, un système liquide ne concerne que l'étape 4. Liquid feedback intègre plus ou moins (bien) les 4 étapes.
Ensuite, comme tu l'as fait remarquer, il n'y a pas de secret du vote ET vérifiabilité dans un vote électronique. Le secret du vote permet d'éviter trois choses :
- la contrainte, qu'elle que soit sa forme, elle permet à une personne d'exercer librement son droit d'expression ;
- la subornation, n'étant pas en mesure de prouver le contenu du vote ;
- la répudiation, n'étant pas en mesure de prouver le contenu du vote, il n'est pas possible de répudier son vote
Le secret du vote ne concerne que l'objet du vote pas la personne. Quand nous allons voter, personne ne sait ce qu'il y a sur le papier déposé dans l'urne mais tout le monde sait qui est allé voter. Dans le vote électronique, nous rechercons l'inverse pour valider la vérifiabilité. Le vote est connu mais personne ne connait son auteur, ce qui pose donc d'autres problèmes.
Gardons à l'esprit que dans un vote électronique, nous n'avaons pas la certitude de l'identité de la personne physique effectuant l'action. Je peux acheter quelque chose avec la carte bleu de ma grand-mère. La transaction peut être correcte pourtant ce n'est pas grand-mère qui a phsyiquement réalisé l'action.
Dans un vote électronique, nous pouvons donner les affirmations suivantes :
- si le vote est secret, il n'est pas vérifiable par le corps électoral (je passe
les arguments de cette affirmation) et reste donc manipulable
- si le vote n'est pas secret, la contrainte peut être évitée mais pas la subornation (je suis en mesure de prouver ce que j'ai voté). La forme électronique que je trouve la plus aboutie est décrite dans cet article
Verifiable Electronic Voting mais reste faillible à la subornation.
- si le vote n'est pas secret, il est potentiellement répudiable suivant le processus mis en œuvre
Si je comprends bien ta proposition il s'agit qu'
à chaque vote qu'un membre du corps électoral génère une paire de clé, dépose la clé publique dans une urne puis obtienne ses identifiants pour liquid feedback chiffrés avec la clé publique, lesquels auront été produit par la codec.
Bon, pour être franc, c'est hors de propos
pour chaque vote : Si une personne souhaite s'assurer du bon déroulement, elle doit apporter elle-même physiquement sa clé dans l'urne(considérant qu'elle sait déjà comment en créer une) puis repartir chez elle, récupérer ses identifiants cryptés, les décrypter avec sa clé privée, se connecter à l'interface, voter. Si elle doit se déplacer physiquement à une urne, autant le faire pour voter directement et, à la rigueur, mettre en œuvre un système de décompte automatique.
Ta proposition évite la contrainte mais pas :
- la subornation : je suis en mesure de prouver ce que j'ai voté
- la répudiation : dans le processus, rien n'empêche d'obtenir les identifiants avant qu'ils soient cryptés. Je peux montrer différents scénario au besoin.
De plus, elle entame sérieusement les possibilités de Liquid feedback en restreignant de fait les possibilités sur les étapes 1 à 3 du processus démocratique. Et enfin, et non des moindres, elle n'aborde pas le concept de délégation qui reste quand même un fondamental (si ce n'est le plus important) d'un système liquide.
Si cette proposition est valable pour l'inscription dans Liquid feedback (donc
pour tous les votes), elle part d'un constat vrai mais trompeur :
L'anonymat n'existe pas dans Liquid feedback. C'est vrai et faux. L'anonymat n'existe pas véritablement (il est possible d'avoir des votes anonymes c'est-à-dire sans affichage des participants) mais nous ne voyons que les pseudonymes de chaque compte. N'importe qui est capable de savoir ce que j'y vote et ce que j'y soutiens. Par exemple, l'avatar est le même ...
Il faut se rappeler le processus d’inscription (s'il n'a pas changé): Lorsqu'un nouvel adhérent est enregistré par le secrétaire, il reçoit en confirmation un message contenant un code confidentiel. Ce code permet de créer un compte sur liquid feedback. L'utilisateur choisis le pseudonyme et le mot de passe qui lui chante et ne fourni son identité à aucun moment. Liquid feedback ne fait confiance qu'au code confidentiel fournis.
Ainsi, la perte de l'anonymat est un choix de l’utilisateur en indiquant des informations identifiantes de sa personne. Si je l'étais inscrit avec le pseudo tatayoyo et un avatar de théière, personne ne serait en mesure de faire la relation. Enfin, personne façon de parler car il est possible de corréler un comportement dans le SI-PP : Je me connecte sur le forum, j'ai l'adresse IP ZZZ, je me connecte à Liquid feedback sans changer d'adresse IP. Un administrateur système ayant accès aux deux systèmes peut briser l'anonymat. Enfin, Liquid feedback étant ce qu'il est, l'anonymat peut être brisé avec les initiatives lancées : On peut reconnaitre l'auteur. En réalité, l'application en fait trop ou pas assez et n'a surement pas découplé l'activité de vote et l'activité de promotion des propositions.
Un anonymat, tel que décrit ci-avant, permet d'échapper à la contrainte mais pas à la subornation et encore moins à la répudiation en y incorporant ton processus. En effet, dans la partie "pour chaque vote", j'indiquais la possibilité d'intercepter les identifiants. C'est possible mais faiblement probable, enfin quoique ... Si quelqu'un à les leviers suffisants, il peut faire échouer un processus en organisant massivement une fraude qui n'aura pas pour effet recherché d'influencer l'élection mais juste d’entacher la confiance dans le système.
Dans une option, pour tous les votes, là les motivations peuvent être vraiment différentes et donc l'intérêt pour cette technique plus grand. Devrions-nous avoir autant confiance dans la codec que dans un groupe qui vous propose un autre système de vote électronique ?
Toutefois, le principe de clé est intéressant mais ne devrait concerner que l'inscription. Avec le système actuel, le secrétaire peut facilement briser l'anonymat en ayant accès à la fois à la base de données des adhérents contenant le code confidentiel d'inscription et à la fois à la base de données de Liquid feedback. C'est peut être cela qu'il faut renforcer. De plus, les identifiants doivent être créés par l'utilisateur final et de lui seul. Cela évite l'interception décrite plus avant.
Prenons le cas des certificats SSL. Je veux un certificat pour mon site. Je produis une paire de clés, je conserve la clé privé à l'abri. Ensuite, je produis un CSR (Certificat signing request, requête de signature d'un certificat) contenant les informations que je dois fournir (l'url du site à minima) et la clé publique. Je transmets mon certificat à une CA (Certification Authority, autorité de certification) qui signe mon certificat. Cela implique qu'elle approuve les données du CSR et produit un certificat que je peux ensuite utiliser sur mon site. Dans la pratique, et comme un passeport, on ne fait pas confiance au certificat du site web mais à la CA qui l'a signée. Ainsi, si la CA n'est pas approuvée sur mon système, une alerte de sécurité sera affichée. Cela ne veut pas dire que le certificat du site n'est pas valable (techniquement il fonctione très bien, voir par exemple le certificat
SNake Oil d'Apache) mais que dans ma configuration, je ne peux pas lui faire confiance n'ayant pas fait confiance au préalable à la CA. SI je décide faire confiance à la CA, le certificat deviendra alors lui aussi de confiance.
Voici donc en "résumé" le fonctionnement des chaines de certificat x509 pour introduire ce qui suit.
Appliqué à liquid feedback, ou un autre système équivalent, voici ce qu'il est possible d'obtenir :
0 - Le Parti Pirate génère un certificat racine pour créer une CA qui produit deux certificats CA intermédiaire : Un pour le secrétaire, un pour le gestionnaire liquid feedback. Les personnes ayant accès à un certificat ne doivent en aucun cas accéder à l'autre.
1 - Un nouvel adhérent génère un paire de clé et un CSR qui est transmis au secrétaire à l'inscription.
2 - le secrétaire valide l'inscription, produit un certificat à partir de la CSR et le signe. Il produit en outre un code confidentiel qu'il signe
3 - l'adhérent reçoit son certificat qui tient lieu de carte d'adhérent électronique et de moyen de s'authentifier auprès des différents services de Parti Pirate (forum, ML, wiki, redmine, etc.) mais pas liquid feedback
4 - il génère une nouvelle paire de clé et produit un ACR (Account Creation Request, requête de création de compte) contenant le code confidentiel signé mais pas d'informations nominatives
5 - il envoie l'ACR au gestionnaire Liquid feedback qui va produire un deuxième certificat permettant de s'authentifier auprès du service et sur la confiance en la signature du code confidentiel. A ce stade, ce gestionnaire ne connait pas et ne doit pas connaitre l'identité de l'émetteur de l'ACR. Le code confidentiel est supprimé du système à la création de ce certificat considérant que le préalable à la création de ce certificat est de confirmer que le code confidentiel est bien produit par le secrétaire.
6 - Il se connecte à liquid feedback avec ce deuxième certificat.
J'ai une variante où une partie de l'ACR est créé par le secrétaire avec des informations utiles pour le vote comme la section d'appartenance. Dans ce cas, le code confidentiel disparait plus ou moins et cette partie d'ACR sert de preuve pour le gestionnaire liquid feedback.
Une autre variante consiste à répudier (ou les rendre obsolètes pour la création de nouveaux certificats mais pas pour l'authentification) les CA intermédiaire lorsque physiquement les personnes changent au poste de secrétaire et gestionnaire.
C'est une usine à gaz
enfin une sorte de PKI (Public Key Infrastructure, infrastructure à clés publiques) qui au détriment de la simplicité du procédé (dans la pratique c'est assez fluide) permet des avantages non négligeables :
- les certificats sont produits avec une durée de validité de 365 jours, c'est-à-dire une durée d’adhésion. Ainsi, et automatiquement, un adhérent n'ayant pas renouvelé son adhésion et connu comme tel. Cela désactive sa participation à liquid feedback sans intervention de la part du gestionnaire ni du secrétaire. Actuellement,
je ne suis pas sûr que les adhérents n'ayant pas renouvelé leur inscription n'ont plus accès à Liquid Feedback. Oui cela implique la production d'un nouveau certificat de l'étape 2 et de rejouer les étapes 3 à 5
- les certificats sont répudiables en cas de compromission et l'effet de la répudiation est immédiat
Ce procédé implique les considérations suivantes :
- Le secrétaire et le gestionnaire ne partage pas de données pour qu'à partir du code confidentiel l'un ou l'autre ne soit en mesure de briser l'anonymat. Ce point est critique et demande différents niveaux de protection suivant le degré de certitude que l'on souhaite obtenir.
- L'utilisateur de Liquid feedback doit utiliser la plateforme au travers d'un réseau de type tor afin que le gestionnaire ne puisse pas faire la relation avec son adresse IP. Cela est valable pour la création du deuxième certificat et pour l'utilisation courante de la plateforme
- Liquid feedback ne doit concerner que la partie 4 du processus démocratique, ou enfin il faut trouver un autre système de vote qui ne serve qu'à cela.
Cela, et en aucun cas, ne préserve de la subornation. Je suis toujours en mesure de prouver la valeur de mon vote.
Bon, encore une belle tartine alors je vais tâcher de conclure. Le vote électronique secret ne peut pas garantir la contrainte, la subornation et la non répudiation du vote :
- C'est un problème intrinsèque et notre niveau de développement technologique ne peut pas répondre à ces questions. (
s'en convaincre ici)
- C'est un problème de notre civilisation, à l'échelle de la planète, où le secret du vote est nécessaire. Il faudrait changer beaucoup de concepts fondateurs pour qu'il ne soit plus nécessaire.
Toutefois, dans un concept liquide, il est possible de s'en passer pour parti. Je l'aborde rapidement
sur cette page.
Le principe est qu'un vote d'une personne est obligatoirement secret via un processus physique type urne transparente. Par contre, l'expression d'un vote contenant des délégations lui ne l'est plus. L'idée est que le bénéficiaire de délégations devient représentatif et, à ce titre, les personnes lui ayant délégué leur voix doive être en mesure de contrôler leur bon usage. C'est un principe de transparence comme à l'assemblée nationale (pas pour tous les cas d'ailleurs).
La problématique de la probité d'un représentant existe toujours (contrainte et subornation) mais affaibli par le fait qu'une délégation peut être révoqué à tous moments. Il y a fatalement un seuil à établir pour qu'un vote soit public dans ce cas et j'avoue n'avoir pas du tout réfléchit à cette question.
Voilà en bref ...