Vendredi, c'est trolldi.

En discutant avec Martin à propos des contraintes techniques immuables à pump.io, ce dernier m'a dirigé vers le rapport d'erreur #786 qu'il avait rédigé. Le pitch : les certificats CACert entraînent des erreurs dans le déploiement de pump.io. En fait, n'importe quel certificat n'ayant pas été certifié par une autorité centrale rend son déploiement désastreux. Ce n'est pas un bug, mais une fonctionnalité.

Retour sur le suicide de pump.io et la marginalisation de ses utilisateurs.

Bug VS Feature

CACert’s root certificate is included in distributions worthy of being one. I don’t see where StartSSL is more reliable than CACert. Do you even remember DigiNotar? Staying with such centralized conceptions of certificates issuers is irrelevant when you’re trying to build a decentralized or federated network. Moreover, such decisions will repel enthousiast adopters. If one user cannot afford an arbitrary trusted certificate, or has to use a load-balancer because he has multiple services on a single machine, he can go fuck himself. It’s like you don’t want anybody, and certainly not "poor" individuals, to use your program.

Au delà de l'énervement premier, je tiens à expliciter ce que cible ma critique : non pas la mise à l'écart de CAcert (je ne me fais pas prosélyte pour le coup, et je peux comprendre qu'il ne remplisse pas les spécificité requises de l'un ou l'autre même si je peux ne pas non plus être d'accord), mais les réquisits techniques utilisés comme moyens de ségrégation et de marginalisation de la communauté d'un logiciel libre.

Résumons en français les contraintes inhérentes à pump.io.

Le programme monopolise la moitié du trafic web (de front sur le port 443, voir les déboires d'installation). Donc si tu n’as qu’un petit hébergement sur lequel tu as aussi d’autres services Web (au hasard un blog ou un agrégateur de flux RSS), sacrifie ton port 443. Mais tu pourrais avoir besoin d'une interface chiffrée pour quelque autre programme, ou tout simplement ne pas avoir envie d'utiliser uniquement pump.io sur HTTPS. Qu'à cela ne tienne, il faudra que tu aies des URLs moches ou que tu t'essaies à la virtualisation. Bref, va te faire voir, petit utilisateur qui voudrait déployer pump.io à titre de service Web standard sur ton petit serveur.

Si tu trouves que quelque chose est mal pensé, mal conçu, ou mérite d'être revu, tu n’as qu‘à faire les modifications toi-même. Admettons, le projet se veut libre, donc son code est ouvert et implique une liberté de modification. Malheur à toi cependant si tu ne sais pas coder. Il y a ici une confusion entre un développeur et un utilisateur, confusion entre liberté de modifier et devoir de le faire. En somme, un pur élitisme de développeur. Et cela ne concerne pas ces développeurs aussi compétents soient-ils qui maîtrisent pas node.js.

Revenons au bug cité plus haut : si tu es trop pauvre pour te payer un certificat tout joli et bien validé, ou si tu es trop libriste pour consentir à te soumettre à une autorité de certification centralisée (comme StartSSL qui est conseillé), te voilà logé à la même adresse que ce peuple d'utilisateurs indigents. Nous mêlons ici deux formes d'autoritarisme : celui du développement, et celui des autorités de certification qui est le moyen technique pour marginaliser les amateurs.

Le souci est certes technique, et à titre d'usager je n'ai qu'une critique à apporter. Je vois une contradiction entre un réseau décentralisé et le recours à une autorité de certification par définition centrale (DANE n'était pas intégré par NSS ou OpenSSL). D’ailleurs, elle n’apporte pas nécessairement plus de sécurité, cf. et l’aspect critique d’une autorité de certification pouvant émettre des certificats frauduleux malgré tout. Ta garantie ? Ton portefeuille.

Applause

En corollaire, les problèmes liés soit à la certification soit à l’adressage ne sont pas des défauts du développement, mais le symptôme d’utilisateurs qui ne se soumettent pas aux contraintes du programme, ces mêmes utilisateurs étant tenus par des contraintes matérielles ou pécuniaires qui, j'en fais partie, les détourneront de pump.io. J'applaudis, je n’ai jamais vu de communauté se faire assassiner plus prestement, ni de projet open-source aussi peu libre.

Je peux expliquer le logiciel libre en 3 mots :  liberté, égalité, fraternité. [...] Liberté parce que ce sont les logiciels qui respectent la liberté de leurs utilisateurs, égalité parce que [...] personne n'a de pouvoir sur personne et fraternité parce que nous encourageons la coopération entre les utilisateurs.

rms, Logiciels libres et Éducation.

Un projet libre sans communauté est un projet mort.
Un projet libre où la coopération est synonyme d'autoritarisme est un projet mort.
Un projet libre où il n'y a aucune égalité entre le développeur et l'usager est un projet mort.
Un projet libre sans communauté, sans coopération, sans égalité, n'est pas un projet libre.

Assistons au suicide de pump.io. Qui restera-t-il autour pour veiller sur son lit de mort ? Quelques éclairés qui ont trouvé le moyen de s'adapter ou se rangeront à ce qui a été décidé pour eux ? Des clients potentiels, ceux qui peuvent payer ?