Framalang: Freedom and privacy in the cloud: a call for action

De Framalang Wiki.

Version du 28 mai 2009 à 20:43 par Yostral (Discuter | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Sommaire


Bougez-vous pour votre liberté ! Article original sur clipperz.

Texte mis en forme - code Wiki

Liberté et protection de la vie privée en ligne : agissez !


Ce message traite de la liberté. La liberté de posséder vos données et la liberté d'utiliser des logiciels libres. Vous devriez aussi pouvoir exiger ces libertés et en jouir quand vous utilisez des applications Web. Si vous soutenez le mouvement du logiciel libre, vous pouvez facilement opter pour Gimp au lieu de Photoshop, pour Firefox au lieu d'Internet Explorer. Vous pouvez également protéger le caractère privé de vos données en utilisant les outils de cryptage disponibles (GPG, TrueCrypt, ...). Mais dès qu'il s'agit d'applications Web, tout se complique.

Les avantages des applications Web – ou Web apps – (accessibles partout et tout le temps, mises à jour transparentes, stockage fiable, ...) sont nombreux, mais bien souvent les utilisateurs perdent la liberté d'étudier, de modifier et de discuter du code source qui fait tourner ces Web apps.

De plus, nous sommes contraints de confier nos données aux fournisseurs de ces Web apps (marque-pages, documents rédigés, copies des discussions, informations financières et désormais... dossiers médicaux) qui ne résident alors plus sur nos disques durs mais qui sont rangés quelque part "dans les nuages". Ce n'est pas vraiment une situation confortable de devoir choisir entre aspect pratique et liberté. Que l'on soit clair : les web apps sont formidables et je les adore. Mais je pense que le moment est venu de réclamer plus de liberté et de confidentialité. Voilà comment nous pouvons obtenir ces deux résultats en trois étapes.


1. Choisissez l'AGPL

Quelle est l'importance de l'AGPL ? Si vous êtes un fournisseur de services et que vos services s'appuient sur des logiciels placés sous licence AGPL, vous devez rendre le code source disponible à toute personne utilisant ce service. La FSF suggère dans ses directives de placer un lien "Source" qui renvoie à une archive contenant le code source directement dans l'interface de l'application Web. (Ne me demandez pas pourquoi la communauté des logiciels libres a mis tant de temps à réagir !)


Mesures :

  • Aider Clipperz à mettre au point une "suite AGPL" : un ensemble d'applications Web répondant aux besoins les plus courants.
  • Cette suite devrait comprendre : un traitement de texte, un logiciel de discussion, un gestionnaire de mots de passe, un carnet d'adresses, un pense-bête, un calendrier, un gestionnaire de marque-pages ... Et chaque Web app devra être soumise à la licence AGPL ! Vous pourrez alors oublier Google, del.icio.us, Plaxo, Meebo ... à moins qu'ils ne se mettent à l'AGPL aussi.
  • Nous avons déjà deux candidats pour certains postes (Ajax Chat pour les discussions en ligne et, bien sûr, Clipperz pour le gestionnaire de mots de passe), mais la plupart des places sont encore à pourvoir !

Aider Clipperz à diffuser les bienfaits de l'AGPL auprès des développeurs de projets Web open-source. Demandez-leur de se convertir à l'AGPL.


2. Ajoutez-y une pointe de "divulgation nulle de données"

Les développeurs Web, comme les utilisateurs, connaissent encore assez peu les possibilités offertes par le chiffrage via un navigateur pour rendre les applications Web aussi sécurisées et confidentielles que les logiciels classiques. Chez Clipperz, nous voulons apporter une nouvelle vision que nous appelons "les Web apps à divulgation nulle de données" (description plus détaillée ici) qui associe l'idée d'un hébergement auquel même l'hébergeur n'a pas accès et un ensemble de règles basées sur le credo "confidentialité absolue". Ce nom est aussi bien un hommage au chiffrage (une "garantie de divulgation nulle de données" est un protocole de chiffrage standard) que la promesse d'une relation particulière entre l'utilisateur et le fournisseur d'applications. Le serveur hébergeant la Web app peut ne rien savoir sur ses utilisateurs, pas même leurs identifiants ! Clipperz applique cette vision pour mettre en œuvre son gestionnaire de mots de passe en ligne.

Mesures :

  • Appliquer les techniques "divulgation nulle de données" à chaque composant de la "suite AGPL". Convertir une application Web à l'architecture "divulgation nulle" n'est pas simple, mais chez Clipperz nous avons développé un savoir-faire important et nous serons heureux de partager aussi bien ces connaissances que le code de base.
  • Nous pourrons ainsi finalement jouir d'un traitement de texte en ligne qui ne pourra pas lire nos documents, d'un logiciel de discussion qui n'enregistrera pas nos conversations, d'un wiki sur lequel on pourra conserver sans crainte des données importantes, etc.

Établir et maintenir à jour une liste des Fournisseurs de Service d'Application [NdT : ASP pour Application Service Provider en anglais] qui hébergent la suite complète sous AGPL. Cette référence sera utile à tous ceux qui attachent de l'importance aux logiciels libres et à la confidentialité mais ne possèdent pas les compétences et les ressources pour faire tourner des Web apps sur leur propre serveur.


3. Créer un navigateur plus intelligent

On y est presque, mais il nous reste encore à fournir aux utilisateurs de Web apps un environnement encore plus flexible et sécurisé. Dans la pratique, du fait de l'architecture des Web apps à "divulgation nulle de données", le serveur réalise de façon générale les tâches suivantes :

  • charger le code Javascript dans le navigateur de l'utilisateur (charger le programme) ;
  • authentifier l'utilisateur (optionnel et par un protocole à "divulgation nulle de données");
  • rapatrier et stocker les données chiffrées demandées par le navigateur de l'utilisateur.

Logiciel libre est synonyme de contrôle total de ce qui se passe sur mon ordinateur. Se posent alors deux questions :

  • Comment faire tourner une version modifiée du code Javascript à la place de celui chargé par le serveur ?
  • Comment être alerté des modifications apportées au code Javascript que le serveur envoie à mon navigateur ?

J'ai récemment eu l'immense honneur d'échanger mes idées avec Richard Stallman lui-même au sujet de ces problèmes, et il a suggéré une solution futée pour les résoudre tous les deux.

Stallman propose d'ajouter une fonctionnalité au navigateur qui permette à l'utilisateur de dire : "Quand tu charges l'URL X, utilise le code Javascript de l'URL Y comme s'il venait de l'URL X." Si l'utilisateur fait appel à cette fonctionnalité, il peut utiliser sa propre copie du code Javascript et peut toujours échanger des données avec le serveur hébergeant l'application web. Un navigateur possédant cette capacité pourrait aussi facilement vérifier si le script Java de l'URL X est différent du script Java sauvegardé à l'URL Y. Si l'utilisateur fait confiance à la version courante du code Javascript de l'URL X, il peut en faire une copie à l'URL Y et sera ainsi alerté de tout changement. Cette solution protège l'utilisateur du code malveillant qu'il pourrait exécuter sans le savoir dans son navigateur, du code qui pourrait voler ses données et détruire l'architecture à divulgation nulle d'information.

Mesures :

  • Écrire des extensions pour les principaux navigateurs libres (Mozilla, Webkit, ...) qui mettent en œuvre l'idée de Stallman.

Militer pour l'adjonction de la "suite AGPL" et des navigateurs améliorés pré-cités dans les distributions GNU/Linux.

  • Continuez à lire ce blog où je posterai de nouveaux articles régulièrement.
  • Faites-moi part de vos commentaires et suggestions.
  • Faites passez le message au travers de vos blogs, de vos messages sur les forums, ...
  • Faites un don.

Texte mis en forme code html

<h1 style="text-align: justify;">Liberté et protection de la vie privée en ligne : agissez !</h1> <p style="text-align: justify;"></p> <p style="text-align: justify;"></p> <p style="text-align: justify;">Ce message traite de la liberté. La liberté de posséder vos données et la liberté d'utiliser des logiciels libres. Vous devriez aussi pouvoir exiger ces libertés et en jouir quand vous utilisez des applications web.</p> <p style="text-align: justify;">Si vous soutenez le <a href="http://www.fsf.org/">mouvement du logiciel libre</a>, vous pouvez facilement opter pour Gimp au lieu de Photoshop, pour Firefox au lieu d'Internet Explorer. Vous pouvez également protéger le caractère privé de vos données en utilisant les outils de cryptage disponibles (<a href="http://gnupg.org/">GPG</a>, <a href="http://www.truecrypt.org/">TrueCrypt</a>, ...). Mais dès qu'il s'agit d'applications web, tout se complique.</p> <p style="text-align: justify;">Les avantages des applications web – ou web apps – (accessibles partout et tout le temps, mises à jour transparentes, stockage fiable, ...) sont nombreux, mais bien souvent les utilisateurs perdent la liberté d'étudier, de modifier et de discuter du code source qui fait tourner ces web apps.</p> <p style="text-align: justify;">De plus, nous sommes contraints de confier nos données aux fournisseurs de ces web apps (marque-pages, documents rédigés, copies des discussions, informations financières et désormais... <a href="http://googleblog.blogspot.com/2008/02/google-health-first-look.html">dossiers médicaux</a>) qui ne résident alors plus sur nos disques durs mais qui sont rangés quelque part "dans les nuages". Ce n'est pas vraiment une situation confortable de devoir choisir entre aspect pratique et liberté.</p> <p style="text-align: justify;">Que l'on soit clair : les web apps sont formidables et je les adore. Mais je pense que le moment est venu de réclamer plus de liberté et de confidentialité. Voilà comment nous pouvons obtenir ces deux résultats en trois étapes.</p> <p style="text-align: justify;"></p> <p style="text-align: justify;"></p> <h2 style="text-align: justify;">1. Choisissez l'AGPL</h2> <p style="text-align: justify;">Quelle est l'importance de l'<a href="http://www.gnu.org/licenses/agpl.html">AGPL</a> ? Si vous êtes un fournisseur de services et que vos services s'appuient sur des logiciels placés sous licence AGPL, vous devez rendre le code source disponible à toute personne utilisant ce service. La FSF suggère dans ses <a href="http://www.gnu.org/licenses/gpl-howto.html">directives</a> de placer un lien "Source" qui renvoie à une archive contenant le code source directement dans l'interface de l'application web.</p> <p style="text-align: justify;">(Ne me demandez pas pourquoi la communauté des logiciels libres a mis tant de temps à réagir !)</p> <p style="text-align: justify;"><strong>Mesures</strong></p> <ul style="text-align: justify;"> <li> Aider Clipperz à mettre au point une "suite AGPL" : un ensemble d'applications web répondant aux besoins les plus courants.</li> </ul> <ul style="text-align: justify;"> <li> Cette suite devrait comprendre : un traitement de texte, un logiciel de discussion, un gestionnaire de mots de passe, un carnet d'adresses, un pense-bête, un calendrier, un gestionnaire de marque-pages ... Et chaque web app devra être soumise à la licence AGPL ! Vous pourrez alors oublier Google, del.icio.us, Plaxo, Meebo ... à moins qu'ils ne se mettent à l'AGPL aussi.</li> </ul> <ul style="text-align: justify;"> <li> Nous avons déjà deux candidats pour certains postes (<a href="https://blueimp.net/ajax/">Ajax Chat</a> pour les discussions en ligne et, bien sûr, <a href="http://www.clipperz.com/learn_more">Clipperz</a> pour le gestionnaire de mots de passe), mais la plupart des places sont encore à pourvoir !</li> </ul> <ul style="text-align: justify;"> <li>Aider Clipperz à diffuser les bienfaits de l'AGPL auprès des développeurs de projets web open-source. Demandez-leur de se convertir à l'AGPL.</li> </ul> <h2 style="text-align: justify;">2. Ajoutez-y une pointe de "divulgation nulle de données"</h2> <p style="text-align: justify;">Les développeurs Web, comme les utilisateurs, connaissent encore assez peu les possibilités offertes par le chiffrage via un navigateur pour rendre les applications web aussi sécurisées et confidentielles que les logiciels classiques.</p> <p style="text-align: justify;">Chez Clipperz, nous voulons apporter une nouvelle vision que nous appelons "les web apps à divulgation nulle de données" (<a href="http://www.clipperz.com/users/marco/blog/2007/08/24/anatomy_zero_knowledge_web_application">description plus détaillée ici</a>) qui associe l'idée d'un hébergement auquel même l'hébergeur n'a pas accès et un ensemble de règles basées sur le credo "confidentialité absolue".</p> <p style="text-align: justify;">Ce nom est aussi bien un hommage au chiffrage (une "garantie de divulgation nulle de données" est un protocole de chiffrage standard) que la promesse d'une relation particulière entre l'utilisateur et le fournisseur d'application. Le serveur hébergeant la web app peut ne rien savoir sur ses utilisateurs, pas même leurs identifiants ! Clipperz applique cette vision pour mettre en œuvre son <a href="http://www.clipperz.com/">gestionnaire de mots de passe en ligne</a>.</p> <p style="text-align: justify;"><strong>Mesures</strong></p> <ul style="text-align: justify;"> <li> Appliquer les techniques "divulgation nulle de données" à chaque composant de la "suite AGPL". Convertir une application web à l'architecture "divulgation nulle" n'est pas simple, mais chez Clipperz nous avons développé un savoir-faire important et nous serons heureux de partager aussi bien ces connaissances que le code de base.</li> </ul> <p style="text-align: justify;">Nous pourrons ainsi finalement jouir d'un traitement de texte en ligne qui ne pourra pas lire nos documents, un logiciel de discussion qui n'enregistrera pas nos conversations, un wiki sur lequel on pourra conserver sans crainte des données importantes, etc.</p> <ul style="text-align: justify;"> <li>Établir et maintenir à jour une liste des Fournisseurs de Service d'Application [NdT : ASP pour Application Service Provider en anglais] qui hébergent la suite complète sous AGPL. Cette référence sera utile à tous ceux qui attachent de l'importance aux logiciels libres et à la confidentialité mais ne possèdent pas les compétences et les ressources pour faire tourner des web apps sur leur propre serveur.</li> </ul> <h2 style="text-align: justify;">3. Créer un navigateur plus intelligent</h2> <p style="text-align: justify;">On y est presque, mais il nous reste encore à fournir aux utilisateurs de web apps un environnement encore plus flexible et sécurisé. Dans la pratique, du fait de l'architecture des web apps à "divulgation nulle de données", le serveur réalise de façon générale les tâches suivantes :</p> <ul style="text-align: justify;"> <li> charger le code Javascript dans le navigateur de l'utilisateur (charger le programme) ;</li> </ul> <ul style="text-align: justify;"> <li> authentifier l'utilisateur (optionnel et par un protocole à "divulgation nulle de données")</li> </ul> <ul style="text-align: justify;"> <li> rapatrier et stocker les données chiffrées demandées par le navigateur de l'utilisateur.</li> </ul> <p style="text-align: justify;">Logiciel libre est synonyme de contrôle total de ce qui se passe sur mon ordinateur. Se posent alors deux questions :</p> <ul style="text-align: justify;"> <li> Comment faire tourner une version modifiée du code Javascript à la place de celui chargé par le serveur ?</li> </ul> <ul style="text-align: justify;"> <li> Comment être alerté des modifications apportées au code Javascript que le serveur envoie à mon navigateur ?</li> </ul> <p style="text-align: justify;">J'ai récemment eu l'immense honneur d'échanger mes idées avec <a href="http://en.wikipedia.org/wiki/Richard_stallman">Richard Stallman </a>lui-même au sujet de ces problèmes, et il a suggéré une solution futée pour les résoudre tous les deux.</p> <p style="text-align: justify;">Stallman propose d'ajouter une fonctionnalité au navigateur qui permette à l'utilisateur de dire : "Quand tu charges l'URL X, utilise le code Javascript de l'URL Y comme s'il venait de l'URL X." Si l'utilisateur fait appel à cette fonctionnalité, il peut utiliser sa propre copie du code Javascript et peut toujours échanger des données avec le serveur hébergeant l'application web.</p> <p style="text-align: justify;">Un navigateur possédant cette capacité pourrait aussi facilement vérifier si le script Java de l'URL X est différent du script Java sauvegardé à l'URL Y. Si l'utilisateur fait confiance à la version courante du code Javascript de l'URL X, il peut en faire une copie à l'URL Y et sera ainsi alerté de tout changement. Cette solution protège l'utilisateur du code malveillant qu'il pourrait exécuter sans le savoir dans son navigateur, du code qui pourrait voler ses données et détruire l'architecture à divulgation nulle d'information. <p style="text-align: justify;"><strong>Mesures :</strong></p> <ul style="text-align: justify;"> <li>Écrire des extensions pour les principaux navigateurs libres (Mozilla, Webkit, ...) qui mettent en œuvre l'idée de Stallman.</li> </ul> <p style="text-align: justify;">Militer pour l'adjonction de la "suite AGPL" et des navigateurs améliorés pré-cités dans les distributions GNU/Linux.</p> <ul style="text-align: justify;"> <li> Continuez à lire ce blog où je posterai de nouveaux articles régulièrement.</li> </ul> <ul style="text-align: justify;"> <li> <a href="http://www.clipperz.com/contact">Faites-moi part</a> de vos commentaires et suggestions.</li> </ul> <ul style="text-align: justify;"> <li> Faites passez le message au travers de vos blogs, de vos messages sur les forums, ...</li> </ul> <ul style="text-align: justify;"> <li> Faites un<a href="http://www.clipperz.com/donations"> don</a>.</li> </ul> <strong>Et le meilleur pour la fin : comment nommeriez-vous cet ambitieux projet ? Faites-moi part de vos idées dans les commentaires ! </strong>

Outils personnels