Critique de l'alternative "libre" de PeerTube


#1

Bonjour les amis,

Tout d’abord j’admire l’idée de créer une solution libre pour les vidéos. En effet, il est primordial de se libérer des griffes du mastodonte google & compagnie.

Chez Framasoft on cherche donc à dégoogliser internet. Moi aussi :smiley: et je fais partie de ces militants comprenant certains enjeux du numérique et des libertés.

Une société démocratique (même si on vit dans une société consumériste et non démocratique mais bon c’est un autre débat) ne peut être une société où l’on est espionné par un pouvoir. Ce pouvoir étant aujourd’hui ces sociétés numériques.
Ces entreprises qui d’ailleurs ont plus d’accès à la Commission Européenne qu’un simple citoyen consommateur.

En résumé, les citoyens consommateurs sont espionnés par un pouvoir qui lui tire certaines ficelles au sein de la Commission Européenne, lieu où sont prises les décisions sur le mode de vie sociétale que devront suivre les citoyens consommateurs. Avouons qu’il existe un problème démocratique ici.

Les gafams sont donc des dangers pour la démocratie. Tout comme ces entreprises dans le passé cherchant à obtenir la situation de monopole (pour écraser ses concurrents). Ce qui a donc été interdit par la suite, ou plus précisément ses abus.

Ici, chez Framasoft et dans la culture / philosophie du libre en général, l’amélioration de la condition citoyenne passe par des outils non controlés, les biens-communs, l’utilisation équitables de ressources…

Mais je remarque qu’il y a anguille sous roche avec PeerTube ! Et cela est bien, bien dommage. Je m’explique :

  • PeerTube se base sur des technologies appartenant à l’un de ces gafams, en l’occurance google. En effet, Node.js se repose sur Chrome V8 (le moteur javascript de google). Ce moteur est développé par le “The Chromium Project”. L’équipe derrière le soit-disant projet ‘libre’ Chromium. ce qui a permis par la suite de mettre en place l’outil d’espionnage Chrome, dont le code source est « privateur ». D’ailleurs l’une des conditions d’utilisation de Chrome était d’autoriser google a analysé toutes les pages que l’utilisateur pouvant surfer.
    La NSA n’a plus qu’à se rhabiller après une telle décision de la part de Google :smiley:
    Utiliser le moteur javascript de google va à l’encontre de la campagne “Dégooglisons internet”
  • PeerTube s’appuie sur WebTorrent qui s’appuie sur WebRTC, qui présente des risques (ici ou ). Faille anodine ? moi je ne le crois pas, surtout qu’elle traine. Lorsque l’on sait que google est derrière ce projet, ce n’est pas rassurant. D’ailleurs l’équipe qui est derrière ce projet est l’équipe soit-disant bienfaitrice “open source” de Google Chrome. Comment peut-on avoir confiance à “google, don’t be evil” ? Attention si c’est open-source c’est sûrement pour que l’on s’y jette dessus, nous informaticiens, sans regarder l’impact (futur) d’éthique. Peut-être que google est déjà au courant d’autres failles ou de dépendances prévues qui ne sont d’ailleurs pas encore révélées…

Je rappelle que le business-model de google n’est pas d’offrir des services, mais qu’un citoyen consommateur devienne dépendant de leurs services (gratuit ou non, open-source ou non) pour mieux imposer ensuite leur vision du monde et du numérique, pour mieux fliquer.
Par exemple avec les googleapis (qui suivent les utilisateurs), les serveurs DNS 8.8.8.8, les google analytics, leurs lobbies à Bruxelles et j’en passe…
D’ailleurs comment lutter pour la neutralité du net avec google s’ils veulent tout controler et feint d’être pour l’ouverture (ici ou ) ? ou tout simplement en voulant entrer dans les universités avec leurs cours.

Non internet n’est pas google et google n’est pas l’internet !

Le projet PeerTube est-il / sera-t-il vraiment libre s’il s’appuie sur des technologies google, qui nous le savons ne sont pas anodines, mais permettent / permettront à google de grossir encore plus sa base de connaissances de ses utilisateurs, des tendances actuelles et des tendances futures ? Un PeerTube, merci qui, merci google ?


A bon entendeur


#2

Salut @195 ; je crois que tu prêche des convertis, nul besoin de faire un pamphlet des GAFAMs pour nous persuader de choses dont nous sommes déjà convaincus.

Pour autant, je ne suis pas d’accord avec ce que tu avances.

D’abord WebRTC ; je vais re-présenter ce protocole sur lequel je travaille par ailleurs. C’est un ensemble de protocoles, plus précisément, et il n’est pas figé : il est maintenu et développé par le W3C et l’IETF, deux instances dont les délibérations sont publiques tant à la lecture qu’à la participation. Si la preuve de concept a pour origine une équipe de Google, c’est bien un ensemble de gens de divers horizons qui ont fait le premier standard : https://tools.ietf.org/wg/rtcweb/charters?item=charter-rtcweb-2011-05-03.txt
Une fois ce standard fait, chaque navigateur l’implémente, avec une implémentation de référence de l’API WebRTC faite par Google ici. Ce code fait ensuite l’objet de revues de code ici. Tu as beau dire ce que tu veux, même Google respecte ici le principe de Kerckhoffs. Ça ne rend pas le logiciel automatiquement plus sûr, c’est vrai, mais statistiquement avoir plus d’yeux à lire le code réduit le nombre de failles de sécurité. Mieux, le code est réimplémenté. Firefox a sa propre version depuis 2012 avec la Firefox 18, et trois implémentations de test en décembre 2012 intégrées dans le code source. Dès Firefox 29, il était pleinement intégré dans le navigateur, et dès mai 2013, Firefox et Chrome étaient interopérables via WebRTC. Le travail d’implémentation est toujours en cours pour d’autres navigateurs, d’autant que le standard évolue pour se sécuriser.

Cela étant dit, la question de ton anonymat vis-à-vis d’autres utilisateurs est une question intéressante. Elle est longuement abordée dans les discussions des développeurs, et détaillée dans le standard, §4.2.4.:

WebRTC does however provide a number of mechanisms which are intended to allow a web application to cooperate with the user to hide the user’s IP address from the other side of the call. These mechanisms will be detailed in turn.
A WebRTC implementation is required to provide a mechanism to allow JS to suppress ICE negotiation until user has decided to answer the call. This provision assists end users in preventing a peer from learning their IP address if they elect not to answer a call. This has the side-effect of hiding whether a user is online or not to their peers.
The second such provision is that any implementation will provide a mechanism for the calling app’s JavaScript to indicate that only TURN candidates are to be used. This can prevent a peer from learning one’s IP address at all.
Furthermore, there is a mechanism for the calling app to reconfigure an existing call to add non-TURN candidates. Taken together with the previous provision, this allows ICE negotiation to start immediately upon an incoming call notification, thereby reducing delay, but also avoiding disclosing the user’s IP address until they have decided to answer. This allows users to completely hide their IP address for the duration of the call.

source: http://webrtc-security.github.io/#4.5.

C’est une problématique dont on est bien conscients, et si pour l’instant on se concentre plus sur l’élaboration d’une preuve de concept utilisable, on prévoit non seulement de respecter les recommendations du standard pour éviter cet écueil, mais aussi de rendre WebTorrent/WebRTC désactivable pour les utilisateurs le souhaitant (on a pour l’instant que la timide issue #355).

EDIT: on est même allés jusqu’à décongeler les gens de chez Tor Browser pour qu’ils autorisent WebRTC en upload :sweat_smile:

Quant à NodeJs, tu peux remplacer V8 par https://github.com/mozilla/spidernode par exemple. C’est loin d’être aussi performant et le support n’est pas complet, mais c’est déjà un bon début. Oui, sinon NodeJs, AngularJs et V8 sont des projets de/supportés par Google (EDIT: NodeJS est maintenu par Joyent, comme l’a justement précisé @Nautigsam), et ce n’est pas la panacée (d’ailleurs si tu veux tout savoir Typescript est initié par Microsoft et le linter de Typescript qu’on utilise est maintenu par Palantir… pas glop quoi). Mais ce sont aussi des projets pertinents en 2018 de par la taille de leur communauté lorsqu’il s’agit de technologies du web. Ça nous aide à aller plus vite car beaucoup de briques logicielles sont actuellement faites pour NodeJs lorsqu’il s’agit de technologies du web ; il y a aussi pas mal de développeurs pour qui c’est familier. Les utiliser renforce Google ? Pas vraiment. Pour ça il faudrait contribuer à leurs bibliothèques logicielles. NodeJs, AngularJs et V8 ne renvoient aucune donnée à Google, et nous non plus (encore heureux). Donc vois plus ça comme un usage opportun de code qu’un support de Google, car ce n’est vraiment pas ce qui nous anime.

Concernant la notion de code libre, l’ensemble de notre code est distribué sous licence APGLv3.0. C’est bien du code libre selon la définition GNU adaptée aux services, et les briques logicielles que nous utilisons l’autorisent.


#3

Un grand merci @195 et @rigelk : j’apprends beaucoup de choses grâce à cet échange (tout le monde n’a pas vos connaissances techniques ^^) et donc grâce au fait que vous ayez pris du temps dans votre vie pour écrire ces mots.


#4

Bonjour à tous,

Juste pour préciser que NodeJS n’appartient pas à Google mais est un projet indépendant maintenu par Joyent et la communauté. Ses activités sont transparentes.
Vu l’utilisation qu’est faite de Node, je vois mal Google mettre je ne sais quel code malveillant, c’est juste une brique technique.


#5

Autre point d’interrogation avec PeerTube mais aussi Mastodon (bref n’importe quel réseau décentralisé) : chaque instance doit avoir un responsable de traitements et un DPD, mais à partir du moment où chaque instance communique avec les autres instances, il y a des rapports de sous-traitance ; donc chaque responsable des traitements doit pouvoir obtenir le consentement à propager les DCP à tous les sous-traitants sous réserve qu’ils soient conforme au RGPD, non ?


#6

D’abord, rappelons que le nomination d’un DPD n’est obligatoire que dans certains cas :

Les responsables de traitement et les sous-traitants devront obligatoirement désigner un délégué :
– s’ils appartiennent au secteur public,
– si leurs activités principales les amène à réaliser un suivi régulier et systématique des personnes à grande échelle,
– si leurs activités principales les amène à traiter (toujours à grande échelle) des données dites « sensibles » ou relatives à des condamnations pénales et infractions.

Donc (je ne suis pas juriste), mais je doute que chaque instance Mastodon doive avoir son DPD.

Autre point d’interprétation, il faudrait pour cela pouvoir qualifier le “rapport de sous-traitance”. Je pense que vous en faites une interprétation bien trop stricte.
En effet, si je prends le cas du mail (qui est aussi un réseau décentralisé), cela reviendrait à dire que tout serveur de mail “B” recevant des mails d’un serveur de mails “A”, devrait obtenir un consentement des utilisateurs de “A” afin de pouvoir recevoir le message et de pouvoir le diffuser aux utilisateurs de “B”. Cela reviendrait, plus ou moins, à “tuer internet”, et je doute que tel ait été l’intention du RGPD.
Rappelons qu’un mail contient (évidemment) des données personnelles (nom, mail (!), IP, contenu du message, etc).

Bref, il faudrait l’avis d’un juriste, mais pour moi, cette interprétation est erronée et donc, jusqu’à ce que le droit (ou la jurisprudence) tranche, je ne retiendrai pas cette interprétation.


#7

Ce n’est pas parce que la majorité des informaticiens utilisent ces technos qu’ils font de l’informatique utile / éthique (bien au contraire).

Et pourtant si : plus google (et les gafam) sont utilisés et plus leurs solutions (qui créent une dépendante obligatoire, voire forcée) sont valorisées. Et plus il y a une nécessité de contribuer, de renforcer leur(s) écosystème(s).

Ce n’est pas parce que le code est libre que la finalité est juste et pro-démocratique. Avec les gafams c’est justement souvent le contraire. Un petit article intéressant :wink:
Bonne lecture.


#8

Oui, je pense que lorsque mon ami.e utilise google, microsoft, facebook, apple… pour lire mon courriel ou qu’il.elle utilise amazon pour me transmettre des documents / photos, je devrai au préalable donner mon accord !
En effet je dois, précisément dans le cas du courrier électronique, pouvoir dire que le serveur de mail “B” (si serveur gafam) doit d’abord obtenir mon consentement afin de pouvoir traiter, analyser, étudier mes données. En réalité et en pratique, évidemment que les gafams s’en moquent de ce consentement.
Il suffit que notre ami.e soit chez ces gafams pour que notre vie privée (qui est pourtant un des principes de la démocratie) soit violée, abandonnée.

Acceptons-nous que La Poste utilise, stocke, revende, traite le contenu de notre correspondance privée ?

Pour l’anecdote :wink: : pourquoi cette analyse doit arriver sur des serveurs gafams si l’un des destinataires du forum possède son adresse courriel chez ces mêmes gafams ? cela va bien-sûr à l’encontre de la liberté de pensée… puisque dans une société de surveillance on s’autocensure obligatoirement… ou inconsciemment.


#9

Encore une fois, je comprends ta critique des GAFAMs, mais elle n’a pas grand chose à voir avec notre code, son compilateur, sa licence, ou ses dépendances. Je t’invite à regarder notre code pour en avoir le cœur net et juger de si PeerTube relève effectivement de l’utile aux communs et de leur éthique ; je me propose même de t’expliquer les morceaux qui t’intéressent si tu ne connais pas l’écosystème de programmation.

Pour ce qui est de la gouvernance démocratique du code, là c’est un sujet à discuter si tu veux, mais ça mérite un sujet dédié et un temps dédié, pour rassembler tous ceux concernés.


#10

Concernant le consentement, tu (@195) donne ton avis comme je donne le mien. Mais sauf erreur de ma part, on est bien dans le cas d’une interpretation du droit, et non du droit lui même.

Bref, je ne serai pas plus royaliste que le roi. Si le RGPD imposait que chaque serveur de mail impose un consentement de l’expéditeur en amont, cela rendrait le texte caduc par son impossibilité de l’appliquer.


#11

Quant à la question du code (auquel je ne participe pas, mais dont Framasoft est en quelque sorte éditeur), c’est un éternel débat sur la “pureté” du code (et des intentions de chacun).
Autant je suis pour une éthique du libre, autant l’idée d’une morale du libre me rend tout de suite beaucoup plus sceptique.

J’ai vu des devs s’écharper pour savoir si un code libre pouvait être écrit avec un éditeur non libre.
Pour moi, l’utilisation d’un Framework-libre-mais-initié-par-la-boite-X relève sensiblement du même débat : intéressant d’un point de vue actuel mais relativement stérile. Il est toujours possible de réécrire PeerTube dans un autre langage si ça intéresse des dévs, mais le fait que le soft soit en TypeScript ne rend pas le logiciel moins libre.


#12

Je pense que PeerTube est un projet utile aux communs, puisqu’il montre la voie de l’alternance. Néanmoins, une bonne alternance est une voie libre de solutions promues, travaillées par les gafams.

C’est honorable comme proposition ! Ce qui m’intéresse par exemple, c’est le moteur javascript V8 de google : peut-on avoir la liste complète des informations obtenues par google ?
Par exemple et entre autres, google obtient-il l’adresse IP, la fréquence d’utilisation, la charge d’utilisation par son moteur ? Le contraire m’étonnerait bien (même si je n’ai bien sûr pas audité leur code source, ce que je ne sais pas faire).
Puis supposons que cela ne soit pas le cas aujourd’hui, comment être sûr que demain une version ultérieure ne transmettra pas ces informations à google… par souci de “sécurité” ou “d’aisance d’utilisation” ?

Oui je suis tout à fait d’accord avec le fait qu’envoyer un courriel ou communiquer avec un.e ami.e utilisant un service des gafams est un autre sujet de discussion. Cela revient au thème de la violation d’un des principes fondamentaux de la démocratie (supposant que nous sommes en démocratie :-p). Cela était pour répondre à la remarque de @pyg avec la communication entre les serveurs de mail “A” et “B”.

PS : je soutiens le projet PeerTube mais là où j’ai (un peu) du mal est sa dépendance aux solutions gafams décrites au début de cette discussion. Pouvons-nous “pousser” dès que possible à la substitution du moteur javascript V8 de google, qui est inclus dans le code du projet ?

PS 2: un PeerTube sans WebRTC est-il possible ? cela est encore un autre débat mais nécessaire tout de même…


#13

Pourtant l’interprétation est évidente : si je suis obligé de passer par une société (gafam) qui viole mes données pour pouvoir communiquer avec un tiers utilisant un de leurs services, mon droit de protection des données privées revient à être violé :wink:

Et pourtant cela serait une réelle protection contre la violation de la vie privée :slight_smile:
Le texte RGPD est donc effectivement limité en pratique.
Et au delà du courriel, il y a aussi toutes ces bibliothèques javascript présentes sur un site internet donné qui violent (puisque stocke, traite, analyse) notre navigation / données.


#14

C’est une question étrangement formulée : ça laisse sous-entendre que le code compilé par V8 enverrait des informations à Google. Déjà il faut comprendre ce que fait un compilateur. C’est pas comme si un compilateur a conscience du but du programme au-delà de ce qu’est une instruction… Donc pour répondre à ta question, rien dans le code généré ou dans le compilateur ne fait de tels appels.

Sinon il a été audité et est développé ouvertement, comme d’autres compilateurs en fait. Il faudrait qu’ils ferment la source, ou qu’ils forkent et distribuent ce fork sans sa source, pour qu’on perde confiance.

Concernant la question des compilateurs, c’est un sujet passionant, et ça mérite une bonne lecture pour comprendre que ce n’est pas là que Google fait son beurre. C’est clairement pas là qu’ils risqueraient de se faire prendre la main dans le sac à faire des appels vers leurs serveurs. Tu peux lire au sujet des compilateurs avec ce livre par exemple: https://inventaire.io/entity/inv:ab4c2feca15120e6ada9aca7cf24ed21

Il faut différencier leurs services de leur code. C’est pas les même enjeux. Ils contribuent beaucoup à l’open source pour se faire une image de philantropes et bienfaiteurs des communs, pas pour pomper tes données. Et puis avoir un pied dans l’open source leur permet de mieux recruter dans cette communauté. Autrement dit, leurs objectifs sont à des lieues de ceux des services qu’ils proposent en ligne. Les risques pour nous aussi. Maintenant, je veux bien continuer à expliquer pourquoi mais je peux t’assurer que c’est un débat stérile.

V8 ne fait pas partie de notre code. C’est un compilateur, que nous n’utilisons que pour les version précompilées distribuées lors des “releases”. Le choix d’utiliser V8 ou une alternative reste libre à celui qui télécharge notre code pour le faire ensuite tourner.

Mais ça n’apportera rien à ta vie privée, tout comme notre utilisation de V8 n’apporte rien à Google.

Tu perdrais l’intérêt de WebTorrent, mais tu peux toujours désactiver WebRTC dans ton navigateur et regarder des vidéos PeerTube.

Mais c’est intéressant comme question. Parce que tu vois, il y a beaucoup de protocoles à la spécification ouverte comme WebRTC, dont l’implémentation séminale est gérée par une entreprise, ou… un complexe militaro-industriel. La DARPA pour TCP, IBM, AT&T et DEC pour TCP/IP. Finalement ce sera mis en open source par AT&T.


C’est un peu ce qui me chagrine dans toute cette discussion. On peut toujours se faire peur, et trouver que l’auteur de tel ou tel morceau de code discrédite l’ensemble. On pourrait aussi parler des licences des dépendences utilisées par PeerTube. Idéalement, elles aussi devraient être AGPLv3.0+, non ? Et récursivement…

En attendant, on perd de vue le but du projet. C’est peut-être ça qui renforce les gafams au fond : nos divisions sur des questions de pureté. Tu peux voir où en sont les puristes. Ils font de beaux débats, mais ils n’ont aucune force de proposition pour aider à résoudre les problèmes nouveaux auquels nous soumettent les gafams.


#15

Personne n’a dit qu’il ne l’était pas :slight_smile:
Et le RGPD est entré en application il y a à peine une semaine, donc on va peut être éviter de mettre ce texte sur un piedestal (ou le jeter à la poubelle, d’ailleurs).
Bref, je ne suis ni juriste, ni juge, et je ne préjuge donc pas de l’interprétation de tel ou tel point.


#16

Je suis tellement d’accord avec toi.
Je me rappelle d’une prise de tête avec Stallman himself, concernant https://www.gnu.org/software/librejs/
Bref, je le redis, c’est un débat moral, pas éthique.
Et pour Framasoft, nous l’avons tranché. C’est même dans notre devise “La route est longue, mais la voie est libre” : nous ne cherchons pas à faire partie des “purs”. Une société 100% libre n’est pas notre objectif (surtout si c’est pour retrouver des drones de combat sous GNU/Linux).
Notre objectif (à nous) est “uniquement” de favoriser la compréhension du libre chez le plus large public, par l’information comme par l’action, afin qu’il puisse faire un choix éclairé.
Alors, oui, évidemment, entre libre et non-libre, on a fait notre choix. Mais pour nous il s’agit d’un cheminement propre à chacun.

Personnellement, ça me rapelle un peu l’écologie. Peut-on se prétendre écolo et avoir une voiture ? Certains diront que oui, d’autres que non. Tu l’aura compris, je fais partie de ceux qui répondent “oui”. Et ce n’est pas pour autant que je jugerai négativement une personne qui penserait différemment. Tant qu’elle ne m’impose pas son point de vue.

Tu veux réécrire PeerTube ? Tu peux le faire (ou apprendre à le faire), mais PeerTube est libre, et tu ne peux pas imposer aux auteurs le choix de leurs outils.