Unhosted : libre et salutaire tentative de séparer applications et données sur le Web

Il est désormais possible de se passer de la suite bureautique Microsoft Office et du système d’exploitation Windows en utilisant de fiables alternatives libres (GNU/Linux et Libreoffice pour ne pas les nommer).

Mais quid du réseau social Facebook et des services Google par exemple ? Est-il possible de proposer des alternatives libres à ces applications dans les nuages du web qui demandent une énorme bande passante et nécessitent des batteries de serveurs, avec tous les coûts faramineux qui vont avec (et que ne pourra jamais se permettre le moindre projet libre qui commence avec cinq gus dans un garage) ?

L’enjeu est de taille car c’est de nos données qu’il s’agit et dont on fait commerce.

Une piste de solution, qui sur le papier semble tout autant lumineuse que triviale, serait de pouvoir séparer l’application web des données que cette application traite. L’application serait quelque part sur un serveur et les données ailleurs sur un autre serveur (chez vous par exemple).

Imaginez un Facebook où toutes les données de ses utilisateurs ne seraient plus sur le site et les serveurs de Facebook ! Facebook serait bien bien plus léger du coup à administrer (moins rentable aussi c’est sûr).

Finis la centralisation et le contrôle sur vos données qui retrouvent du même coup une liberté qu’elles n’auraient jamais dû perdre. Et le web (re)devient un meilleur web.

C’est l’objectif pour le moins ambitieux mais ô combien urgent et utile du projet Unhosted conduit par Michiel de Jong dont nous vous proposons une instructive et enthousiasmante interview ci-dessous.

On notera au passage que le projet collabore avec Libreoffice. À quand un « Google Docs Killer » basé sur unhosted ?

On remarquera également que le projet n’hésite pas à accorder de suite une forte importance au confort de l’utilisateur. Extrait : « Nous avons besoin que les utilisateurs finaux sautent le pas, or les utilisateurs finaux ne comprennent souvent pas bien les principes du logiciel libre, mais si on fait des applications vraiment agréables, ils viendront pour les applications, et resteront pour la liberté. »

Bonne lecture. La problématique exposée ici constitue certainement l’un de nos prochains combats. En fait la bataille a déjà commencé. Elle s’annonce rude mais on déplacé tant de montagnes par le passé qu’il n’y a aucune raison de perdre confiance et de laisser le champ… libre aux seuls monopoles commerciaux à la taille démesurée.

Mais avant cela rien de tel que cette courte vidéo introductive pour se mettre dans le bain et comprendre plus encore de quoi il est question :

—> La vidéo au format webm
—> Le fichier de sous-titres

Entretien de Michiel de Jong avec la communauté

Fellowship interview with Michiel de Jong

Chris Woolfrey – 23 avril 2011 – Followship of FSFE
(Traduction Framalang : Pandark, Pyc et Slystone)

Michiel de Jong a travaillé comme programmeur, chercheur et administrateur système à Amsterdam, Oxford, Londres et récemment à Madrid en tant qu’ingénieur en scalabilité (ou adaptabilité) pour le réseau social espagnol Tuenti. L’hiver dernier il a pris deux mois de vacances (de hacker) à Bali pour monter le projet Unhosted. Il vit maintenant à Berlin avec Kenny Bentley et Javier Diaz, où ils prévoient de travailler à plein temps sur le projet si les donations le permettent.

Chris Woolfrey : Pouvez-vous expliquer ce qu’est le projet Unhosted avec vos propres mots ?

Michiel de Jong : Il y a plusieurs manières de le présenter ; mon approche préférée est l’angle du logiciel libre. Le terme de logiciel libre signifiait auparavant que l’on avait un pouvoir de contrôle (utilisation, partage, étude et amélioration) sur le code source et le logiciel exécuté par l’application, c’est la définition utilisée par la FSFE.

À l’époque, c’était suffisant. On considérait comme acquis le contrôle des données traitées par l’application ; c’est évident, elles sont sur votre ordinateur ou votre serveur, sur lequel vous avez un accès complet aux données utilisées par vos applications.

Concernant les logiciels installés, que ce soit sur un ordinateur de bureau ou sur un serveur, cette vision était juste : si vous contrôlez le code source, vous possédez la liberté logicielle. Mais ensuite, lentement, les logiciels installés ont été remplacés chez l’utilisateur par des logiciels hébergés (comme Google Docs, Facebook et Twitter). Ces sites web hébergés ne sont alors plus une source d’information comme les classiques sites web d’avant ; ce sont des applications interactives, et la liberté logicielle n’existe pas dans ce contexte.

Il est absurde que les logiciels hébergés vous fassent céder vos données à l’auteur de l’application en question, mais c’est ainsi que cela se passe. Cela s’est installé progressivement et insidieusement, car les sites web d’information sont devenus peu à peu des sites dynamiques, et ces sites dynamiques ont commencé à accepter les contributions d’utilisateurs et sont peu à peu devenu des applications interactives. Désormais, les logiciels hébergés sont largement utilisés, souvent en lieu et place d’anciennes applications installées localement sur les ordinateurs.

Dans la transition des applications locales aux application hébergées, la liberté logicielle a été oubliée. Personne ne parle plus désormais de logiciels installés localement, on parle de logiciels hébergés, et pourtant certains disent « Mon ordinateur ne contient que des logiciels libres ; seul le microprogramme de la carte graphique est propriétaire », et c’est une erreur car une bonne partie des « logiciels » qu’ils utilisent ne sont pas installés localement sur leur ordinateur mais utilisés au travers d’un navigateur internet.

Le projet Unhosted a pour but d’inventer et promouvoir un moyen de résoudre ces problèmes. La liberté logicielle doit, de nos jours, être non seulement la liberté du code mais aussi celle des données.

CW : Comment Unhosted permet-il ceci ?

MdJ : Nous séparons le code d’une application de ses données.

Quand vous vous connectez à une application web Unhosted, l’URI affichée dans la barre d’adresse indique l’emplacement du code de l’application, mais le nom de domaine suivant l’arobase de votre identifiant indique l’emplacement de vos données ; ce qui libère vos données de l’emprise du serveur de l’application, tout en libérant ledit serveur de la charge de l’hébergement de vos données.

Ceci implique que l’hébergement d’applications libres redevient possible sur le web. Après tout, il existe un évident substitut libre à Microsoft Windows : GNU/Linux, comme il existe un évident substitut libre à Microsoft Office : Libre Office.

Mais quel logiciel libre pour remplacer aussi évidemment Google Docs ? Pourquoi ne pas se connecter à « www.libredocs.org », par exemple, et utiliser là des applications web libres, comme pour un logiciel installé localement ?

La réponse simple est le coût inhérent au fonctionnement d’une application distante, trop élevé pour permettre la fourniture de ces services gratuitement. Pour coder du logiciel libre, il suffit que des développeurs y consacrent du temps et du savoir-faire. Mais il est impossible de proposer des logiciels libres en ligne sans coût financier, parce que cette activité nécessite l’utilisation de serveurs, et qu’il faut rétribuer les hébergeurs.

En séparant le code des données, laissant leur traitement au navigateur, notre solution règle ce problème : il devient très économique d’héberger des applications web libres parce que vous n’avez à héberger que l’application elle-même, son code, pas les données qu’elle doit traiter.

C’est le côté « libérez les applications du poids des données » de notre projet. Puis arrive l’autre coté : le logiciel c’est du code et des données, le logiciel libre c’est du code libre et des données libres.

Avec Unhosted, la liberté des données est assurée par le choix, lors de l’inscription à une application, du domaine devant héberger vos données pour vous. Vous pouvez ouvrir un compte chez un fournisseur de services (ils sont en train d’être mis mettre en place) ou demander à l’administrateur réseau de votre université ou de votre entreprise d’héberger un nœud pour celle-ci ; de cette façon, tout bénéficiaire d’une adresse « @quelquepart » aura la possibilité d’obtenir un compte Unhosted avec le même nom d’utilisateur.

CW : Y a-t-il des bénéfices en termes de vie privée à utiliser Unhosted en comparaison avec une application web qui conserve à la fois le code et les données à distance ?

MdJ : En utilisant une application Unhosted, toutes vos données sont chiffrées par le navigateur avant d’être transmises au serveur hébergeant votre compte Unhosted. De cette façon, les données confiées à votre compte Unhosted peuvent se trouver sur n’importe quel serveur, parce que, bien que vous vous reposiez sur ce serveur pour permettre un accès à vos données, ces données sont stockées et chiffrées, ainsi vous n’avez pas à craindre que l’hébergeur du compte lise vos messages, par exemple. Les données stockées par une application Unhosted sont chiffrées par votre navigateur avant d’être transmises et enregistrées sur votre compte, et elles seront déchiffrées au moment de leur sollicitation par le navigateur, au moment de leur utilisation. Le serveur hébergeant vos données Unhosted est aveugle ; il transmet vos données vers et depuis des sites web Unhosted sans pouvoir lire leur contenu.

Utiliser JavaScript pour la cryptographie n’a habituellement aucun intérêt, parce que si un site web contient des scripts JavaScripts pour chiffrer des données, alors ces mêmes scripts peuvent être utilisés pour espionner ces données chiffrées.

Avec Unhosted il en va autrement car nous séparons le domaine qui fournit l’application de celui qui héberge les données. L’hébergeur du compte Unhosted (celui des données) ne pourra pas accéder aux scripts de cryptographie de l’application, donc l’application Unhosted peut chiffrer des données que le serveur du compte Unhosted ne poura pas déchiffrer.

CW : Quel genre d’applications convient d’après vous le mieux à l’utilisation d’Unhosted ? Quel types d’applications Web vous attendez-vous à voir adopter Unhosted en premier ?

MdJ : Toutes les applications qui n’enregistrent pas un grand nombre de données utilisateur peuvent être facilement adaptées à Unhosted.

Ce sont toutefois les applications comme Google Docs, nécessitant le stockage de beaucoup de données utilisateur importantes, qui bénéficieraient le plus du passage à Unhosted. Celà pourrait aussi bénéficier grandement au parallélisme (informatique). Cependant, pour d’autres services, comme les moteurs de recherche, il faudra trouver de bons algorithmes pour permettre un fonctionnement plus décentralisé. En général, toute application web qui nécessite le stockage d’un grand nombre de données personnelles peut tirer profit d’Unhosted.

CW : Il y a une effervescence actuellement autour de projets libres décentralisé pour proposer des alternatives au réseau social Facebook (Diaspora, Appleseed…) ou au moteur de recherche Google (YaCy, Seeks…). Quel impact et comment pourrait s’adapter votre travail à des projets comme Diaspora, Appleseed et, Seeks ou YaCy ?

MdJ : Unhosted a été d’une certaine façon créé sur la mailing list des développeurs de Diaspora. Nous discutions du basculement de Diaspora de PGP vers SSL, et de la façon dont un chiffrement « de bout en bout » serait plus adapté. Alors j’ai commencé à développer un système de chiffrement de données en Ajax. Il était destinée à intégrer Diaspora. Plus tard, j’ai réalisé qu’il pourrait avoir bien d’autres applications.

Il nous reste encore à écrire une application « sociale » Unhosted qui pourrait fédérer Diaspora et Appleseed. YaCy étant un moteur de recherche, il nécessitera un travail travail d’ingénierie plus conséquent avant de l’intégrer dans l’architecture des applications web d’Unhosted.

Outre ceux que vous avez évoqués, nous avons aussi été approchés par LibreOffice pour discuter de la façon de faire fonctionner ensemble Unhosted et LibreOffice. Ce fut un grand honneur. Nous mettons actuellement en œuvre un cloud-sync Unhosted pour LibreOffice. Il ne déplace pas exactement LibreOffice sur le web, c’est à dire que toute l’application n’est pas dans votre navigateur, mais il fait de LibreOffice un « navigateur de documents », similaire à un « navigateur web », et il sera compatible avec les standards web que nous avons rendu publiques il y a trois semaines.

Pour le reste, nous ne faisons que commencer. Nous avons mis en ligne une application de démonstration qui montre le principe : http://myfavouritesandwich.org. Les gens peuvent copier cette démo et s’en servir comme un « Hello World! », de base pour l’utilisation d’Unhosted.

CW : En voilà un super nom de domaine !

MdJ : Au départ c’était myfavouritecar.org mais Javier estimait que myfavouritesandwich.org était plus marrant.

CW : L’apparence du projet est-elle importante pour vous ?

MdJ : 33 % de notre équipe à plein temps est un graphiste. C’est une autre caractéristique relativement unique de ce projet ; je ne pense pas que beaucoup de projets de logiciels libres atteignent ce pourcentage. Nous avons besoin que les utilisateurs finaux sautent le pas, or les utilisateurs finaux ne comprennent souvent pas bien les principes du logiciel libre, mais si on fait des applications vraiment agréables, ils viendront pour les applications, et resteront pour la liberté.

Il n’y a pas de barrière d’entrée pour l’utilisateur : c’est une caractéristique importante pour nous. L’utilisateur n’a pas besoin de savoir si une application est complètement hébergée ou Unhosted. Si l’utilisation d’Unhosted devient transparente, alors nous aurons fait un bon travail.

Il nous faut convaincre les développeurs web de créer des applications Unhosted, et leurs clients n’ont même pas besoin de savoir précisément ce que c’est. Si un client demande à un développeur une nouvelle application, le développeur doit pouvoir juste répondre « OK, on va utiliser la dernière technologie pour développer cette application pour vous », et créer alors une application Unhosted. Le client n’a pas besoin qu’on lui signale l’utilisation d’une architecture Unhosted, seul le développeur doit le savoir.

Nous voulons créer quelques applications de démonstration qui soient vraiment agréables à utiliser, de façon à pouvoir éviter les stigmates qu’associent souvent les non-convertis aux logiciels libres (par exemple un logiciel libre peut bien fonctionner mais il est souvent moche). Je pense qu’il est important que les logiciels libres soient beaux et agréables à utiliser. Beaucoup de projets font du très bon travail aujourd’hui, et nous voulons être l’un d’eux. Voilà pourquoi 33 % de notre équipe à plein temps est consacrée au graphisme.

CW : Il semble que vous essayez d’attirer des gens en dehors de l’écosystème existant des logiciels libres. Pensez-vous qu’il y ait des avantages évidents à utiliser Unhosted pour des entreprises et associations non concernées par les logiciels libres ?

MdJ : Oui, certainement. Tout d’abord, une entreprise qui utilise des logiciels comme moyen de production peut vouloir utiliser un chiffrement de bout en bout, de façon à ce que les secrets de l’entreprise ne quittent pas son réseau privé virtuel, mais qu’elle puisse tout de même utiliser le stockage sur les serveurs d’Amazon, par exemple. Ainsi, ils peuvent bénéficier d’applications web Unhosted avec des comptes Unhosted qui stockent des données chiffrées sur des serveurs Amazon, et le tout fonctionnera dans les navigateurs web de leur personnel, sans avoir à installer de logiciels chez eux.

De plus, l’évolutivité et la robustesse d’une architecture distribuée peuvent être un choix stratégique pour une entreprise : si vous désirez proposer une application propriétaire, mais ne voulez pas que vos serveurs soient le maillon faible du système, alors Unhosted apportera à vos applications moins d’indisponibilité, ou au moins les incidents ne toucheront pas tous les utilisateurs et votre application ne sera pas entièrement indisponible à cause de problèmes localisés. Enfin, le coût d’hébergement d’une application Unhosted est bien moins élevé que celui d’une application traditionnelle.

C’est un grand avantage pour les projets libres qui, à l’heure actuelle, ne peuvent simplement pas s’offrir l’hébergement d’applications web, mais pour les applications propriétaires c’est aussi une opportunité intéressante, parce que cela permet de réduire les coûts. Il y a donc là une activité commerciale possible comme fournisseur de comptes Unhosted. Selon le nombre d’applications intéressantes que nous pouvons susciter et promouvoir, des entreprises de ce type écloront, et alors les utilisateurs pourraient avoir un unique identifiant pour l’ensemble des applications Unhosted qu’ils utiliseront.

Les possibilités d’interopérabilité entre les applications sont elles aussi enthousiasmantes — la séparation des applications et des données permettra aussi (quand une complète compatibilité des formats le permettra) de basculer sur un autre site et constater, par exemple, que tous vos albums de photos sont bien là, pour revenir au site précédent pour voir que vos modifications ont été prises en compte instantanément, sans avoir à faire d’import ou d’export, parce que les données sont les mêmes.

Ce sera une expérience incroyable pour les utilisateurs finaux quand nous arriverons à faire fonctionner tout cela ! Certaines personnes ne se soucient pas d’évolutivité, de pérennité, de robustesse, de chiffrement, de vie privée, des applications dans le domaine public ou de logiciels libres, etc., ils ne se soucient que des possibilités d’interopérabilité des données. Ce type d’interopérabilité pourrait être le meilleur atout du projet Unhosted.

CW : Pourquoi a-t-il fallu attendre jusqu’à maintenant pour qu’un projet comme Unhosted voit le jour ?

MdJ : Je pense que tout cela est très récent. Il y a un an, on ne se rendait pas forcément compte qu’il y avait un problème avec nos données. Oui, il y a eu l’article de Richard Stallman au sujet de SaaS, puis les excellentes présentations de Eben Moglen, mais pendant ce temps-là, Facebook est devenu de plus en plus dominant. Sans oublier des projets tout neuf comme le Chrome Web Store et Chrome OS.

Il y a deux ans, ça n’était pas aussi évident. Enfin, je sais que je n’aurais pas pu envisager tout cela il y a deux ans, mais je pense que c’est le bon moment maintenant. Un grand nombre de ces idées ne sont pas les miennes. Certains principes importants viennent de Tim Berners-Lee et Zooko, je les ai juste rassemblées et ai rédigé un « manifeste » sur le sujet, ce qui encore une fois, est essentiellement copié d’Eben Moglen et Richard Stallman.

CW : Comment prévoyez-vous de travailler à plein temps sur Unhosted ?

MdJ : Nous ambitionnons de récolter pendant les prochains mois 36000 €. Nous avions le choix entre créer une entreprise ou développer entièrement le projet dans le cadre d’une association à but non lucratif.

Nous avons choisi la voie non marchande car nous pensons qu’il est important de le faire de cette façon. Nous sommes trois ingénieurs à plein temps, et nous avons l’intention de trouver un hackerspace à Berlin pour nous accueillir tous les trois, plus deux bureaux libres pour les hackers en visite. Nos locaux seront ouverts aux vacanciers qui voudraient passer une semaine à Berlin, trainer dans nos locaux et contribuer à libérer le web. Les loyers sont très bon marché à Berlin, toutefois chacun de nous a besoin d’environ 1000 € par mois pour vivre.

Nous sommes très impliqués dans ce projet. Prochainement, nous publierons des outils et des applications de démonstration afin de faire avancer le web Unhosted, et nous nous occuperons des détails à mesure que nous progresserons. Unhosted est un projet communautaire, entièrement ouvert, mais je pense qu’il est bon d’avoir une structure « fondation plus communauté », avec une petite équipe entièrement dédiée au projet, pour constamment lui donner une impulsion.

Nous encourageons les personnes intéressées à s’inscrire à notre liste de discussion, nous suivre sur Identi.ca et Twitter, et à rejoindre notre canal IRC. D’autre part, nous encourageons les développeurs à forker nos applications de démonstration pour développer leurs propres applications Unhosted.

Le web Unhosted commence aujourd’hui…