mercredi, mars 10, 2010

Un réseau social en P2P

Ouels seraient les principes sur lesquels un réseau social sûr et décentralisé pourrait reposer? L'idée est de pouvoir continuer à partager ses informations, photos, nouvelles... en maintenant un bon niveau de sécurité, et un contrôle fin sur les individus avec lesquels on partage des données, le tout sans dépendre d'une organisation en particulier. Voyons voir les exigences d'un tel système:

  • Chaque participant possède une ou plusieurs identités infalsifiables. Il ne devrait pas être possible de se faire passer pour quelqu'un d'autre, mais l'on ne peut pas non plus obliger un utilisateur à se limiter à une seule identité, assurant ainsi un meilleur anonymat

  • Chaque identité peut publier des informations sur le réseau, soit publiques, soit réservées à d'autres identités particulières, permettant de choisir qui peut voir certaines informations

  • Chacun peut héberger ses propres données s'il le désire, ou les héberger chez un tiers de confiance. L'on peut soi-même se déclarer tiers de confiance, et héberger les données de ceux qui le souhaitent

  • Une identité peut changer à tout moment de tiers de confiance

  • Chaque nœud est connecté à d'autres nœuds en un maillage qui permet le routage et la publication des informations.

  • Il doit être possible d'utiliser le système à partir d'un navigateur

Je ne suis pas sûr qu'un système remplissant toutes ces combinaisons est possible, mais on doit pouvoir faire bien mieux que ce qui existe déjà.

Je pense qu'une identité doit se baser sur un système de clé privée/publique. Ainsi, l'utilisateur peut signer électroniquement un message, garantissant sa provenance. Un utilisateur peut également crypter ses données, par exemple en utilisant une clé symétrique unique pour chaque donnée. La clé est ensuite cryptée en utilisant la clé privée de chaque identité avec qui je souhaite partager ma donnée.

Tout ceci doit bien évidemment fonctionner sans que l'utilisateur aie à s'en préoccuper. Exemple: je prends une photo de mon chien. Je me connecte sur le site Web de mon tiers de confiance, l'y envoie, et en quelques clics dans ma liste de contacts, j'ai ajouté John, Paul, George et Ringo comme étant autorisés à la regarder. En fait, mon tiers de confiance a sauvé l'image en la cryptant. Quand je donne la permission à John de la regarder, le système crypte la clé symétrique de l'image avec la clé publique de John, puis envoie un message signé à John pour lui signaler la photo. John décrypte la clé, vérifie que c'est bien moi qui l'ai envoyée, et se connecte chez mon tiers de confiance pour y regarder mon clébard. Il y ajoutera un commentaire, signé électroniquement.

Un nouveau nœud devrait connaître au moins un des nœuds existants, afin de lui demander qui sont ses voisins, et se créer sa propre liste de proximité. Certains nœuds pourraient régulièrement maintenir la liste de toutes les identités du réseau, afin de faciliter les recherches. En enregistrant une identité "amie", on enregistre également son nœud, à qui l'on enverra toutes les mises à jour nécessaires lorsque l'on publie des informations à partager.

Un nœud pourrait déclarer une liste de nœuds amis, chez qui il duplique ses propres données, ce qui assure la continuité en cas de panne. L'utilisateur pourrait facilement décider de changer de tiers de confiance, en décidant qu'un nœud qui duplique ses données devient nœud primaire. Le seul moment où l'on doit faire confiance à un nœud est lorsque l'on effectue un changement, comme envoyer une nouvelle donnée, ou autoriser d'autres identités.

Un "mauvais" noeud, qui par exemple spamme les autres noeuds, ou ne suit pas correctement les spécifications, se trouverait rapidement blacklisté par les autres, permettant de maintenir la bonne santé du réseau. Étant décentralisé, l'on peut également espérer qu'un tel système serait raisonnablement efficace, les utilisateurs qui échangent le plus de données étant à même de se retrouver sur le même nœud ou sur des nœuds proches.

Bon, ceci ne ressemble pas vraiment à un Facebook-killer, mais qui sait, c'est peut-être une possibilité pour les utilisateurs de réseaux sociaux de se prendre en main et de partager ses données de la manière dont ils le souhaitent!

2 commentaires:

Unknown a dit…

Si l'interface est bien pensee histoire de faire tout le travail de fond automatiquement, pourquoi pas...

Socrate a dit…

C'est marrant, j'ai recement regarde une conference par eben moglen qui parlait de cela, un facebook sans l'espionnage gratuit!