Mon idée de réseau social libre et décentralisé

Actuellement, Facebook est le plus grand des réseaux sociaux. Si il a su séduire par sa facilité d’accès, il surprend toujours quand à la légèreté avec laquelle il laisse fuiter la vie privée de ses utilisateurs.

Facebook, et Google encore plus, ont un modèle économique basé sur la collecte et la revente des infos personnelles des gens. Ne comptez donc pas sur eux pour résoudre le problème.

En face, on a :

Aucune de ces solutions ne semble émerger car elles disposent d’handicaps techniques.

Le problème des versions avec serveur, c’est qu’il faut un geek dans l’histoire qui gère le serveur et dispose dispose d’un pc allumé 24/24. De plus, de part sa position centrale, il a accès aux données de tous les utilisateurs de son service. (Cette critique est aussi valable pour le réseau de messagerie Jabber)

Le problème des versions P2P, c’est que lorsque l’on est déconnecté, nos amis ne peuvent plus nous joindre, ni laisser de message. Il y a bien l’astuce de faire de stocker une copie de nos données chez nos amis pour espérer toujours avoir une copie en ligne, mais c’est une hypothèse purement statistique. Comment retrouver ses amis si chacun change d’ip à tour de bras (maison, smartphone, bureau, etc..)? Que faire si le pare-feu du bureau ne laisse pas passer les connexions entrantes?

Cependant, j’aime bien le principe de Retroshare. L’utilisation du chiffrement des données entre l’expéditeur et le destinataire par clés asymétriques (GPG) permet de ne plus avoir besoin ni de contrôler l’accès aux données ni de sécuriser leur transmission.

Mon idée est d’améliorer le principe de Retroshare en ajoutant un « cache » chiffré de nos données personnelles sur un espace de stockage accessible 24/24 par le net (p2p, serveur ftp d’un copain, espace perso Free, autohébergement, etc…).

Exemple, avec Paul et Sarah.

Paul a un logiciel de réseau social sur son Macbook. Il ajoute ses photos de vacances à la mer avec Sarah dans le portfolio « Amis ». Cette action envoie ses photos sur un espace de stockage sur le net. Paul se déconnecte.

Sarah allume son téléphone ou elle a un logiciel de réseau social. Elle fait partie des amis de Paul. De ce fait, son logiciel sait où Paul stocke ses données de réseau social sur le net. (il peut y avoir une redondance des données sur plusieurs espaces d’ailleurs). Le logiciel va regarder si il y a des nouveautés dans l’espace de Paul et trouve un nouveau fichier. Ce fichier est chiffré et seuls les détenteurs de la clé de déchiffrement « amis de Paul » peuvent la lire. Ca tombe bien, Sarah possède cette clé. Sarah télécharge donc le nouveau fichier et peut accéder aux photos de ses vacances à la mer avec Paul.

Rien n’empêche Sarah de partager la clé de déchifrement « amis de Paul » avec d’autres amis, Paul risque de ne pas être content si les amis de Sarah arrivent à voir ses photos. Néanmoins à partir du moment où Sarah peut voir les photos de Paul depuis son propre terminal, rien ne l’empêche de les rediffuser… Est-ce donc un risque intrinsèque au mode de fonctionnement des réseaux sociaux actuels?

La clé de déchiffrement « amis de Paul » a été transmise à Sarah par un moyen sécurisé. Chaque personne possède un couple de clé asymétrique type GPG. Des couples de clés aymétriques supplémentaires similaires sont créés pour les groupes/cercles de partage.

Un fichier « Index » est disponible sur l’espace de stockage des profils, celui ci indique où son rangés les fichiers du profil, quelle clé est nécessaire pour les déchiffrer. Ce fichier, permet de suivre l’arrivée de nouveaux éléments sur le profil de ses amis à la manière d’un flux RSS.

Un autre fichier « Présence » indique où se trouve les copies redondantes des données du profil. Ca peut être utile de savoir cela, si par exemple, l’espace de stockage est temporaire. Ce fichier indique aussi si l’utilisateur est en ligne, avec « l’adresse IP » pour le joindre. De cette manière si deux utilisateurs sont en ligne, des fonctions temps-réel peuvent être utilisées comme de la messagerie instantanée, voip, etc….

Les fichiers Index, Présence, etc… sont chiffrés avec la clé privée de Paul. Cela garantit à Sarah qu’ils n’ont pas été altérés par une tierce personne.

La sécurité des données est basée sur le chiffrement, or celui ci est seulement une protection de durée. Je veux dire par là qu’il est peut-être raisonnable de dire que dans 50 ans on pourra casser facilement les méthodes de chiffrement actuels (ordinateurs quantiques, failles dans l’algorithme…). Dès lors il peut être utile de rajouter une petite protection d’accès aux données chiffrées (password, clé d’accès au répertoire, adresse de stockage secrète) en plus du chiffrement des données afin d’éviter que trop de malins s’amusent à archiver les données chiffrées contenant la vie privée des personnalités en espérant les déchiffrer plus tard.

25 réactions sur “ Mon idée de réseau social libre et décentralisé ”

  1. Edouard

    « Jappix copie de facebook en version serveur »
    -> hum tu n’y es pas vraiment là, il s’agit avant tout d’un excellent client web jabber

  2. Vincent

    Bravo d’avoir réussi à oublier Movim dans ton article : http://movim.eu/

    Et puis Paul n’était pas obligé d’avoir un Macbook. Tu aurais pu lui donner un « pc portable » ce qui aurait été bien suffisant. C’est assez rasoir d’avoir de la publicité venant du subconscient maintenant.

    Jappix est effectivement très loin de FB avec tous ses jeux débiles et sa colone de publicité à droite, c’est surtout et avant tout un client Jabber Web (un MSN du web si tu préfères) avec un flux à la Twitter.. mais privé. C’est un peu comme … mais en différent.

    Le reste de l’article est assez proche de l’idéologie du projet FreedomBox et de Movim, j’ai donc bon espoir que tu puisses l’essayer d’ici quelques mois :)

  3. Tuxicoman Auteur Article

    @Vincent : J’ai installé movim, mais de ce que j’ai pu voir, c’est encore de l’alpha. Je vais l’ajouter dans la catégorie « serveur ».
    Bien vu pour l’image subliminale. Je voulais exprimer par là un novice en informatique qui ne veut pas se prendre la tête.

  4. erdnaxeli

    Ton idée de cache aurait pu être bonne, mais elle oblige à avoir un espace quelque part disponible 24h/24 7j/7. Et on revient donc au même dilemne : soit on est un geek, soit on va chez le gros fournisseur = centralisation.

  5. Tuxicoman Auteur Article

    @erdnaxeli : les données stockées sont chiffrées. l’hébergeur n’aucun moyen de lire leur contenu. l’utilisateur peut choisir le gros fournisseur, ses concurrents ou même héberger ses données en p2p. Le service rendu étant égal.

  6. mgautier

    > Rien n’empêche Sarah de partager la clé de déchifrement « amis de Paul » avec d’autres amis, Paul risque de ne pas être content si les amis de Sarah arrivent à voir ses photos. Néanmoins à partir du moment où Sarah peut voir les photos de Paul depuis son propre terminal, rien ne l’empêche de les rediffuser… Est-ce donc un risque intrinsèque au mode de fonctionnement des réseaux sociaux actuels?

    Pourquoi créer une nouvelle clé à chaque partage ?
    Paul peut très bien chiffrer le message avec la clé publique de Sarah (et de Bob par la méme occasion). Ainsi seul Sarah et Bob peuvent lire le message sans qu’il n’y ai de clé à partager.
    (Si Sarah perd sa clé privée, c’est que Sarah s’est fait pirater son « compte »)

    Par rapport à l’espace de cache, je préfèrerait que se soit les amis communs qui gardent les messages en attente (comme dans la vrai vie : « Tu diras à machin que blablabla… »). Ensuite rien n’empêche des hébergeurs pro/associatif de servir de boite au lettres pour une stabilité accrue (éventuellement contre de l’argent)

  7. Tuxicoman Auteur Article

    @mgautier: c’est juste pour une question de place sur l’espace de stockage, étant donné qu’il faut une version de fichier par clé de chiffrement. Si on a de nombreux amis, ca peut vite prendre de la place et du temps d’upload.

    La contrepartie la clé ‘amie’ c’est qu’il faut la renouveler à chaque fois que l’on répudie un ami.

    Une troisième solution serait de créer une clé de déchiffrement par fichier que l’on envoie chiffrée à chacun de nos amis. Ainsi, si on répudie un ami, on a rien d’autre à faire que d’arreter de lui envoyer la clé de déchiffrement des nouveaux fichiers. Et niveau stockage ca ne doit pas être bien lourd de stocker des bataillons de clés de quelques ko.

  8. mgautier

    Avec GPG, on peut chiffrer un fichier avec plusieurs destinataires (clés publiques). C’est d’ailleur nécessaire de s’inclure dans les destinataires si on veut déchiffrer son propre message.

  9. Tuxicoman Auteur Article

    Est que la taille du message n’est pas multipliée par le nombre de destinataires?

  10. jbar

    salut changaco,

    Bon, je suis en train de jouer avec retroshare, mais on pourrait peut-être aussi le combiner avec un montage tahoe-lafs ou syncany pour cette fonctionnalité ? (idée à voir, auquel j’avoue ne pas avoir du tout réfléchie)

  11. Stéphane Klein

    > Le problème des versions avec serveur, c’est qu’il faut un geek dans l’histoire qui gère le
    > serveur et dispose dispose d’un pc allumé 24/24. De plus, de part sa position centrale, il a > accès aux données de tous les utilisateurs de son service. (Cette critique est aussi valable
    > pour le réseau de messagerie Jabber)

    Personnellement, je pense qu’une solution hybride serait déjà pas mal.

    Cela me pose pas de problème d’avoir une version serveur si :

    * tout le monde peut monter un serveur et le connecté à un réseau (comme Jabber)
    * et si il est possible de migrer d’un serveur à un autre sans rien perdre de ses données et de ses contacts (possible actuellement avec Jabber si on a une entrée SRV dans la configuration de son propre nom de domaine)

  12. Tuxicoman Auteur Article

    Parler c’est bien, le faire c’est mieux.
    J’ai donc codé mon appli de réseau social suivant globalement les principes énoncés ci-dessus.

    Ca va roxxxer des mamans ours !

    Je vous tiens au jus dès que j’ai une version qui permet de faire autre chose que de s’échanger des messages texte.

  13. Tuxicoman Auteur Article

    @Stephane Klein : Ca ne te gêne pas que ton serveur ait accès à ton mdp, tes communications en clair et ta liste de contacts?

  14. Ju

    Bonjour à tous.

    J’ai fait l’acquisition d’un petit serveur DNS, à la base pour stocker mes photos et pouvoir y accéder à tout moment. MAIS ce n’est pas très pratique pour les partagers avec la famille (il faut se loger, fouiller, télécharger l’album etc)

    J’ai deja beaucoup de photos dessus et j’ai pas forcément envie de tout mettre sur des sites ouverts..

    J’ai trouvé des CMS pour créer son réseau social, mais je ne trouve pas de réseau « optimisé photo » du genre FlickR / picassa, que je pourrais héberger sur mon site perso et qui se nourrisse tout seul de mes albums photos stockés sur le serveur ..

    Je ne sais pas si c’est très clair, mais si vous avez des pistes, je suis preneur !!!

    Merci d’avance

  15. Ledom

    Bonjour,

    J’adhere à 100%. Un reseau social décentralisé ne devrait pas avoir besoin d’un serveur central… Assez déçu par les diaspora ou autre, mais très intéressé par par un truc à la peerscape.

    As tu regardé du coté de wuala. Ils utilisent du p2p ce qui permet de partager de l’espace disque et en échange de gagner du stockage en ligne sur d’autres postes. Il y a un exposé video qui traine sur le net qui parle des stats concernant la disponibilité des noeuds.
    Il me semble qu’ils utilisent aussi du stockage serveur classique soit pour du cache comme tu souhaites le faire, soit pour les clients payants qui achetent de l’espace.

    Retroshare semble plus orienté partage de fichier que reseau social, mais le principe est génial.

    Par contre l’interface mériterait un coup de jeune, les fonctionnalité de communication d’après les capture ressemblent beaucoup plus à un client mail à l’ancienne qu’a un reseau social ou on peut discuter sur un mur.

    Très important de mon point de vu, gérer les groupes d’mis à la google+ ou elgg pour partager un contenu ou une communication uniquement avec les personne concernées.

  16. Tuxicoman Auteur Article

    @Ledom: Je n’ai pas trouvé d’API pour Wuala. A priori, seul le logiciel fourni par Wuala peut uploader des fichiers, ce qui contraint son utilisation par des applis tierces.

    J’abonde dans ton sens pour les fonctionnalités.

  17. Ju

    @Tuxicoman: excuse moi, j’ai pas encore les connaissances nécessaires, je me suis mal exprimé.

    J’ai tous mes albums photos sur des disques durs accessibles via le net. Pour le moment je fonctionne que par FTP, et je voudrais juste trouver une interface du genre réseau social, pour partager ac la famille. Un truc assez simple à installer / administrer. Je me débrouille sur la partie creation web, mais je connais peu de choses sur le gestion réseau, les serveurs etc.

    L’objet de ma quête, si ça peut aider :
    http://www.dlink.co.uk/cs/Satellite?c=Product_C&childpagename=DLinkEurope-GB%2FDLProductCarouselMultiple&cid=1197388178398&p=1197318962342&packedargs=locale%3D1195806691854&pagename=DLinkEurope-GB%2FDLWrapper

    Merci d’avance et désolé si j’écris d’un Mac, j’ai honte, mais c’est celui du boulot

  18. Tuxicoman

    Le problème, c’est que tu as besoin d’un logiciel pour gérer les droits d’accès aux photos. 2 solutions:
    – le contrôle d’accès se fait par authentification sur le serveur. Ca nécessite un logiciel qui tourne en permanence sur le serveur type « galerie »
    – le contrôle d’accès se fait par la possibilité ou non de déchiffrer les fichiers librement accessibles. Ce serait plus l’objet de mon logiciel mais ca suppose que chaque utilisateur ait un espace d’upload qui lui est propre.

  19. Ju

    @Tux: Oki, je comprends. Dans l’idée, je trouve ton principe de réseau beaucoup plus efficace et pratique. Et au passage je serai prêt à participer (dans la mesure de mes capacités) Mais la c’est vraiment du partage à sens unique. C’est plus pour envoyer des photos à la famille qui habite loin. Après je pense que le serveur qui tourne en permanence ne devrait pas poser de problème (je peux le planquer dans mon bureau). Si tu as des noms de logiciels à me recommander, je peux déjà regarder un peu.
    Merci pour tes réponses.

  20. vincm70

    Hello,

    Mon idée a partir de de la tienne.

    Sarah envoie fichier à Paul.

    *Paul est déconnecté :

    Fichier est mit en Liste d’attente dupliquée et chiffré sur différents users . ( se vide,exemple: délai de 4 mois avant suppression).

    Fichier de liste d’attente stocké en priorité chez Sarah (emetteur) et une liste d’ users connu du client de Paul sélectionné selon leur connectivité régulière.

    *Paul se connecte :

    Son client cherche dans les liste d’attentes de ses amis et celle de sa liste d’user (choisi selon leur connectivité régulière).
    Paul reçoit son fichier et la liste d’attente se libère.

    Paul a donc un seul exemplaire des ses fichiers sur son PC. (problème si crash, sa page en ligne que si lui en ligne).

    Paul pourrais choisir ou stocker des duplicatas :
    – utilisé le réseaux P2P

    – utilisé en complément un stockage cloud online (dropox) ou gerer sa sauvegarde en local (NAS).

    S’il choisi de stocker ses fichiers sur les reseaux P2P il pourra avoir un affichage hors ligne de sa page de réseau social.
    Ses amis ou autres users (si il veut que cela soit accessible a tous le monde) pourront avec le duplicata avoir un accès hors ligne. ( principe profil social public , privé).

    Nota pour la disponibilités du fichier liste d’attente :
    Les gens reste de plus en plus connecté en permanence. De plus les réseaux sociaux, sont de plus en plus utilisés sur les smartphones.
    Nos box sont connectées en permanence et permettent de stocker des données, des services ( a développer).

    Autres idées :
    La notion de réseaux social prend toute sa forme quand elle permets aux gens de se rencontrer , d’échanger des services, des objets.
    Les smartphone peuvent aussi apporter la localisations geographique permettant l’apport de nombreux services covoiturage, pret de livres etc….

    Ouh je suis parti loin… J’arrete. lol C’est pas moi qui le ferais je suis un petit Guiks qui ne sait pas programmer grand chose.

  21. Tuxicoman Auteur Article

    @vincm70 : Un des problèmes que je vois dans ton système est Que se passe t il si la liste d’attentes des users connus de Paul est saturée? On ne peut plus écrire à Paul? Donc Paul dépend de la connectivité de ses amis qui peut être fortement variable.

    Je pense qu’à terme, chacun aura sa homebox privée pour héberger ses données et les partager.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.