Mot-clé - lire avant de hurler

Fil des billets - Fil des commentaires

jeudi 29 septembre 2011

Positionnement sur le vote électronique

Dans le cadre de ses travaux de recherche sur les formes de démocratie en politique, Jonathan Bocquet m'a posé quelques questions sur le vote électronique, la perception que j'en ai, et comment le Parti Ꝓirate se positionne à son sujet.

tl;dr : Le vote électronique est compliqué, mais il faut y passer dès que c'est fiable.

Les outils de vote

Question : Dans quelle mesure le vote électronique est-il souhaitable et réalisable ?

Concrètement, le gros avantage du vote papier est l'accessibilité : tout le monde, même les illettrés, peuvent participer au dépouillement : il suffit de faire une croix sur un tableau chaque fois qu'on voit un dessin particulier sur le bulletin. Pour connaître le résultat, on regarde le candidat qui a le plus de croix. C'est ce qui rend le vote papier si fort : tout le monde peut voir de ses propres yeux ce qui se passe.

Le vote électronique supprime cette possibilité à cause de la dématérialisation : on est obligé de faire confiance à la machine (et donc aux informaticiens qui l'ont conçue, à ceux qui la font tourner, etc). Les procédures de vérifications sont délicates, la fraude numérique est difficile à suivre, etc. Les arguments sont connus.

Ceci dit, le vote électronique présente des avantages : rapidité de déploiement d'un vote par internet (ce qui veut dire que les citoyens doivent avoir un accès au net), coût de mise en place d'un vote très faible, rapidité et fiabilité du comptage des voix (si pas de fraude, bien sur :)…

Les machines numériques à voter, en revanche sont une aberration : elle prennent le pire des 2 approches : non seulement ça coûte cher, c'est complexe, mais en plus ça introduit le doute dans la fiabilité. À proscrire.

Donc avec les 3 systèmes (papier, machine et internet), il y a du pour et du contre; mais le contre est bloquant car un vote doit absolument être perçu comme fiable pour être accepté par les citoyens (qui voterait dans une procédure pertinemment connue pour être sciemment faussée ?)

Les chercheurs scientifiques se sont donc penché sur cette question : comment concevoir un vote numérique qui répondrait aux critères d'admissibilité tout en proposant un gain sur le vote papier actuel ? On commence à avoir des réponses, via notamment le bulletin de vote à coupon détachable[1].

Pour un vote entièrement dématérialisé, des choses se font du côté du gouvernement via le projet d'identité numérique, IdéNum[2]. On commence à avoir un certain retour d'expérience avec des travaux réalisés dans le cadre des impôts et de la santé, au niveau du couplage de la garanti de l'identité et l'anonymisation des données tout en les traçant.

Mais au final, même si je suis convaincu qu'on disposera de méthodes et d'outils pour réaliser des votes entièrement numériques (ce qui serait Bien à mon sens), ça sera un problème politique et même de société : veut-on d'un vote qui ne soit pas papier ?

Les outils de vote au sein du Parti Ꝓirate

Question : Est-ce que certaines décisions du PP ont déjà été prises électroniquement ? via un sondage forum formalisé ou non formalisé ? autre ?

Au niveau du PꝒ, pas de position officielle car c'est le bordel : des gens sont paranoïaques sur tout ce qui touche à l'identité sur le net, et d'autres veulent plus d'ouverture, donc pas moyen de trancher en l'état. D'où l'intérêt des cellules locales qui permettent de forger des convictions propres à des groupes de personnes, qui peuvent même aller à l'encontre (dans une certaine mesure) de la politique générale du PꝒ.

De très nombreux votes mineurs informels sont toutefois réalisés de façon électronique : choix du design de la carte de membre, de version d'une affiche, de formulation de phrase dans une publication, choix de date de réunion, etc.

Habituellement, ça se fait sur les forums (qui sont un des outils de travail du PꝒ), mais ça se fait aussi par Doodle ou Pollen. Ça dépend le public ciblé, et le type de vote qu'on veut.

Pour les votes majeurs, on est contraints (et encadrés) par les statuts de l'association (et maintenant de la législation des partis politiques).

La démocratie liquide

Question : J'ai vu aussi que le PP expérimente un outil de démocratie liquide, tu peux m'en dire plus ?

C'est un type de prise de décision basé sur la fluidité des voix des votants. En gros, pour chaque vote, tu peux déléguer ta voix à n'importe quel autre votant pour qu'il s'exprime à ta place (tu n'as pas le temps, tu fais confiance à son jugement pour qu'il fasse bon usage de ta voix, etc). À tout moment, tu peux reprendre ta voix et la confier à quelqu'un d'autre, ou l'utiliser directement. Un votant peut être dépositaire d'un nombre quelconque de voix d'autres votants, et peut également transmettre à une autre personne les voix qui lui ont été confiées. Bien sur, chaque votant à moyen de connaître exactement qui détient sa voix à un moment donné. Au moment du vote, on fige les voix exprimées et on regarde les scores.

Le principe est donc que chacun peut représenter d'autres personnes, grave à un mécanisme « liquide » (transitif, réversible et accumulable).

Cela est sensé permettre une démocratie plus directe que celle par représentation classique (où la voix des citoyens est capturée par leurs représentants).

Mais il y a des pendants : le populisme, la délégation systématique « par défaut » de sa voix, etc.

Les pirates allemands l'utilisent depuis un moment, dans le cadre de l'adhocratie, et le PꝒ français met ça en place.

Question : Est ce que la démocratie liquide a déjà été expérimentée en interne au PP? Si oui sur quels sujets ?

Oui, mais juste à titre de manipulation, pour voir ce que ça donnait sous la main et vérifier que ça permettait bien de faire ce qui était promis :) Une instance est en train d'être déployée sur un serveur du PꝒ, mais ça demande un peu de travail.

Fiabilité des méthodes de votes

Question : Dans quelle mesure selon toi on peut être contre les discours qui voient internet comme un danger, et à côté de ça être méfiant quand au vote électronique ? Qu'est ce qui peut expliquer une telle position ?

Tout simplement, c'est l'expérience qui nous pousse à la prudence. Les mises en place aux USA ont été catastrophiques, avec plusieurs cas de fraudes avérées sur des machines à voter, avec différents vecteurs d'attaque.

Le principal problème vient de l'opacité de ces machines à voter : le marché est attribué à un industriel qui les conçoit selon un cahier des charges, et qui garanti ensuite leur fiabilité. Problème : quand des essais indépendants sont réalisés, sans aucune aide (documentation, entretiens avec les ingénieurs, etc), on découvre que c'est bourré de défaut de conceptions. Et donc qu'il est compliqué d'accorder confiance au processus de vote.[3]

Une solution simple serait d'ouvrir les sources et plans de ces machines à voter, afin que chacun (expert ou non) puisse les examiner. Problème : les entreprises refusent en invoquant des brevets, secret de fabrication, etc. Donc les citoyens sont obligés de faire confiance à un système opaque, piloté au final par de grands industriels. Pas terrible du point de vue démocratique.

En ce sens, les machines à voter son mauvaises. On retrouve les mêmes reproches pour le vote électronique via internet : systèmes opaques sans contrôles.

Fondamentalement, je ne suis pas opposé à l'utilisation de la technologie dans le processus de vote, mais cela doit être fait Correctement.

Rapport de l'humain au vote électronique

Question : Quand tu parles de paranoïa sur tout ce qui touche à l'identité sur le net, qu'est ce que tu entends par là par rapport au vote électronique ?

L'idée qu'on pourrait connaître le vote et donc les choix politiques d'un "votant électronique"en le traçant ?

Sur internet, une personne est confrontée à plusieurs problématiques opposées et complémentaires quand il s'agit de son identité :

  1. Elle doit pouvoir prouver sans équivoque son identité, quand elle le souhaite : par exemple pour interagir avec sa banque, les administrations, exercer une activité professionnelle, etc.
  2. Elle doit pouvoir masquer son identité, quand elle le souhaite : pour exprimer une opinion sans être inquiété, pour avoir une vie privée… privée, etc.
  3. Elle doit pouvoir ne pas laisser de traces de son activité sur internet qu'elle ne souhaiterait partager. Ce point est le plus délicat à formaliser et à comprendre. Par exemple, une personne peut vouloir partager ses photos de vacances, y compris publiquement, mais ne pas souhaiter que l'on sache quand et où elle a réalisé ce partage (sa localisation dans l'espace et le temps ne regarde personne) Ou bien, une personne peut souhaiter effectuer un achat en ligne, sans que le vendeur puisse établir un profile de consommateur à partir de sa navigation sur la boutique; mais qu'il sache ce qu'elle achète ne pose pas de soucis

Le risque du ① est l'usurpation d'identité. Si le système d'identification est mal conçu ou mal utilisé, une personne peut se faire voler son identité numérique, et donc se faire vider son compte en banque, voir son vote à une élection détourné, etc. Les enjeux sont énormes, donc le principe de précaution est d'usage.

Le risque du ② est le faux sentiment d'anonymat. Si le système d'anonymat est mal conçu ou utilisé, une personne peut se faire démasquer alors quelle pensait être protégée. Ça fait aussi très mal.

Le risque du ③ est la fuite d'informations personnelles. Si le système d'anonymat est mal conçu ou mal utilisé, on a une jolie violation de la vie privée de la personne, et à son insu. Pas glop.

Le vote électronique rassemble une combinaison de ces 3 problématiques : je dois pouvoir voter en sachant que ma voix est traitée de participation fiable (elle ne peut pas être modifiée), tout en empêchant quiconque de savoir comment j'ai voté (franchement délicat, ça), tout en protégeant les modalités de mon vote — quand, comment et pourquoi j'ai voté ainsi — (faisable assez aisément). La combinaison de ces critères pèse très lourd sur la conception et la mise en œuvre, et ce sur toute la chaîne (de l'humain au dépouillement, en passant par le stockage et la vérification par des tiers).

Et comme le vote est un élément crucial de notre société, on ne peut pas se permettre de faire n'importe quoi. Les industriels ADORERAIENT signer des contrats avec l'état pour vendre et entretenir des dizaines de milliers de machine à voter… avec tous les systèmes d'informations qui vont derrière. Curieusement, je suis sur que Thales ou Dassault emporteraient le marché…

Je suis franchement en faveur du vote électronique mais les risques connus sont très grands, sans parler des attaques informatiques qui auront nécessairement lieux contre le système (venant de France ou de l'étranger, d'ailleurs), donc tant qu'on ne disposera pas d'un système sur et fiable à grande échelle, je pense qu'il restera cantonné aux votes de petites ampleurs. Ils existent de nombreuses solutions qui ont fait leur preuves, mais pour diverses raisons techniques et d'usages on ne peut pas faire un passage à l'échelle de la nation.

La confiance dans le vote aléatoire

Question : En dehors du vote électronique, se pose aussi la question du "choix électronique" notamment pour les tirages au sort. Le parti pirate allemand a tiré ses candidats au sort lors des dernières élections. A grande ampleur là aussi, il faut un programme informatique, est-ce que cela ne pose pas les mêmes problèmes de confiance ?

La confiance dans l'aléatoire est également importante, mais ne pose pas de soucis.

La question de l'aléatoire en informatique est désormais correctement maîtrisée pour pouvoir surmonter les problèmes usuels. On peut donc facilement générer de l'aléatoire, à partir d'un ordinateur courant, suffisamment aléatoire pour être utilisable; voir même générer de l'aléatoire fort à partir de phénomènes physiques provenant d'appareils de mesures reliés à un ordinateur.

Une solution très simple pour générer de l'aléatoire de façon fiable, et au vu de tous, est le tirage de dés devant une webcam diffusant en direct l'événement. D'une façon purement immatérielle, on peut également s'appuyer sur des méthodes distribuées : tout le code source est ouvert, chaque participant génère un partie de l'aléatoire et c'est la combinaison des fragments qui donne le résultat final.

jeudi 30 juillet 2009

Pourquoi je ne crois pas (encore) en la trace modélisée

Non, non, ne hurlez pas; je vous vois venir avec vos mais qu'est-ce qu'il va encore nous inventer cette fois-ci ? :)

Lisez, vous allez voir, ça va vous intéresser.

Avant-propos

Je travaille depuis maintenant un bon moment à mettre en place une partie de nos idées sur les traces, concernant la visualisation d'activité (individuelle ou collaborative, a/synchrone, ici on s'en fout). Architecture, conception de modèles, instrumentation d'application, couche réseau, formats de données, parsers, etc; vous l'avez compris, tout passe entre mes mains excepté le SGBT qui est pour moi une boîte noire. Si vous pouvez imaginer quelque chose relatif aux traces (RàPC excepté), alors je me suis certainement penché dessus à un moment durant ces six derniers mois.

Je vous présente ici un retour sur l'expérience que j'ai développé, à base de réflexions personnelles. Le constat est plutôt mitigé, je vous préviens d'avance. Rien de dramatique, mais il faudra en tenir compte pour la suite de nos travaux car ça a des conséquences importantes. Je vais essayer de faire un découpage propre, mais vous allez voir que tout est lié.

Ma réflexion est orientée sur le transfert vers l'entreprise (non, ce n'est pas un gros mot) de nos travaux de recherche. C'est à dire : « qu'est-ce qu'il faut prendre en compte lorsqu'on va essayer de vendre la trace modélisée à un industriel ».

La conception de modèle

La première étape de l'enrichissement d'une situation informatique par les traces (sous-entendu, après tout le blabla d'analyse) est la conception d'un modèle de traces de logiciel(s). Cela :

Demande des compétences très spécialisées

Soyons réalistes, comprendre la théorie de la trace modélisée et être capable d'expliciter des interactions dans son formalisme n'est pas à la portée de tout le monde. Non pas que cela soit particulièrement complexe, mais cela exige un certain nombre de connaissances et de compétences qui ne se trouvent pas partout.

Que ce soit par une méthode ascendante ou descendante, concevoir des modèles de trace d'applications ne peut être fait que par un petit nombre de personnes. Or, ce qui est rare est cher. Il va donc falloir convaincre l'entreprise de réaliser cet investissement. Cela peut passer par une mission d'un expert extérieur, la formation d'une personne déjà en place, un partenariat avec une structure compétente, etc. Plusieurs possibilités existent, mais toutes ont un coût qui n'est pas négligeable.

Nécessite beaucoup de temps

Un logiciel, même très simple, est riche en possibilités d'interactions. On peut retenir l'utilisation de menus, de boutons, de paramètres, de zones de saisie, de fonctions, etc, ainsi que des opérations plus globales impliquant les périphériques d'entrée et de sortie.

Au final, on se retrouve à manipuler un très grand nombre d'observés et de relations, ce qui nécessite plusieurs jours semaines de travail. La richesse en observés étant exponentielle par rapport à la complexité d'un logiciel, essayez de visualiser ce à quoi pourrait ressembler le modèle de trace d'OpenOffice. Oui, c'est plus que gros : c'est énorme. Et on ne peut pas se permettre de laisser de côté certaines parties du modèle car cela impliquerait de ne pas être capable de représenter correctement les interactions de l'utilisateur sur ce logiciel.

L'entreprise ayant besoin de tracer une activité, un environnement ou que sais-je encore, va devoir y passer du temps (qui est aussi de l'argent, comme nous le rappel le célèbre adage). Ce temps sera pris au dépend d'autres activités, peut-être plus facilement et rapidement rentables.

Comprend aussi la conception des règles de transformations usuelles

Tout comme sans maîtrise, la puissance n'est rien, des traces qu'on ne peut pas manipuler sont tout de suite moins intéressantes. La conception de jeux de règles de transformations adaptées aux modèles de traces est un des à-côté du travail conceptuel de la trace.

En effet, on ne peut pas simplement donner un modèle de trace à une entreprise en lui disant « voilà, tu as ton modèle, à toi de te débrouiller pour faire ce que tu veux avec ». Il faut donc en parallèle du modèle construire les règles de transformations qui vont les utiliser, afin d'obtenir un résultat final qui corresponde aux attentes de l'entreprise. L'entreprise pourra certes produire en interne de nouvelles règles de transformations (par une tactique de copie/adaptation), mais il faudra lui préparer le terrain. Et qui est-ce qui va se taper le travail ? Gagné, c'est l'expert qui s'occupe déjà du modèle. Cela augmente sensiblement sa charge de travail, et donc le coût pour l'entreprise.

Instrumentation des logiciels

Selon le logiciel à instrumenter, le travail technique pour réaliser la collecte d'observés varie grandement. J'ai identifié 3 catégories d'instrumentation :

  • édition en profondeur du code source : méthode qui nécessite d'avoir accès au code source du logiciel, et d'être en mesure d'y apporter des modifications;
  • création de greffons présentant des interfaces pour interroger le contenu de variables d'état : ici, on ajoute des fonctionnalités à l'application en s'appuyant sur ses API. On est limité par ce que propose l'application en terme d'accès aux ressources internes.
  • création de préparateurs de traces qui récupèrent des données exportées par l'application pour produire des observés : cette approche consiste à récupérer des informations sorties de l'application via ses méthodes standard (par exemple, flux RSS ou AppleEvent). Cette méthode apporte le découpage le plus fort dans le tandem application/traçage, et est limitée par l'application elle-même.

Selon les applications à instrumenter et les méthodes utilisées, le coût de l'adaptation logicielle varie énormément. Malheureusement, il n'est pas possible d'identifier un petit nombre de critères précis permettant de quantifier simplement ce coût. C'est uniquement en prenant en compte une combinaison de nombreux facteurs qu'on peut le déterminer. À titre d'idée, on peut citer sans s'y restreindre :

  • la complexité du travail;
  • la durée du travail;
  • le langage de programmation (allez trouver quelqu'un qui fait encore du COBOL, tiens :)
  • la documentation disponibles (humain, référentiel de développement, etc);
  • l'urgence;
  • etc.

Il y a également les coûts liés; par exemple, les structurels : achat d'un serveur pour le SGBT, mise à jour des matériels, adaptation de l'architecture réseau...

Les cycles de vie logiciel dans environnements tracés

Un logiciel peut être vu comme quelque chose de « vivant », évoluant au fur et à mesure des versions. Ces évolutions sont nécessaires pour de nombreuses raisons : changement dans l'environnement d'accueil (le système d'exploitation), sécurité, nouvelles fonctionnalités, etc.

Tout naturellement, il faut que les éléments du traçage accompagnent ces évolutions. Tout s'enchaînent très rapidement de façon implacable :

  1. modifier le logiciel tracé (peut) oblige(r) à modifier la collecte
  2. modifier le logiciel tracé oblige (pas moyen d'y échapper, là) à modifier le modèle de traces
  3. modifier le modèle de traces oblige à modifier les transformations de traces (et oui...)
  4. modifier les transformations de traces impacte sur la visualisation des traces (j'y reviendrais plus tard)

On se rend compte alors que la mise à jour est coûteuse car il faut de nouveau faire appel à notre expert. Vous souvenez de lui, celui de la 1e étape, qui avait conçu les modèles ? Et bien il va falloir retourner le voir pour lui demander de se pencher sur les modifications. Ceci dit, ça tombe bien car il pourra tout traiter d'un seul coup : l'évolution des modèles et celle des transformations. Et si en plus derrière il peut assurer la formation ça ne sera pas perdu.

Le plus problématique est qu'il faut répéter ce cycle à chaque nouvelle version du logiciel. C'est réellement un surcoût, car la rentabilité n'est pas évidente à dégager (comptablement parlant).

Mentalement, insérez ici un joli schéma de traces complet d'une application, montrant côte à côte les modèles de traces pour la version N et la version N+1. Imaginez de gros, gros (mais alors gros), graphes avec des nœuds et des arcs dans tous les sens, qui seraient différents de seulement quelques détails : observés en plus ou en moins, déplacement de relations, changement d'attributs, etc.

Je mettrais les schémas quand je les aurais fini, le but est ici de vous faire prendre conscience du volume de travail que ça représente.

Pratiques des utilisateurs liées aux traces

En ce qui concerne l'utilisateur final, c'est plus simple pour lui. Une évolution de son environnement tracé se traduit non seulement par une modification de sa pratique métier, mais également de sa pratique réflexive via les traces. Ben oui, vous ne croyez quand même pas qu'au final rien ne change ? Et comme nous le savons, tout ce qui change les habitudes de l'utilisateur le fait râler (sauf si c'est Génial, mais ça seul Apple arrive à le faire :)

De petites modifications dans un logiciel peuvent avoir de grandes répercutions sur le modèle de trace, et donc sur la visualisation interactive de la trace par l'utilisateur. Il va donc lui falloir un temps d'adaptation (ce qui influera sur sa productivité), voir même une formation.

Également, les changements dans les traces et modèles pourront se propager à d'autres environnements, tracés ou non. C'est le cas lors de la documentarisation de traces en vue de générer des productions (textes, hypermédia, etc.) Même si ces outils ne sont pas tracés, ils sont impactés par les changements sur les données d'entré.

Que retenir au final ?

On peut dire qu'instrumenter un environnement pour lui faire générer des traces est long, pas toujours simple, et n'est pas nécessairement faisable de façon clairement rentable.

Les problèmes apparaissent à tous les niveaux : conceptuel (modèles), technique (instrumentation) et humain (usage). Les principaux étant le coût (je crois l'avoir suffisamment répété :) de la mise en œuvre de la trace dans un système existant, et les compétences spécialisées requises dans chacune des étapes de la réalisation.

Convaincre un industriel d'investir dans la trace est alors réellement un problème, car les gains à dégager sont difficilement calculables, et la mise initiale est élevée.

Au final, pour moi la théorie de la trace est attirante sur le papier, mais les difficultés liées à la réalisation sont vraiment rebutantes.

Pistes envisageables

Tout n'est pas perdu ! Maintenant que nous avons regardé le problème droit dans les yeux, on peut louvoyer en évitant ce qui justement nous embête.

Ainsi, on peut songer à cibler en priorité les systèmes figés, qui n'évoluent pas ou très peu :

  • machine-outil : une chaîne de production change rarement, car son utilisation est planifiée en amont. Du coup, pas besoin non plus de faire évoluer les trucs-de-la-traces \o/
  • systèmes critiques : les outils comme ceux du contrôle aérien n'ont pas le même cycle de vie que les logiciels grand public; on ne passe pas son temps à les mettre à jour. Il sont conçus pour durer, et c'est au contraire les autres systèmes qui s'adaptent pour interagir avec eux. En gros, une fois le traçage dedans, il n'en bouge plus.
  • logiciels arrivés à maturité; ils peuvent être complexes (Lotus Notes) ou très simples (calepin de Windows). De par leur nature, rôle ou histoire, certains logiciels sont intouchables; on se contente au plus de les recompiler, mais en veillant à ne rien changer afin de ne pas provoquer d'effets de bord (comme par exemple un changement de modèle de trace).

Une autre approche est de se poser la question de savoir qui a suffisamment d'argent à dépenser pour se lancer dans un projet pareil, sans que le responsable risque de se faire virer après la réception de la facture par le service compta :

  • les grands comptes : la Poste, EDF (eh, ça tombe bien :), etc;
  • la fonction publique : quand l'administration investie, elle ne le fait pas à moitié; souvenons-nous du « Plan informatique pour tous »;
  • les Décideurs Pressés qui imposent contre l'avis de leurs DSI des solutions qu'ils jugent intéressantes. Avec un joli PowerPoint®™©, on arrive à vendre des glaçons au Pôle Nord.

Vous l'avez compris, j'exclus tout ce qui est grand public dans les cibles potentielles. Il y a éventuellement le monde du Libre qui pourrait mettre en place et maintenir des utilisations de traces modélisées, mais il faudrait vraiment que ça soit pertinent.