#pair-à-pair

  • RFC 7574 : Peer-to-Peer Streaming Peer Protocol (PPSPP)

    Le #pair-à-pair est un succès énorme de l’Internet et du contenu en quantités impressionnantes est échangé tous les jours avec des techniques fondées sur ce principe. Toutefois, il s’agit surtout de téléchargement (obtenir un contenu statique) alors qu’on voudrait pouvoir utiliser le même concept, le pair-à-pair, pour du ruissellement (streaming), afin de distribuer du contenu dynamique, comme un évenement en train de se produire et qu’on filme. C’est ce que permet le nouveau protocole #PPSPP (Peer-to-Peer Streaming Peer Protocol), que normalise ce #RFC. Son but est de fournir l’équivalent de BitTorrent pour du contenu dynamique, et beaucoup de concepts de PPSPP sont très proches de #BitTorrent (cf. son cahier des charges, dans le RFC 6972).

    http://www.bortzmeyer.org/7574.html

    #P2P #streaming

  • Oubliez le cloud, l’avenir est au brouillard - Wall Street Journal
    http://alireailleurs.tumblr.com/post/87284404606

    Pour Cisco et IBM l’avenir n’est plus au #cloud_computing, l’informatique en nuage, mais au fog computing, c’est-à-dire au brouillard informatique, rapporte Christopher Mims pour le Wall Street Journal. Le brouillard se compose de tous les ordinateurs qui sont déjà reliés ensemble autour de nous pour faire par exemple qu’un appareil qui a récupéré une mise à jour logicielle les distribue aux autres appareils plutôt qu’il n’ait recours à l’internet et au nuage pour se faire. Le but bien sûr, économiser de la bande passante. 

  • Les techniques fondées sur le #pair-à-pair sont souvent présentées comme permettant un Internet sans centre et sans autorité. Ce n’est vrai que si on ne se préoccupe pas de sécurité. Dès qu’on est confronté à des méchants qui tentent délibérement d’attaquer le réseau, le problème est bien plus complexe. Désolé de jouer les porteurs de mauvaise nouvelle mais la plupart des promoteurs du pair-à-pair se font des illusions.

    http://www.bortzmeyer.org/pairapair-securite.html

    #cccp #sécurité_informatique #Sybil

    • Merci pour votre article qui est assez intéressant. Cependant, je ne suis pas tout à fait d’accord avec vous quand vous dites que n’importe qui peut sortir 20 000 machines virtuelles pour spammer le réseau. Cela marchera quelques jours au mieux et puis les adresses IP de ces machines vont se faire banir de la plupart des clients (en IPv6, on banira le préfixe).

    • Dans un réseau maillé (comme qaul, que je citais dans mon article), cela ne marchera pas puisque même l’allocation des adresses est contrôlée par les pairs.

      Dans une DHT sur l’Internet, avec des adresses IP publiques (je passe sur l’allocation pas du tout pair-à-pair des adresses IP...), qui va gérer la liste noire ? Précisément le composant central.

      Le problème est difficile. Des centaines de chercheurs ont déjà bossé dessus. On ne le résoudra pas avec une idée « dos de l’enveloppe ».

    • Les réseaux de confiance (GPG) ne sont-ils pas sensés répondre à cette problématique ? Il y a une hiérarchie, mais elle est relative à chacun des pairs.

    • Tu ne peux pas mettre dans le même panier un protocole de la couche application comme Bittorrent et un de la couche réseau comme Qaul, ce n’est pas la même problématique. Un protocole de la couche application a déjà à sa disposition l’identifiant de la couche réseau, tandis que la couche réseau n’a rien de fiable en dessous. Il est donc beaucoup plus compliqué d’avoir un Qaul fonctionnel qu’un Bittorrent.

      Ça ne veut pas dire pour autant que BT n’est pas un protocole P2P, il l’est relativement à la couche à laquelle il appartient. Quand on le fait tourner par-dessus IP il repose en effet sur un système d’allocation centralisé, mais peut-être qu’un jour on le fera tourner sur une pile réseau entièrement P2P.

      Une précision concernant Bittorrent : la manière de récupérer le hash du torrent est en dehors du champ du protocole. La méthode que tu évoques qui consiste à interroger un moteur de recherche Web n’est pas la seule possible, il existe un client torrent qui implémente une recherche P2P : http://www.tribler.org

  • RFC 6821 : Improving Peer Selection in Peer-to-peer Applications : Myths vs. Reality

    Le trafic du #pair-à-pair peut, on le sait, représenter une bonne part de l’activité d’un réseau, malgré les efforts de l’industrie du divertissement pour diaboliser cette technique. Il y a donc depuis plusieurs années de gros efforts de recherche pour optimiser ce trafic, notammment via l’amélioration de la sélection des pairs. Si je veux télécharger la saison 1 de Being human, et que trois pairs ont les données, auquel demander ? Le bon sens répond « au plus proche ». Mais le concept de « plus proche » est plus flou qu’il n’y parait, et, de toute façon, le logiciel pair-à-pair installé sur ma machine n’a pas forcément accès à toutes les informations nécessaires pour déterminer « le plus proche ». Il existe plusieurs solutions pour résoudre ce problème, mais notre #RFC se penche plutôt sur le méta-problème : la sélection des pairs améliore-t-elle les choses ?

    http://www.bortzmeyer.org/6821.html

    #ALTO

  • Le système GADS (GNU Alternative Domain System, une partie de GNUnet) est un système de nommage réparti, sans racine, et résistant à la censure. Il repose sur des noms donnés localement (et donc sans signification globale unique) et de la cryptographie pour sécuriser.

    Il serait erroné de la comparer au #DNS (Domain Name System). Bien qu’il utilise certaines parties du DNS (comme les mêmes enregistrements - Resource Records) et qu’il a certaines fonctions en commun avec le DNS, GADS a un cahier des charges très différent. Ainsi, il met en objectif principal la résistance aux attaques légales (la censure) et, par contre, ne cherche pas à fournir des noms uniques (un nom GADS comme "Alice" a une signification qui dépend de l’endroit où on est).

    Le principe de base est issu de #SDSI (Simple Distributed Security Infrastructure) : chacun peut nommer comme il veut des ressources (ces noms locaux sont des « pet names », comme ceux de l’ancien /etc/hosts). Et on peut déléguer des noms. Ainsi, Alice peut avoir des ressources nommées "bob" et "charlie" (noms qui n’ont de signification que pour elle) et les noms créés par Bob et Charlie sont accessibles à Alice. Si Bob a une ressource nommé "denise", Alice peut accéder à bob/denise. Si Charlie nomme la même ressource "girlfriend", le nom charlie/girlfriend marchera aussi, pour Alice (la syntaxe gros-boutienne que j’utilise est inspirée des noms de fichiers Unix et l’absence de / initial illustre bien le fait que tous les noms, dans ce système, sont relatifs).

    GADS utilise, lui, la syntaxe petit-boutienne des noms de domaines, avec de pseudo-TLD, notamment .GADS. Ainsi, denise.bob.gads signifie, pour Alice, la ressource nommée "denise" créée par la ressource que j’ai nommée "bob". Pour un autre utilisateur de GADS, ce nom signifiera autre chose. (Rappel : bien que cela n’ait pas encore été démontré mathématiquement, il est largement considéré comme impossible d’avoir à la fois la sécurité, l’unicité des noms, des noms mémorisables et l’absence de hiérarchie).

    Pour sécuriser le processus de résolution, GADS utilise la cryptographie. Chaque ressource a une clé avec partie publique et partie privée. La clé est générée localement (pas d’autorité de certification). Les enregistrements sont signés avec la clé privée. La clé publique sert pour la délégation. Pour que denise.bob.gads marche, Bob met la clé publique de Denise (après, on le suppose, des vérifications) dans ses enregistrements. On note qu’on ne choisit donc pas le nom sous lequel les autres vous désignent (voilà d’intéressantes perspectives juridiques si je fais pointer fournisseur-de-kadhafi.stephane.gads vers le site Web d’Amesys...)

    Les clés publiques peuvent être aussi utilisées dans le pseudo-TLD .ZKEY, qui, lui, fournit des noms quasi-uniques (mais ni mémorisables, ni facilement résolvables).

    Voilà pour le principe. On note qu’il existe des tas de détails à régler ensuite. D’abord, la résolution. Je n’ai pas étudié ce point en détail mais GADS ne semble pas avoir l’équivalent de la résolution récursive du DNS. Soit un nom est dans la base locale, soit on le cherche dans une #DHT commune (le système #R5N). Cette DHT est vulnérable aux attaques (par exemple de type Sybil).

    Parmi les autres détails que traite GADS, il y a celui de la réversibilité (si Alice envoie un message à denise.bob.gads, Denise n’a pas forcément de nom pour joindre Alice en réponse) et celui des protocoles qui tiennent pour acquis l’existence de noms uniques (comme HTTP avec son en-tête Host :). À chaque fois, GADS a dû développer une solution (il est très rare, dans les projets de « nommage alternatif », de voir un tel souci du détail).

    Les fanas de la gouvernance Internet noteront que GADS est en traind’étudier la possibilité de mettre ses pseudo-TLD (comme .GADS ou .ZKEY) dans le registre des TLD spéciaux <http://www.iana.org/assignments/special-use-domain-names/special-use-domain-names.xml>.

    Mon avis sur GADS ? Le système est bien conçu techniquement et est prometteur. Les auteurs sont des experts du pair-à-pair et ont bâti sur la vaste expérience existante dans ce domaine. Surtout, ils sont honnêtes : contrairement aux escrocs des racines alternatives, ou aux zozos comme Peter Sunde qui n’ont jamais compris le triangle de Zooko (l’impossibilité d’avoir à la fois mémorisabilité, sécurité et absence de hiérarchie), ils jouent cartes sur table dès le début, en disant franchement qu’ils renoncent à l’unicité des noms.

    À noter que le résumé du DNS dans le mémoire de Schanzenbach contient plusieurs erreurs sérieuses. Par exemple, le schéma 2.3 est faux pour la résolution récursive (le texte est par contre correct). Et le vocabulaire est souvent flou (il dit parfois à tort que le DNS est centralisé et parfois qu’il est réparti).

    La page officielle de GNUnet : <https://gnunet.org> et celle de GADS <https://gnunet.org/gns> Le code est en <https://gnunet.org/gnunet-094>

    Plus détaillé et plus récent, le mémoire de master de Martin Schanzenbach, consacré à GADS et à son implémentation : <https://gnunet.org/schanzen2012thesis> et le PDF car il n’est pas facile à trouver <https://gnunet.org/sites/default/files/schanzen2012msc.pdf>

    L’article de Rivest sur SDSI, l’ancêtre immédiat de GADS : <http://people.csail.mit.edu/rivest/sdsi10.html>

    Mon article sur l’impossibilité d’avoir à la fois sécurité, unicité et non-hiérarchie : <http://www.bortzmeyer.org/no-free-lunch.html>

    #GADS #censure #pair-à-pair #GNUnet

  • RFC 6646 : DECoupled Application Data Enroute (DECADE) Problem Statement

    Le groupe de travail DECADE de l’#IETF travaille à optimiser les applications #pair-à-pair notamment en leur permettant de stocker facilement des données dans le réseau (on devrait dire le #cloud, pour que ce RFC se vende mieux). Ce #RFC décrit précisement les problèmes que DECADE essaie de résoudre, les solutions étant prévues pour de futurs documents. Le principal problème identifié est de doter les applications P2P d’accès à des caches dans le réseau, évitant d’utiliser de manière répétée des liens coûteux et/ou lents.

    http://www.bortzmeyer.org/6646.html

  • RFC 6537 : Host Identity Protocol Distributed Hash Table Interface

    Dans tout protocole réseau séparant le localisateur et l’identificateur, il y a une grosse question : comment relier les deux ? Comment, lorsqu’on ne connait que l’identificateur d’une machine, trouver son localisateur afin de lui envoyer un paquet ? Le protocole #HIP a plusieurs solutions possibles et ce #RFC de l’IRTF en propose une nouvelle : faire appel à une #DHT.

    http://www.bortzmeyer.org/6537.html

    #Séparation-Identificateur-Localisateur #pair-à-pair