Plan & LiensRecommander Auteurmàj : 20 jan. 2017
votation.net

  1. Introduction
  2. Client-serveur VS pair à pair
  3. Prestataire de services eID
    1. Principes
    2. État vs prestataire
    3. Prestataire vs client
  1. Contenu de la carte eID
  2. Identification des utilisateurs
    1. Types d'identification
    2. Identification crédible
  3. Protection de la vie privée
  1. Intégrité des données
    1. Principes
    2. Terminaux sécurisés
    3. Cryptographie quantique
    4. Chaîne de blocs
  2. Fiabilité du matériel

IntroductionHaut

Le lecteur constatera que la plupart des problématiques évoquées ici ont leur équivalent dans les systèmes de votation traditionnels, que ce soit pour des élections ou des référendums. Dans notre article "Fiabilité des systèmes de votation" nous avons montré la nécessité que le (certes salutaire) débat concernant les risques en matière de vote électronique (erreurs, fraudes, etc) soit élargi à celui de la crédibilité des systèmes de votation en général, qu'ils soient "traditionnels" ou "électroniques". Ainsi qui est en mesure de vérifier l'intégralité du fonctionnement du système électoral traditionnel ? Par exemple avez-vous une garantie crédible que les résultats ne sont pas falsifiés à l'étape finale de leur concentration et du calcul du résultat global ?

Pourquoi malgré ces incertitudes évidentes le système de votation traditionnel bénéficie-t-il d'autant de clémence de la part de l'opinion publique ? C'est un des apports de la présente contribution théorique que de susciter ce type de réflexion. En tentant de construire un système ouvert pour une véritable démocratie nous mettons à nu l'opacité du système politique partis-élections-"représentants" et l'irrationalité des croyances qui le "valident".

L'ambition du présent travail va cependant plus loin : il s'agit de poser les fondements théoriques pour la conception et l'implémentation du système de démocratie directe défini dans notre projet democratiedirecte.net.

Réseau client-serveur VS pair à pairHaut

Types de réseau

Dans notre système de votation l'identification des utilisateurs au moyen de la carte eID fonctionne en réseau centralisé (modèle "client-serveur"). Mais l'on voudrait également développer un système d'identification fonctionnant sur un réseau (totalement) décentralisé (modèle "pair à pair"), et offrant au moins les mêmes fonctionnalités qu'un système décentralisé.

Pour cela il importe de bien comprendre les spécificités propres à chacun de ces deux types de réseau (cf. graphique ci-contre).

Ces spécificités impliquent des choix stratégiques. Ainsi dans un réseau pair à pair chaque noeud du réseau est à la fois client et serveur, mais aucun des noeuds n'est indispensable, contrairement au modèle centralisé qui ne peut fonctionner sans serveur.

Avantages et
inconvénients

Résilience. Dans un système décentralisé chaque noeud du réseau (point de connexion d’au moins deux branches) est en fait à la fois client et serveur, mais aucun des noeuds n'est indispensable en ce sens que le réseau continue de fonctionner même si une partie en est détruite. À l'opposé, dans un réseau centralisé, tout le système devient inopérant en cas de mise hors d'usage du serveur.

Coût. Le coût total d'un serveur (matériel, local, maintenance, sécurité, ...) est bien plus élevé que celui d'un terminal "pair". En revanche la conception d'une application en réseau pair à pair est confrontée à une plus grande complexité, et même - selon le théorème CAP - à des limitations induisant d'inévitables arbitrages entre critères de performance des fonctionnalités de l'application.

Exemple. Un moteur de recherche décentralisé est confronté à la difficulté d'opérer de façon décentralisée les fonctions suivantes :

  1. apprendre la topologie des nœuds du réseau (annuaire des utilisateurs, ...) ;
  2. rechercher l’information sur tous les nœuds ;
  3. recevoir une réponse d’un nœud répondant aux critères de recherche.

Exemple d'arbitrage : garantir que toute recherche obtient un résultat peut impliquer que deux mêmes recherches n'obtiendront pas le même résultat.

Modèle
d'entreprise

Le réseau pair-à-pair est difficilement compatible avec un modèle d'entreprise privée. Ainsi la quasi totalité des applications de réseau sont de type centralisé (Facebook, Google, etc). En fait ce sont essentiellement des individus et des associations à but non lucratif qui sont intéressés par les applications décentralisées. Cependant en raison des difficultés techniques - semble-t-il encore sans solutions satisfaisantes dans l'état actuel des technologies - ces utilisateurs sont contraints d'opter soit pour des solutions centralisées (cf. Wikipédia), soit pour des solutions partiellement PàP. Dans les deux cas il y a donc un serveur ... dont il faut assumer les coûts évoqués plus haut.

Le cas des réseaux sociaux "libres". Ces contraintes techniques et financières expliquent pourquoi les tentatives de création d'un réseau social dit "libre" ont toutes échoué à ce jour (Diaspora, Loomio, Movim, ...). Le cas de Diaspora suggère que le financement participatif ne garantit pas la nécessaire récurrence du financement. D'autre part les utilisateurs préférant logiquement le réseau le plus populaire, celui-ci devient inévitablement un monopole. Le modèle d'entreprise du "réseau social" étant donc incompatible avec le principe de concurrence, il en résulte très probablement une qualité de service inférieure à celle d'une application équivalente qui serait gérée par une entreprise publique.

La plupart des applications en réseau sont donc centralisées : type "client-serveur", plutôt que "pair à pair". D'autre part leur politique de gestion du risque consiste à rendre l'arrière-guichet le plus opaque possible. Cela réduit certes le risque d'attaques externes, mais facilite l'éventuelle manipulation frauduleuse du système par des gestionnaires du serveur. Le système de votation.net est également centralisé, mais sa politique de gestion du risque vise à l'inverse de celle pratiquée par la plupart des organisations privées comme publiques : il s'agit de pousser au maximum la transparence du système, et sa gestion démocratique/partagée (P.S. Ce n'est pas encore le cas au stade actuel, qui consiste à construire les bases du système).

Prestataire de services eIDHaut

Le prestataire de services eID est actuellement un opérateur incontournable de tous systèmes de votation en réseau. Après avoir présenté les principes élémentaires de ce service nous étudierons plus en détail les relations entre le prestataire et ses clients, puis entre ces clients et leurs utilisateurs.

Principes
Haut

eID est l'acronyme de l'anglicisme "electronic IDentity". Un prestataire de service eID est une entreprise (publique ou privée) qui gère un serveur eID permettant à ses clients (ministères, entreprises privées, associations, ...) d'utiliser sur Internet les cartes d'identités électroniques ( carte eID ). Les clients du prestataire eID peuvent ainsi ajouter à leur site ouaib une page d'identification par carte eID.

Pour ce faire il suffit au titulaire de la carte eID d'utiliser un terminal (son portable, la caisse enregistreuse du pharmacien, ...) équipé d'un lecteur de carte eID et de la version "client" du logiciel eID (NB : il s'agit ici de "client" au sens de la relation technique "client-serveur", et non pas de la relation commerciale entre le prestataire et les organisations qui font appel à ses services --> cf. graphique ci-dessous).

Business model eID
Logiciel
eID

Le prestataire eID ne fait rien d'autre que de mettre à disposition de ses clients (les organisations du schéma ci-dessus) une version serveur du logiciel de lecture de la carte (logiciel eID). Le logiciel eID installé sur le terminal est donc à la fois un logiciel local de lecture de carte eID, et le logiciel client de la version réseau.

Le logiciel eID peut demander l'introduction du code PIN par l'utilisateur afin de vérifier qu'il est bien le titulaire de la carte (NB : donc l'usurpation d'identité n'est possible que si l'usurpateur détient à la fois la carte et le code PIN).

Code PIN. Le logiciel eID client permet également au titulaire de carte eID de changer son code PIN, lequel est enregistré sur la carte eID.

État vs prestataire
Haut

Quel est le statut juridique de ces prestataires de service eID, en particulier au niveau de la relation entre prestataires privés et l'État ? Quelles sont les procédures de contrôle pour garantir que les prestataires privés ne collectent pas et ne commercialisent pas les données des cartes eID à l'insu des titulaires ? Ont-ils accès au registre national , ... ? Nous sommes en train de rassembler des informations sur ces questions. Le résultat de nos recherches sera publié ici.

Prestataire vs client
Haut

La relation entre prestataires eID et leurs clients est plus claire : les premiers ne sont pas impliqués dans les systèmes ouaib de leurs clients, et donc pas responsables des éventuelles défaillances de ces systèmes.

votation.net n'est pas vraiment "client" de son prestataire eID (e-contract.be) : celui-ci donne accès gratuitement à certains de ses serveurs pour des activités de recherche, ce qui est notre cas.

Contenu de la carte eIDHaut

La carte eID belge contient :

Mais ce n'est pas tout ... Aux données administratives de sécurité sociale stockées sur la carte il faut ajouter les données médicales stockées dans les bases de données des organismes assureurs, et accessibles en ligne par des professionnels du secteur de la santé disposant de votre carte eID (exemple : les pharmaciens).

Ainsi, dès lors qu'une carte eID (ou votre ordinateur ...) est connectée à un réseau, la problématique de la localisation physique des données ("où se trouvent-elles") tend à s'évaporer et à être supplantée par celle de l'accès à ces données ("qui peut accéder à quelles données").

Accès
sélectif

Ainsi les données de votre carte eID qui nous sont transmises par notre prestataire eID (e-contract.be) sont les données lisibles avec n'importe quel lecteur de carte, à l'exception du numéro de registre national (et à l'exception aussi des quelques données administratives de sécurité sociale stockées sur la carte, que le logiciel eID ne permet pas de lire).

Identification des utilisateursHaut

Après avoir précisé les deux types d'identification en application ou à l'étude pour votation.net nous montrerons que la possibilité d'identification officielle des citoyens entre eux constitue une condition nécessaire de la démocratie directe.

Types d'identification
Haut

Actuellement seuls les détenteurs d'une carte d'identité électronique belge peuvent se connecter à notre système, pour voter et consulter les résultats des votations.

Un système d'identification complémentaire par certificat numérique permettrait d'étendre la population des utilisateurs potentiels à toute personne (francophone), quelle que soit sa nationalité.

La validité du certificat numérique (représente-t-il réellement Jean Dupont, et celui-ci existe-t-il réellement ?) serait certifiée par la signature numérique d'autres membres de la communauté (toile de confiance). Par conséquent ce système d'identification décentralisé n'est probablement crédible que pour des communautés locales (entendez : de petite taille, de sorte que tout le monde se connaît).

On compléterait donc le système actuel (de type centralisé) par un système décentralisé :

TypeCommunautéIdentificationValidation
centraliséglobale
(tout le monde
ne se connaît pas)
par
carte eID
par
un prestataire
de service eID
décentralisélocale
(tout le monde
se connaît)
par
certificat numérique
par
signatures numériques
par une toile de confiance
État vs toile
de confiance

En fait, dans le système centralisé la validation se fait également via certificats et signatures électroniques. Mais une différence importante est que dans celui-ci l'utilisateur ne doit rien faire pour cela (l'État se charge de tout), tandis que dans le système décentralisé l'utilisateur doit prendre l'initiative d'acquérir un certificat électronique, et inciter d'autres membres de la communauté à le signer électroniquement (toile de confiance).

Il semble que le prestataire de service eID n'a pas accès au registre national (à confirmer). Il ne fait que lire à distance (via Internet) le contenu d'une carte, dont la signature électronique de l'État garantissant la validité de la carte.

Limitation locale du
système décentralisé

Les deux systèmes donneront pour une même votation des résultats d'autant plus comparables que la population du système local constituera un échantillon représentatif de la population globale ...

Identification crédible
Haut

Il y a actuellement un grand manque dans les applications collaboratives sur Internet, c'est la possibilité de s'identifier officiellement. Ce manquement constitue un frein majeur à l'avènement de la démocratie directe.

Ainsi il importe que la rédaction collective de l'énoncé d'un référendum soit protégée des actes de vandalisme, volontaires ou non. Cette problématique dépasse bien sûr le seul cas des référendums. Par exemple un des grands points faibles de Wikipédia est la liberté pour quiconque de modifier anonymement un article, ce qui donne toute liberté d'action aux noyautages, au sabotages ou à des contributions non-judicieuses (NB : les pseudos "fiches d'identification" des censeurs de Wikipédia ne constituent en aucun cas une solution car aucune de ces fiches ne permet d'identifier réellement un censeur, de sorte qu'elles ne sont que des simulations d'identification). Une véritable identification a pour effet de responsabiliser les contributeurs soucieux de préserver leur réputation.

La même problématique se pose au niveau du stade suivant : la validation collective par votation. Ainsi la plupart des applications de vote/sondage/pétition actuellement disponibles sur Internet sont facilement manipulables par votes multiples car le procédé utilisé pour "identifier" le votant est généralement bancal :

Dans chacun de ces cas il n'est pas très compliqué d'écrire un petit programme qui, à partir d'un simple ordinateur portable, va automatiquement voter au nom d'une multitude de "personnes" n'existant pas. Ce type de programme est très difficilement repérable car il peut voter à différents moments définis automatiquement de façon aléatoire, et le faire à partir d'une série d'adresses IP changeant constamment.

Le numéro de carte eID , avec mention du code PIN , constitue actuellement le meilleur moyen d'identification à distance. Cela se fait par requête auprès d'un prestataire de services eID (en l'occurence nous utilisons e-contract.be).

L'identification par carte d'identité des utilisateurs permet notamment :

Exemple de systèmes de votation avec identification bancale

parliament.uk

Le 25 juin 2016 j'ai pu signer la pétition britannique pour un second référendum Brexit, malgré que je ne suis pas citoyen britannique. L'identification/confirmation se fait par adresse email, et il suffit de cocher une case pour déclarer que l'on est citoyen britannique ! Environ deux heures après mon vote le nombre de signatures avait augmenté de 300.000 (trois cent mille). Le plus grave c'est que le site de pétition en question est un site gouvernemental (!) : petition.parliament.uk/petitions/131215.

g1000.org

En 2011 l'organisation g1000.org (un sous-marin de fédérations patronales belges selon Bert Bultinck, chef du Standaard Week-End, cité dans Le Soir du 05/11/11) a organisé une forme de vote en ligne consistant à "signer" le manifeste de l'association. Pour "signer" il suffisait de mentionner un nom, un code postal et une adresse courriel. Pire, aucune demande de confirmation n'était envoyée à l'adresse courriel, de sorte qu'il suffisait d'inventer des adresses bidons pour voter autant de fois qu'on le souhaite ! Ainsi j'ai signé avec qztgpb@wqmlgt9ey5.com, et le vote a été enregistré.

Protection de la vie privéeHaut

Notre système de votation ne fonctionne actuellement que pour les titulaires d'une carte eID belge.

Nous ne conservons aucune donnée de la carte d"identité : pour prévenir les doubles votes nous conservons une empreinte numérique du numéro de votre carte d'identité, rien d'autre. En outre notre base de données relationnelle ne fait pas de liens entre cette empreinte et votre vote.

Autrement dit la seule information que nous détenons sur vous est : "le titulaire de la carte d'identité dont l'empreinte du numéro est ... a participé à telle votation". Notez en outre qu'il s'agit du titulaire, et non pas seulement du détenteur de la carte, dès lors que celui-ci doit mentionner le code PIN (pour se connecter la première fois à votation.net - et obtenir son code d'accès, qui lui permettra désormais de voter et consulter les résultats sans utiliser sa carte eID).

Achat de votes. Le système du code d'accès présente ici l'inconvénient de rendre possible l'achat massif de votes puisqu'il n'est plus fait usage de la carte d'identité. Ceci illustre le fait que la sécurité impose des contraintes et donc des arbitrage s. Il en résulte que la question sécuritaire peut être exploitée à des fins politiques, par exemple pour mettre des bâtons dans les roues du développement de systèmes de démocratie directe ...

Paranoïa ?

À supposer que le décryptage de l'empreinte soit possible (mais cela est « techniquement impossible en pratique » - source), quelle utilisation un pirate pourrait-il faire d'un numéro de carte d'identité sans détenir la carte ? Auriez-vous confiance en une application qui vous demanderait de vous inscrire en tant qu'utilisateur en vous identifiant par votre seul numéro de carte sans que vous deviez pour ce faire détenir physiquement la carte correspondant au numéro ?

Une autre "risque" ‐ souvent évoqué par la classe politique ... ‐ est l'idée selon laquelle un pirate qui se procurerait l'empreinte d'un individu pourrait faire le lien avec ses données provenant d'autres bases de données. Or une empreinte numérique peut être calculée de telle sorte qu'elle soit spécifique à la base de données dans laquelle elle est stocké (technique dite du " salage ", appliquée par votation.net). En outre même si cette technique n'était pas appliquée (ce qui serait absurde étant donné qu'elle est gratuite et facile à implémenter), encore faudrait-il que le pirate puisse pénétrer les autres bases de données. À supposer qu'il y arrive, la connaissance de l'empreinte ne lui serait plus d'aucune utilité puisqu'il aurait accès à l'ensemble des données source.

Nos recommandations

La législation en matière de protection de la vie privée devrait, non pas interdire le stockage des empreintes du numéro de carte eID, mais définir un label public de sécurité consistant en une batterie de critères :

Business model eID

Intégrité des donnéesHaut

Comprendre la problématique d'intégrité des données est indispensable pour concevoir les bonnes politiques de développement. Le contrôle des terminaux comme des serveurs relève aussi bien de considérations technologiques que politiques.

Principes
Haut

L'intégrité de données doit être garantie au niveau du traitement (calculs, classements, transferts, ...) comme du stockage.

Par exemple lorsque vous votez sur votation.net il importe que vous puissiez pouvoir vérifier - ou du moins avoir une garantie crédible :

  1. que le formulaire de vote affiché dans votre navigateur n'est pas manipulé par un logiciel pirate téléchargé à votre insu ;
    • Solution possible : utiliser un terminal utilisable uniquement pour la votation (NB : il est hautement probable que dans un futur proche ceux-ci puissent être fabriqués/distribués par imprimante 3D ...).
  2. que votre vote n'est pas lu/modifié pendant sont transfert vers notre serveur (NB : les données transmises passent par votre fournisseur d'accès Internet, le nôtre, ainsi que par une série d'autres routeurs) ;
  3. que votre vote n'est pas modifié après son stockage sur le serveur de votation.net.
    • Solution possible : répliquer la base de données centrale sur les terminaux du réseau de votation, de sorte que l'intégrité des données peut-être vérifiée par comparaisons (cette voie fait probablement l'objet de R&D ).
Terminaux sécurisés
Haut

Vous pouvez vérifier par vous-même la solution apportée par votation.net à la première des trois problématiques que nous venons d'identifier. Pour ce faire ajoutez à votre navigateur le module Firebug. Ensuite rendez-vous à la page "Votation" de votation.net. Choisissez une votation (par exemple "Pensez-vous que dieu existe ?"). Une fois arrivé au formulaire de vote vous pourrez alors simuler une modification frauduleuse que pourrait faire à votre insu un logiciel pirate qui aurait été téléchargé sur votre ordinateur.

Cliquez droit sur le formulaire puis choisissez l'option "Inspecter l'élément" --> dans la fenêtre Firebug qui apparaît alors en bas d'écran cliquez sur l'option "Éditer" de l'onglet HTML --> apparaît alors dans la fenêtre Firebug le code de la page affichée par votre navigateur --> cherchez la phrase "Pensez-vous que dieu existe ?" et remplacez-la par "Pensez-vous que dieu n'existe pas ?" (Cas d'un logiciel pirate qui vous ferait croire que vous votez pour une question exprimée par la négative alors qu'en réalité elle est exprimée par la positive) --> observez l'énoncé affiché : il est (frauduleusement) modifié ! --> votez comme si vous ne vous rendiez compte de rien, et observez le résultat : un message vous avertit que l'opération est bloquée.

Si vous avez des notions d'HTML essayez aussi de modifier le formulaire de sorte que le vote envoyé soit le contraire du vote affichésur le bouton choisi : c'est possible, mais là encore l'opération sera bloquée.

Pouvons-nous en déduire qu'il est impossible pour un pirate de manipuler votre vote sur votre terminal ? Si la réponse à cette question est négative alors il faut utiliser des terminaux dédiés à la votation ...

Cryptographie quantique
Haut

Dans le cas des votations électroniques les actes de piratage informatique ne posent sans doute véritablement problème que s'ils modifient le résultat final de la votation (en petits nombres on peut même considérer - pour autant qu'ils soient repérés et analysés - qu'ils participent à identifier les failles du système de votation).

Il importe donc de repérer toutes les tentatives de piratage. Or il semble que la cryptographie quantique pourrait apporter une solution à chacune des trois problématique évoquées plus haut.

Les futurs ordinateurs quantiques seront certes théoriquement en mesure de décrypter toutes les clés de chiffrements : même augmenter la taille de la clef ne suffira plus, l'information sera vulnérable dans tous les cas. Cependant des ordinateurs classiques suffisent pour mettre en oeuvre la cryptographie quantique en codant la clef de sécurité dans des photons (particules de lumière) ou des impulsions lumineuses, qui ne sont rien d'autre que des "objets" quantiques. Par leur nature même, le simple fait de vouloir les mesurer pour tenter de lire les informations qu'ils transportent suffit à les perturber et à donner l'alerte. Même si le pirate utilise un ordinateur quantique cela n'y change rien.

Conclusion : avec la technologie quantique on ne pourrait donc plus rien cacher, pas même le fait que l'on a tenté de lire ou modifier ce qui était "caché" ...

Voir aussi : vidéo de vulgarisation à la cryptographie.

Chaîne de blocs
Haut

La technologie des chaîne de blocs permettrait de décentraliser le traitement et le stockage des données, de sorte que chaque citoyen pourrait vérifier le bon traitement de son vote.

Fiabilité du matérielHaut

Les composants et mode de fonctionnement du matériel utilisé (logiciels compris) devraient être (i) ouverts et (ii) systématiquement vérifiés et améliorés. Si cela n'est pas possible dans le cadre d'une entreprise privée (la maximisation du profit impliquant souvent le secret de fabrication) il faudrait alors constituer des entreprises publiques pour fabriquer le matériel requis.

Cependant la technologie d' impression 3D va très probablement bouleverser - en la simplifiant - la question très marxiste du contrôle des moyens de production.