Securite Des Reseaux P2P

  • Upload
    solaf1

  • View
    462

  • Download
    1

Embed Size (px)

Citation preview

LABO (www.labo-asso.com) - Patrick MARLIER

Scurit du Peer-to-Peer

LABO (www.labo-asso.com) - Patrick MARLIER

Introduction

En quelques annes seulement, internet a connu un vritable boom, offrant aux utilisateurs du monde entier un moyen rapide et efficace pour se partager des informations. L'augmentation considrable du nombre de transfert de fichiers est aujourd'hui de plus en plus important et la taille des fichiers transfrs a galement tait multiplie ces dernires annes. Il n'est plus rare aujourd'hui de voir des changes de plusieurs Giga octets de donnes sur internet. Cet accroissement des changes montre aujourd'hui les limites du vieux modle client/serveur. Malgr une augmentation considrable de leur puissance de calcul, les serveurs ont de plus en plus de difficults rpondre aux demandes de tous les clients et on s'oriente de plus en plus vers des architectures N-tiers pour tenter de rpartir la charge. D'un autre cot, on peut remarquer, depuis quatre ou cinq ans, un vritable engouement pour les rseaux d'change de fichiers. Ces "Peer-to-Peer" reprsentent aujourd'hui une partie considrable des changes sur internet. Leur dveloppement est li en grande partie l'augmentation des capacits matriels (capacit de stockage, bande passante) des internautes et intressent de plus en plus les grandes entreprises. Des socits comme RedHat utilisent aujourd'hui les Peer-to-Peer pour distribuer leurs produits afin de soulager leurs serveurs (la taille des distributions linux atteignant plusieurs Giga de donnes). Les Peer-to-Peer ne se limitent plus aujourd'hui au partage de fichiers et de nombreuses applications, reposant sur le mme principe, ont vu le jour comme par exemple des logiciels de tlphonie, ou encore de travail collaboratif. Le fait d'utiliser des architectures dcentralises ou semi dcentralises a conduit invitablement l'apparition de nombreux problmes de scurits pour les utilisateurs. De plus, les protocoles d'change de fichiers sont souvent considrs comme une violation des droits de proprit intellectuelle et subissent donc des attaques incessantes des socits reprsentant les ayant droits. Ces difficults sont l'origine du dveloppement permanent des Peer-to-Peer. On assiste aujourd'hui l'apparition de protocoles crypt et "anonyme", etc.

Nous commencerons tout d'abord expliquer ce qu'on entant par "Peer-to-Peer" puis nous analyserons deux des protocoles les plus utiliss aujourd'hui, savoir eDonkey et BitTorrent. Nous tudierons ensuite les diffrents problmes relatifs la scurit que l'on peut rencontrer en utilisant des rseaux Peer-to-Peer.

Page 2 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

Sommaire1 Quest ce quun Peer-to-Peer ............................................................. 4 1.1 Dfinition ....................................................................................... 4 1.2 Avantages des Peer-to-Peer.............................................................. 5 1.3 Exemple de Peer-to-Peer .................................................................. 6 1.4 Catgories de Peer-to-Peer ............................................................... 6 1.4.1 Peer-to-Peer structurs .............................................................. 6 1.4.2 Peer-to-Peer non structurs ........................................................ 7 1.4.3 Autre classification ..................................................................... 7 1.5 Statistique dutilisation des rseaux ................................................... 9 2 tude du fonctionnement de deux P2P clbres .............................. 10 2.1 eDonkey ...................................................................................... 10 2.1.1 Fonctionnement gnral ........................................................... 10 2.1.2 Les serveurs ........................................................................... 10 2.1.3 Les clients .............................................................................. 12 2.1.4 Fonctionnement dtaill dun client ............................................ 13 2.1.5 Les fichiers sur le rseau .......................................................... 16 2.1.6 Liste dattente de tlchargement .............................................. 17 2.1.7 Liste des serveurs eDonkey....................................................... 18 2.1.8 Problmes deDonkey et quelques solutions ................................ 18 2.1.9 Kad Network ........................................................................... 22 2.2 BitTorrent .................................................................................... 23 2.2.1 Principe de fonctionnement ....................................................... 23 2.2.2 Terminologie ........................................................................... 24 2.2.3 Cration dun torrent ................................................................ 25 2.2.4 Indexation des torrents et recherche dinformations ..................... 27 2.2.5 Tlchargement des fichiers : connexion au tracker ..................... 28 2.2.6 Tlchargement des fichiers : connexion aux pairs....................... 28 2.2.7 BitTorrent et les autres P2P ...................................................... 30 2.2.8 Dveloppement de BitTorrent .................................................... 32 3 Identification des risques ................................................................ 33 3.1 Virus et Spyware ........................................................................... 33 3.2 Fichiers truqus ............................................................................ 34 3.3 Failles de scurit.......................................................................... 36 3.4 Spoofing ip : Restrictions des IP / Usurpation didentit ..................... 36 3.5 Utilisation des ressources / DDoS .................................................... 38 3.6 Actions en justice .......................................................................... 40 3.1 Administration difficile ................................................................... 41 3.2 Absence danonymat ..................................................................... 42 3.2.1 Identification par adresse IP ..................................................... 42 3.2.1 Identification des protocoles ..................................................... 42 3.2.2 Solutions au problme de lanonymat ? ...................................... 44 4 Attaques spcifiques aux rseaux P2P............................................. 45 4.1 Sybil Attack .................................................................................. 45 4.2 Eclipse ......................................................................................... 45 4.1 Pollution de DHT ........................................................................... 46

Page 3 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

1 Quest ce quun Peer-to-Peer1.1 DfinitionLe terme "Peer-to-Peer", "poste poste" ou "pair pair" en franais (ou plus couramment P2P), dsigne un modle de rseau informatique dont les lments (les nuds ou "peer") sont la fois clients et serveurs lors des changes. Ce modle a permit une dcentralisation des rseaux, en offrant une alternative aux traditionnels architectures client/serveur ou des architectures N-tiers. Comme leur nom lindique, les Peer-to-Peer permettent dtablir des communications directes, dgal gal, entre les diffrents nuds du rseau, qui peuvent alors changer diffrents types dinformations sans passer par un serveur central. Napster, apparu en juin 1999, est considr comme le premier P2P, mme sil possdait une architecture centralise. Cest en effet le premier logiciel dchange avoir connu un succs mondial. Lutilisation des Peer-to-Peer est aujourdhui en pleine croissance et de nombreux logiciels ont t dvelopps. On comptait environ 5 millions personnes tlchargeant des fichiers via les P2P en 2003, 7 millions en 2004 et prs de 9 millions en 2005.

Croissance du nombre dutilisateurs des rseaux Peer-to-Peer

Page 4 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

1.2

Avantages des Peer-to-Peer

Ds leur apparition, les P2P se sont distingus des architectures traditionnelles grce leurs diffrents avantages. En effet, ils sont souvent assimils, par le grand public, aux logiciels de partage de fichiers, cependant leur application ne s'arrte pas l. Ils permettent de mutualiser les ressources de milliers dordinateurs dont les capacits sont sous-exploites par leurs utilisateurs : La rpartition de la charge : les changes sont grs directement par les paires, ce qui limine un des principaux problmes des architectures clients/serveurs : la rpartition de la charge. Les P2P ne posent pas le problme de congestion des rseaux qui peuvent se produire autour dun serveur central devant rpondre de trs nombreuses demandes. Chaque pair gre ses propres donnes et rpond aux requtes des autres pairs. La capacit de stockage : chaque nud ne possde quune infime partie des donnes du rseau, quil partage avec les autres ordinateurs. La capacit de stockage est ainsi infiniment suprieure celle dun serveur traditionnel, qui ne pourrait supporter une telle quantit dinformation (que ce soit au niveau technique ou au niveau du cot de mise en place). La puissance de calcul : pour les utilisateurs moyens, chaque ordinateur utilise moins de 20% de sa puissance de calcul: "travailler sous Word ou Excel (voir les 2 en mme temps) n'occupe le processeur que de manire trs faible, le reste tant simplement inutilis.1" Une application rpartie, s'activant en gnral avec l'cran de veille des ordinateurs, base sur la technologie Peer-to-Peer peut donc permettre de mutualiser cette puissance non utilise pour des recherches demandant des capacits considrable, quun serveur isol ne peut possder. Les Peer-to-Peer apparaissent galement dans les entreprises qui souhaitent utiliser leurs nouvelles possibilits : Outils de travail collaboratif (gestion d'agenda, etc.) Exemple : le logiciel "groove2", utilis dans les entreprises permet le partage des documents d'un projet, de conduire des runions, assigner des tches, etc. Rsistance aux pannes (sauvegardes croises) : les donnes tant prsentes sur de nombreux postes diffrents, les P2P peuvent donc tre utiliss pour effectuer facilement des sauvegardes rparties travers le rseau, vitant toutes pertes dinformations, ou la mise en place de lourds systmes de sauvegardes. Extensibilit : auto-configuration des pairs. Il est trs facile de rajouter de nouveaux pairs. Ceux-ci sont grs dynamiquement.

1 2

http://blackholesun.neuf.fr/Boinc.html Voir le site de la socit Groove Networks : http://www.groove.net

Page 5 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

1.3

Exemple de Peer-to-Peer

Les Peer-to-Peer sont utiliss dans diffrents domaines. Le plus connu est le partage de fichier travers internet. Cependant, diverses applications se sont dveloppes partir de ce modle. On retrouve donc : Le partage de fichiers avec des logiciels comme KaZaA ou emule Les logiciels de tlphonie sur Internet dont le plus populaire Skype. Des programmes de messageries instantanes (ICQ, AIM) La Tlvision par P2P: Les fondateurs de Kazaa et de Skype prparent la tlvision via le peer-to-peer ("Venice Project") Des moteurs de recherche tels quAmoweba (moteur de recherche distribu en P2P bas sur lutilisation intelligente des liens favoris des internautes). Des projets permettant le partage de la puissance de calcul d'ordinateur du monde entier, tels que le "projet SETI" dont le but est de recherche des traces d'Intelligence Extra-terrestre. Des Plate-forme de dveloppement telle que "JXTA3", technologie dveloppe par Sun Microsystems, qui a pour but de pouvoir interconnecter n'importe quel systme sur n'importe quel rseau. Elle utilise des protocoles bass sur XML et doit permettre de mettre en relation des ordinateurs, des tlphones portables, des PDA, etc. pour les faire communiquer de manire dcentralise. "Java Binding" est actuellement la version la plus abouti. Le partage dinformations : informations collaboratives pour la dtection de spam (cf. Bibliographie : Spam Attacks: P2P to the Rescue)

Par la suite, nous nous intresserons plus particulirement aux architectures permettant le partage de fichier.

1.4

Catgories de Peer-to-Peer

Les rseaux Peer-to-Peer sont classifis en deux catgories : les structurs et non structurs.

1.4.1

Peer-to-Peer structurs

Les P2P structurs sont bass sur l'tablissement dune DHT (Distributed Hash Table) permettant de "placer" les nouveaux nuds aux seins du rseau. Chaque nud reoit une liste de voisins avec lesquels il pourra communiquer. Il s'agit ici de voisins "logiques", ceux-ci pouvant se trouver l'autre bout du monde. De plus, chaque pair est responsable dune partie spcifique du contenu du rseau. Ils sont en gnral identifis par un couple cl/valeur. Elle permet de raliser des recherches avec un nombre de messages croissant de faon logarithmique, contrairement certain algorithme proposant des techniques de "flood4".http://en.wikipedia.org/wiki/JXTA / http://www.sun.com/software/jxta/ Flood: (inondation en franais) Cette technique permet de propager la requte de proche en proche, chaque peer la transmettant ces voisins. Il y a donc des redondances, les peer pouvant avoir des voisins similaires.4 3

Page 6 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Parmi les algorithmes structurs, on peut citer: - CAN - Chord - Tapestry - Pastry - Kademlia utilis par exemple par Overnet - Viceroy - Freenet

1.4.2

Peer-to-Peer non structurs

Un p2p est non structur quand les liens entre les nuds sont tablis de faon arbitraire. La communication entre les nuds est donc plus difficile grer. Parmi ces P2P, on peut citer: - Gnutella - Fastrack dont le client le plus connu est KaZaA - BitTorrent - eDonkey utilis notamment par le logiciel eMule

1.4.3

Autre classification

Il est galement possible de regrouper ces architectures en 3 grands groupes souvent utilises pour classifier les rseaux P2P : - P2P centralis : Il existe un serveur central, grant l'identit des utilisateurs, lindexation des partages, les recherches et la mise en relation des pairs : le serveur donne chaque client l'adresse des pairs possdant le fichier recherch. Le client se connecte alors ce pair pour changer directement les donnes. Les fichiers ne passent donc pas par le serveur. L'index est donc centralis, mais les fichiers sont dcentraliss. Ce type de P2P est considr comme l'architecture la plus faible car il suffit de s'attaquer au serveur central pour faire tomber le rseau. Exemple: rseau Napster.

Principe de fonctionnement dun P2P centralis

Page 7 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER - P2P Hybride : Ces rseaux utilisent des nuds spciaux appels "super-peer" ralisant les indexations des fichiers partags et servant d'intermdiaire pour les nuds qui leur sont rattachs. Ils sont choisis en fonction de leur puissance de calcul, leur bande passante Ce type d'architecture est notamment utilis dans les rseaux FastTrack tel que KaZaA. Les serveurs utiliss dans eDonkey2000 peuvent eux aussi tre vu comme des super-peers (Trs nombreux serveurs spcialiss communiquant entre eux et servant d'intermdiaire pour les clients).

Principe de fonctionnement dun P2P Hybride

- P2P "purs" : Les rseaux totalement dcentraliss sont dits "pures". Dans ce type d'architecture, l'ensemble des nuds sont gaux et jouent le mme rle. Chaque pair gre donc les recherches et le partage, sans passer par un serveur central ou des super-peer, en utilisant en gnral des techniques de "flood" ou des algorithmes spcifiques.

Principe de fonctionnement dun P2P pur

Cette classification permet de mieux rendre compte du niveau de "dpendance" du rseau. Les rseaux bass sur l'utilisation de serveurs / de super-peer tant beaucoup plus sensible que les rseaux "purs". Dans un rseau totalement centralis du type Napster, il suffit de bloquer le serveur central pour bloquer le rseau dans son intgralit.

Page 8 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

1.5

Statistique dutilisation des rseaux

Les P2P permettant l'change de fichiers se sont considrablement dvelopps depuis la disparition de Napster en 2002. Parmi les rseaux les plus populaires aujourd'hui, on retrouve les rseaux FastTrack avec le logiciel KaZaA ou encore le rseau eDonkey (avec le logiciel eMule) qui est actuellement le plus utilis.

Importance de lutilisation des principaux Peer-to-Peer dans le monde

Ainsi, avec prs de 10 millions d'utilisateurs connects simultanment sur ces diffrents rseaux, n'importe quel moment de la journe, les Peer-to-Peer constituent un phnomne incontournable en informatique aujourd'hui. On remarquera que le rseau BitTorrent pourtant trs populaire puisqu'il s'agit d'un des deux premiers P2P les plus utiliss, n'apparat pas dans ce classement. Il est en effet difficile d'tablir des statistiques d'utilisation prcises. L'utilisation des P2P est donc srement plus importante que ce que montrent ces statistiques et pourrait atteindre prs de 20 million d'utilisateurs simultans, ce qui reprsente une partie non ngligeable du trafic sur internet, soit prs de 60% du trafic mondial fin 20045.

5

http://www.cachelogic.com/home/pages/studies/2005_07.php

Page 9 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

2 tude du fonctionnement de deux P2P clbres2.1 eDonkeyA partir de 2003, le rseau eDonkey devient trs populaire auprs du grand public souhaitant partager des fichiers. Il est aujourd'hui le Peer-to-Peer le plus utilis.

2.1.1

Fonctionnement gnral

Ce rseau fonctionne dans un type de P2P hybride. Il dispose de nombreux serveurs pouvant tre considrs comme des super-peers (S1, S2 et S3 sur la figure ci-dessous). Ils permettent de grer l'indexation des donnes, les recherches et la mise en relation des utilisateurs pour commencer les changent. eDonkey permet uniquement lchange de fichiers. Son principal atout est de pouvoir partager les parties de fichiers dont on dispose tout en continuant de le tlcharger.

Structure gnrale du rseau eDonkey

2.1.2

Les serveurs

Les serveurs ED2K sont les points dentre du rseau. Ils permettent aux pairs de se faire connatre sur le rseau et d'en rencontrer dautres. Ils permettent dindexer lensemble des fichiers des clients connects et ainsi de leur proposer un moteur de recherches. La petite histoire des serveurs eDonkey (Jed McCaleb lugdunum) Au lancement du rseau, un seul logiciel serveur tait disponible, celui cr par Jed McCaleb. Cependant, le code serveur tait peu maintenu et souffrait de problmes doptimisation, de bugs. Un internaute passionn par ce rseau, nomm "lugdunum" a propos une version du serveur modifie par reverseengineering en ajoutant du code assembleur. Ces patchs permettaient alors de dcupler les capacits des serveurs passant alors denvirons 10 000 utilisateurs plus de 100 000 utilisateurs par serveur.

Page 10 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER McCaleb dcida de lui donner les sources du serveur mais lugdunum, la vu des sources, prfra rcrire entirement le code. La premire version de cette rcriture a apport plus de 30% de performance supplmentaire. Aujourdhui, il nexiste plus que la version lugdunum du serveur, qui est maintenu rgulirement. Malgr le fait que lugdunum ait rcrit entirement le code source du serveur, il ne le diffuse pas et ne mets disposition que des binaires pour les diffrentes plates-formes. Linstallation des serveurs est trs simple, il suffit de tlcharger le binaire correspondant et lexcuter. Un fichier de configuration permet de modifier lgrement le comportement du serveur. Exemple de paramtres de configuration : Le port dcoute du serveur, par dfaut 4661port=4661

Le nom du serveur: il permet didentifier plus facilement le serveur dans la liste des serveurs proposs aux clients. Il n'y a aucune restriction sur les noms, ce qui peut entrainer certains abus: on suppose que la RIAA6 utilise des noms de serveurs connus pour tromper les utilisateurs. (cf. Razorback)name=eserver 16.44

Le nombre maximum de clients permet dviter une saturation du serveur et un plantage par manque de ressources (DoS).maxClients=1024

La taille maximum des fichiers: si le client envoi une chane suprieure, elle est tronque.max_string_size=140

Le nombre maximum de rsultats retourn par la fonction de recherche. Elle permet dviter de surcharger la connexion et la mmoire du serveur.maxSearchCount=200

Le nombre maximum de serveurs que le serveur peut ajouter dans sa liste. Le but est dviter les attaques par dnis de service.maxservers=4096

Le serveur envoie priodiquement des messages ping pour savoir si la connexion TCP est maintenue. Ce paramtre permet de dfinir lintervalle entre chaque ping.ping_delay=300

Le paramtre thisIP est trs important car "eserver" ne dtermine pas lip publique du serveur.thisIP=

6

Association d'enregistrement amricaine des disques (Socit de droit d'auteur)

Page 11 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Les fichiers peuvent tre des "faux fichiers", c'est--dire que le nom du fichier ne correspond pas au contenu. Pour viter cela, les clients peuvent donner une valuation, un commentaire sur ce fichier. Il va tre transmis au serveur qui va envoyer ce message aux autres possesseurs du fichier. Ce paramtre va permettre de limiter le nombre maximum de ces messages.warnfakes=0 (A partir de la version 16.50)

Les communications entre les serveurs sont limites car il ny a pas de rel dialogue entre eux mais ils maintiennent juste leur liste de serveurs jour. Si un nouveau serveur arrive, il se dclare auprs de plusieurs autres qui vont avertir leur tour larrive dun nouveau serveur.

2.1.3

Les clients

Le client est srement l'lment le plus important dans le rseau eDonkey car cest lui qui assure rellement la fonction de Poste Poste . Son rle est de : Se connecter un serveur pour indiquer ce quil partage Emettre des requtes de recherche de fichiers Demande les sources possibles pour un fichier demand Tlcharger les fichiers demands sur les sources Vrifier lintgrit et la corruption des fichiers Envoyer les fichiers demands par les autres clients Grer une file dattente des clients Proposer une interface graphique efficace Le client eDonkey2000 eDonkey2000 (MetaMachine) est le premier client utilisant le rseau eDonkey. Cest ce logiciel qui a fait connatre ce rseau, mais ses performances moyennes et sa programmation peu efficace ont engendres la cration dun client concurrent: Emule. La socit MetaMachine a ferm ses portes dfinitivement le 28 septembre 2006 suite des poursuites judiciaire engages la RIAA. La fermeture de lentreprise nempche cependant pas le rseau de continuer fonctionner car il nest pas centralis et donc ne peut pas tre contrl. Le client eMule Emule est le plus rput des clients du rseau eDonkey aujourdhui. Ce logiciel a t dvelopp initialement par un certain Merkur et ses codes sources sont publics (disponible sur sourceforge.net). Le fait quil soit open source a fait apparatre un certain nombre de versions enrichies ou mods , qui sont censes apporter de meilleures performances et dautres options. Il fonctionne uniquement sur les systmes dexploitation Microsoft Windows do la cration dautres clients pour fonctionner sur linux par exemple. Emule propose en plus une extension du protocole deDonkey conue pour la scurit et lutilisation du protocole UDP. Les autres clients On peut citer dautres clients comme mldonkey, amule (linux), shareaza, Une tendance est de crer des logiciels capables dutiliser de nombreux rseaux la fois. Par exemple, MLDonkey (cr initialement par Fabrice Le Fessant de lINRIA) utilise les rseaux eDonkey, Overnet, BitTorrent, Gnutella, FastTrack, Kad Network, OpenNap, SoulSeek, DirectConnect et HTTP/FTP.

Page 12 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

2.1.4

Fonctionnement dtaill dun client

La connexion un serveur La connexion un serveur peut tre de deux types. La premire est la connexion highID: cest celle qui est recommande car elle permet une connexion facile sur le pair. Ce highID correspond ladresse IP du client sous forme dentier. La seconde sappelle le lowID. Cette ID est assign au client quand le serveur na pas russi initier une connexion avec lui. Il est en faite injoignable directement, comme par exemple dans le cas o le pair se trouve derrire un NAT (Network Address Translator) sans PAT (Port Address Translator) ou si un pare-feu filtre les connexions entrantes. Un lowId restreint lutilisation du rseau par le client, et le serveur peut galement rejeter sa connexion. Le lowId est un numro attribu par le serveur pour identifier le client nayant pas dIP publique (ou directement accessible). Ainsi, deux lowId ne peuvent jamais communiquer ensemble sils ne sont pas sur le mme serveur car les serveurs ne schangent pas entre eux les lowId.

Le User ID (ou User Hash): Le client supporte un systme de crdit dans le but dencourager les utilisateurs partager leurs fichiers. Plus le client envoi des donnes des autres clients, plus il gagne des crdits chez ces clients et avance dans leur file dattente. Le User ID est un nombre de 128 bits (16 octets) cr par la concatnation de nombres alatoires. Seules les octets 6 et 15 ne sont pas des nombres alatoires dans le client eMule, la valeur est fixe respectivement 14 et 111.void CPreferences::CreateUserHash() { for (int i = 0; i < 8; i++) { uint16 random = GetRandomUInt16(); memcpy(&userhash[i*2], &random, 2); }

Page 13 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

// mark as emule client. that will be need in later version userhash[5] = 14; userhash[14] = 111; }

Le user ID joue un rle important dans le systme de crdit et cela motive les hackers trouver un user ID disposant de nombreux crdits. Le client eMule implmente un cryptage qui est conu pour viter la fraude. Cette implmentation est un simple change de type challenge/rponse qui repose sur RSA (cryptage cl prive/publique).

Lchange de message lors de ltablissement dune connexion avec le serveur Aprs ltablissement de la connexion, le client et le serveur changent plusieurs messages. Le but de ces messages est de mettre jour leurs informations. Le client commence par offrir au serveur la liste de ses fichiers partags et demande ensuite une mise jour de sa liste de serveurs. Le serveur envoi son statut, sa version de serveur puis sa liste de serveurs connus. Enfin, le client demande les sources pour les fichiers quil est en train de tlcharger. Le serveur rpond par une suite de messages avec les sources pour chaque fichier.

Page 14 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER La recherche de fichiers Le client peut effectuer une recherche de fichiers en donnant une liste de mots cls. Ces mots peuvent tre lis par des oprations binaires telles quOR, AND ou NOT. La figure ci-dessous montre un exemple de recherche :

Exemple de recherche sur un serveur partir dun client eMule

Le serveur va ensuite comparer les mots cls aux noms des fichiers disponibles et va rpondre en envoyant la liste de fichiers correspondants. La recherche peut avoir aussi plusieurs autres paramtres comme le type de fichier, la taille minimum, la taille maximum et lextension du fichier. Les recherches peuvent tre effectues sur le serveur sur lequel le client est connect (TCP), mais il est galement possible d'interroger les autres serveurs de manire non connecte (UDP). Cette recherche permet de trouver plus facilement des fichiers peu rpandus (cette recherche est nomm recherche serveur globale dans eMule). L'utilisateur peut alors choisir le fichier qui lui convient dans la liste. Le client eDonkey peut alors demander au serveur les sources ayant ce fichier. Le serveur va lui retourner la liste des pairs correspondant pour pouvoir tlcharger comme dcrit dans la figure ci-contre.

Page 15 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER La connexion et le tlchargement sur les pairs Aprs avoir rcupr la liste des pairs ayant le fichier ID du serveur, le client va essayer de se connecter ceux-ci. Pour viter une accumulation dattentes de connexion, le client va effectuer une rgulation en essayant de se connecter aux pairs les uns aprs les autres ( sliding window ). Sil y a de trs nombreuses sources, le client peut se limiter un nombre maximum de connexions maintenir. La valeur par dfaut du nombre de connexions maximum sur eMule est de 500 et le nombre de nouvelle connexion est de 20 par seconde. Des messages sont mis en UDP priodiquement entre les pairs pour connatre leur position dans la file dattente. Il y a 3 types de rponses ce message : soit le client est dans la file, soit la file est pleine, soit le fichier nexiste pas. Le mcanisme de callback (ou de rappel)

Dans le cas dun client lowID ne disposant pas dIP directement joignable, le pair highID va demander au lowID dtablir une connexion vers lui par lintermdiaire du serveur. Le serveur va ainsi servir de relai (mcanisme de callback) entre le pair lowID et le pair highID. Le client lowID va donc tablir une connexion vers le highID et ainsi une communication pourra tre ralise entre les deux. Une connexion entre un pair lowID et un autre pair lowID est possible en passant tout le trafic par le serveur. Cependant, cette fonctionnalit nest jamais permise car elle demande des ressources rseaux et systmes trop importantes.

2.1.5

Les fichiers sur le rseau

Le File ID Les File ID sont utiliss pour identifier de faon unique les fichiers sur le rseau et ils sont aussi utiliss pour dtecter la corruption. Le File ID est calcul par hachage du contenu du fichier, cest pour cela quil est aussi appel le File Hash. Ainsi, le File ID a deux rles: le premier est lidentification dune manire unique un fichier et le second est utile pour la dtection de la corruption. Le File hash Les fichiers sont identifis par un hash sur 128 bits calcul par le client et bas sur le contenu du fichier. Ce hash est calcul par lalgorithme MD4. Le fichier est divis en parties de 9,28Mo, dont on calcul, pour chacune d'elles, la somme MD4. Ensuite, lensemble des hashs sont combins, ce qu'on appelle le "hashset". On applique le MD4 sur le hashset pour obtenir le File hash. Page 16 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Gestion de la Corruption (ICH - Intelligent Corruption Handling) Quand un pair a fini de tlcharger une partie du fichier, son hash MD4 est gnr et il le compare la partie du hashset fournie par le possesseur du fichier. Sils sont diffrents, cest que la partie tlcharge est corrompue. Un processus de restauration (ICH) se mets alors en action. Pour viter de re-tlcharger la partie entire de 9,28Mo, ICH reprend uniquement des blocs de 180Ko partir du dbut de la partie corrompu, et chaque bloc tlcharg, le hash est recalcul jusqu ce que la partie ait le mme parthash. Dans le pire des cas, on aura re-tlcharg la partie entire. En moyenne, on gagne 50% du re-tlchargement de la partie du fichier. Bien sr, le client attend que la partie soit vrifie avant de la diffuser dautres clients. Gestion avance de la corruption (AICH - Advanced Intelligent Corruption Handling) Ayant le mme principe que lICH, lAICH 7utilise lalgorithme SHA1 sur des blocs de taille 180 Ko. Il fournit un niveau de fiabilit et dtection de corruption meilleur que lICH. Il permet un re-tlchargement plus fin des parties corrompues. LAICHset (lensemble des hashs de chaque partie) peut tre trs important en mmoire. Il est ainsi stock dans un fichier "known2.met" qui est lu la demande. Ce dcoupage du fichier en plusieurs parties permet aussi denvoyer une partie du fichier mme si lon ne possde pas entirement celui-ci.

2.1.6

Liste dattente de tlchargement

Lorsquun client souhaite tlcharger une partie du fichier sur un autre client, il est plac dans une file dattente de tlchargement. Si la file est vide, alors le pair commence immdiatement le tlchargement. Si au contraire, des clients sont dj en attente, alors il est plac la suite. La file dattente est de taille finie et il est possible que le client soit rejet parce quelle est pleine. Un systme de crdit est mis en place pour aller plus vite dans la file. Le systme de crdits Le systme de crdit permet de tlcharger plus rapidement si on partage beaucoup de donnes, mais aussi dviter que des pairs tlchargent sans participer au rseau. Le pair contribuant au rseau gagne des places dans la file dattente et diminue ainsi son temps dattente pour le tlchargement. Ce systme est bas sur le calcul de rapports8 entre les donnes mises et reues. Les valeurs extrmes des rapports, qui interdisent le tlchargement ou qui place un pair toujours premier dans la file sont vites grce des maxima et minima. Pour viter la fraude, vos propres crdits sont sauvegards par le pair qui accorde ce crdit. La possibilit de dfinir des plafonds dutilisation de la bande passante apporte un quilibre entre lenvoi et la rception de donnes.7 8

http://www.emule-project.net/home/perl/help.cgi?l=1&topic_id=589&rm=show_topic

www.emule-inside.net

Page 17 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

2.1.7

Liste des serveurs eDonkey

Pour accder au rseau, la premire tape est de se connecter un serveur. Le systme tant semi centralis, il faut que le client possde une liste de serveurs (adresse ip et port) sur lesquels il est possible de se connecter. Cette liste est enregistr dans un fichier server.met pour le client eMule et eDonkey2000. Par dfaut, elle contient des serveurs stables , c'est--dire quils sont en permanence disponible pour se connecter. Mais le dynamisme du rseau implique un mcanisme de mise jour de cette liste. Lorsquun client se connecte, le serveur lui envoi sa liste de serveurs. Le client peut alors mettre jour sa liste. Il effectue rgulirement des tests de prsence des serveurs (requte en UDP). Si un serveur ne rpond pas dans un dlai imparti, il est marqu inactif dans sa liste et un compteur de tentative est incrment. Si le compteur dpasse un seuil (seuil configurable), le serveur est supprim de la liste. Lorsquun nouveau serveur arrive sur le rseau, il annonce sa prsence aux autres serveurs et sera ainsi ajout dans leur liste. Les serveurs testent rgulirement lactivit des autres serveurs. Si lun deux ne rpond plus, il sera supprim de la liste.

2.1.8

Problmes deDonkey et quelques solutions

Les problmes rseaux Le problme du NAT (Network Address Translator) Beaucoup de personnes utilisent un routeur pour se connecter internet. Ils ne disposent alors que dune seule adresse publique, celle du routeur. Il faut donc rediriger les ports TCP et UDP de eMule vers le bon client (PortForwarding ou PAT). Dans le cas o cette redirection nest pas effective, le client pourra uniquement se connecter en lowID et ainsi ne va pas tre privilgi pour le partage. Les extensions non respectueuses du protocole Le protocole eDonkey nest pas pens pour la scurit ainsi que son respect. En effet, lorsque seul le client eDonkey2000 existait, un logiciel nomm eDonkeyBot9 a mis en pril le rseau. Ce logiciel, cr par un hacker utilisant le pseudonyme "pb33", utilise des mthodes ne respectant pas le protocole. Il permettait de limiter lenvoi de donnes (upload) ou mme de le couper compltement, de rechercher des sources de faon agressive (multiple demande au mme serveur et demande en UDP tous les serveurs connus en mme temps), de mettre jour automatiquement la liste des serveurs eDonkey, de changer de serveur priodiquement toutes les x heures (dans le but dessayer de trouver encore plus de sources).

9

http://tdn.no-ip.org/pl/tdn.pl/tools_bot.html

Page 18 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Lensemble de ces fonctionnalits a fait chuter les performances du rseau cause dun surnombre dinformations de contrle. Heureusement, larrive deMule avec des fonctionnalits plus intelligentes a permis de limiter le dploiement de ce logiciel. Redirection de trafic Le rle du serveur permettant d'indiquer qui est le possesseur dun fichier est un risque pour le rseau. En effet, un serveur avec un binaire spcialement forg peut indiquer toujours une mme source (client ou serveur), quelque soit le fichier demand. Ainsi, on peut crer un DDoS (Distributed Deny of Service) en particulier si le serveur possde de nombreux clients. Lajout dun serveur ne pose pas de problme (grce au paramtre seedIP ou grce un fichier serverList.met) hormis le fait de la ncessite de nombreuses ressources (surtout en bande passante). Failles induites par intgration de bibliothque Aussi bien le serveur lugdunum que le client eMule intgre des bibliothques dveloppes par des tiers. Des failles peuvent tre dcouvertes dans ces bibliothques pouvant ainsi atteindre le logiciel. Le dveloppeur de lugdunum nintgre pas forcement toutes les nouvelles bibliothques. Par exemple, le serveur lugdunum et le client eMule intgrent "Zlib", or des failles ont t dcouvertes dans cette librairie. Ainsi en utilisant le protocole compress, on peut dclencher distance la faille et corrompre la mmoire du serveur/client. eMule a aussi des failles induites par des libraires (inclus statiquement) comme par exemple ID3Lib ou encore CxImage. La plupart de ces failles restent au niveau local et ne permettent pas de prendre le contrle du client distant. Louverture et le non anonymat du pair sur le rseau Lorsque lon se connecte un serveur et partage des fichiers, notre adresse IP est fournie tous les clients dsirant tlcharger un de nos fichiers. Cette diffusion de ladresse, unique au monde, apporte un manque danonymat total au pair. Ainsi, on peut savoir qui dispose dun fichier avec un copyright. Cette mise disposition permet aussi aux pirates de connatre des ordinateurs qu'il serait possible dexploiter. Par exemple, ils peuvent tenter une recherche de ports ouverts pour essayer dinfiltrer lordinateur. Le filtrage deDonkey et loffuscation du protocole Le filtrage des paquets eDonkey est facile mettre en place car les ports utiliss sont souvent ceux par dfaut (4661-4665) et le premier octet de len-tte est 0xE3. Avec laugmentation du filtrage des FAI, les dernires versions eMule offusque le protocole pour le contourner et donne des ports alatoire linstallation. Ltablissement de la connexion entre clients ou entre client et serveur dbute par lchange de cls et ainsi permettre le chiffrement des donnes. Ces donnes ne pourront donc pas tre dcryptes par les routeurs pour effectuer le filtrage. Pour plus dtail, consulter le code source deMule (EncryptedStreamSocket.cpp & EncryptedDatagramSocket.cpp)

Page 19 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Les problmes fichiers On trouve sur le rseau de nombreux fichiers dont le nom ne correspond pas leur contenu (fake file). Pour limiter ce phnomne, plusieurs solutions existent. La premire consiste donner un commentaire et une valuation aux fichiers que lon possde. Le problme est que lorsque lon a tlcharg un fichier et que ce nest pas le bon, on ne le garde pas et le commentaire nexistera plus. En effet, les commentaires sont stocks dans un fichier qui est transmis au serveur lors de la connexion et qui sera effac si le fichier n'est plus partag par l'utilisateur. La deuxime solution est la prvisualisation. eMule intgre cette fonctionnalit (dans le cas dun fichier vido, d'une musique ou d'un fichier d'archive .rar) en tlchargeant dabord le dbut du fichier (les en-ttes sont ncessaires pour identifier le codec et les paramtres) et ensuite dautres parties qui seront assembles pour fournir un extrait . On pourra ensuite dcider de continuer le tlchargement ou de larrter. Un autre problme est le manque de compltude. Il nest pas rare quune personne mette disposition un fichier durant quelques heures et quil ne se connecte plus jamais au rseau. Ainsi, aucun autre pair na ce fichier et ceux qui ont commenc le tlchargement ne pourront jamais le finir. Pour viter ce phnomne, un taux de compltude est calcul et permet de savoir si le fichier est plutt complet ou incomplet chez tous les pairs lors de la recherche. Enfin, un dernier problme concerne lenvoi de fausses donnes. Cet envoi est possible grce la collision de hash MD4. MD4 cre un condensat qui identifie des donnes. Mais il est possible que deux donnes diffrentes donnes la mme empreinte MD4, cest ce que lon appelle une collision. La cration dune collision est dautant plus facilit quil existe des problmes dans MD4. Ce problme est corrig grce AICH qui repose sur SHA1 (nombre de collisions plus faible car condensat plus long et pas de problmes identifis). Les problmes logiciels Besoin en ressources matrielles La limitation du nombre de fichiers que lon partage est de 120 (configuration serveur) et Lugdunum (le crateur des serveurs) explique cette limitation par ce raisonnement : "Un client qui partage par exemple 10000 fichiers bloque tous les autres clients du serveur pendant 20 120 secondes lors de son dpart. En gros, le programme avait inscrit en mmoire des couples. A la dconnexion d'un client possdant beaucoup de fichiers, le temps ncessaire pour parcourir toutes ces structures en mmoire pour les retirer devient astronomique (parcours linaire de listes simplement chanes)". 10 Les serveurs peuvent demander beaucoup de ressources (quad opteron 32go de RAM et liaison 100Mbits) car ils peuvent grer un nombre de connexions allant de plusieurs centaines de milliers, plus dun million dutilisateurs.

10

www.ratiatum.com

Page 20 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Un problme tait apparu au dbut de la pleine expansion deDonkey, cest le manque de serveurs ayant les capacits ncessaires. Lensemble des serveurs tait satur mais cette saturation a t leve en particulier grce larrive du serveur lugdunum, plus performant et moins gourmand en ressources. Un autre problme de connexion au serveur existait aussi car de nombreux serveurs avaient des IP non statique. La liste de serveur posait donc de nombreux problmes de mise jour et la connexion un serveur tait difficile. La solution a t de mettre en place la liste de serveurs eDonkey dont la plus clbre est "ocbMaurice". La fermeture des codes sources des serveurs (lugdunum) peut galement poser problmes car peu de personnes peuvent travailler dessus pour limiter l'apparition de nouveaux bugs. eMule est suppos plus fiable car son code source a t analys par de nombreuses personnes. Problme des serveurs Comme tout Peer-to-Peer centralis, la faiblesse du rseau eDonkey est principalement due l'existence de serveurs grant les connexions. Si ces serveurs sont supprims, cela peut entraner des ralentissements sur le rseau, en particulier s'il supportait de nombreuses connexions. a a t le cas par exemple pour le serveur "Razorback". Razorback11 est une association suisse qui possdait un serveur eDonkey/eMule de P2P extrmement populaire, qui brassait son apoge, plus de 33% des utilisateurs du rseau ed2k. Il a volu le 16 fvrier 2004 vers sa version 2.0 et a t suivi en 2005 par son petit frre nomm Razorback2.1. Les serveurs, situs Zaventem prs de Bruxelles, ont t saisis le mardi 21 fvrier 2006 par la brigade anti-piratage de la police fdrale belge et le porteparole de l'association a t entendu par la police suisse (l'association tait base en Suisse). La MPAA12 s'est flicite de la fermeture son initiative de ce serveur infme . Malgr l'arrt des deux serveurs, le rseau n'a pas montr de rels signes de faiblesse, et ce en grande partie grce la prise en charge des utilisateurs par d'autres serveurs et l'utilisation du protocole dcentralis reposant sur l'algorithme Kademlia (qui fonctionne sans serveur ddi). Les serveurs nomms Razorback actuellement en ligne n'appartiennent pas l'association Razorback. Celle-ci est toujours en activit mais n'a pas encore r ouvert de serveur eDonkey.

Le fait qu'eDonkey utilise de nombreux serveurs dans diffrents pays, lui permet donc de surmonter les problmes de pertes de serveurs, ce qui lui a permis de continuer exister.

1112

http://fr.wikipedia.org/wiki/Razorback_%28serveur_ed2k%29 MPAA : Motion Picture Association of America

Page 21 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

2.1.9

Kad Network

Ce systme la diffrence deDonkey est compltement dcentralis, mme en ce qui concerne la recherche. Il ny a quun seul programme qui sert au tlchargement et lindexation des fichiers (systme rparti homogne). Le rseau Kad utilise Kademlia qui est un systme base de DHT (Distributed Hash Table). Le rseau Overnet de MetaMachine utilise aussi Kademlia mais nest pas compatible avec le rseau Kad de eMule. Le problme de Kad est son initialisation. En effet, par dfaut il ny a pas dadresse statique (pas de serveur) et pas de liste de pairs Kad. Donc sil ny a pas dadresses, on ne peut pas se connecter au rseau Son intgration eMule permet dviter ce problme. Il utilise ainsi le rseau eDonkey pour trouver des pairs utilisant aussi Kad. Cela permet de mmoriser les adresses IP des clients utilisant Kad, pour une future connexion (en esprant quil y ait au moins un client joignable). Une force du client eMule est la possibilit de tlcharger un mme fichier la fois sur les rseaux Kad et sur eDonkey.

Page 22 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

2.2

BitTorrent

Le rseau BitTorrent possde aujourd'hui une communaut d'utilisateurs trs tendu, mme si son architecture ne permet pas de dterminer son nombre exact. Les changes de fichier travers ce protocole reprsentaient dj prs de 30% du trafic sur internet en 200413.

2.2.1

Principe de fonctionnement

Le terme BitTorrent dsigne la fois le protocole utilis pour le partage et les logiciels clients qui limplmente. Le rseau BitTorrent, invent par le programmeur Bram Cohen, a un mode de fonctionnement assez proche du rseau eDonkey. Pour partager un fichier, les clients commencent par crer un fichier "torrent" (suffix .torrent) qui contient des mtadata sur le fichier, notamment le HASH File. Il contient aussi ladresse URL du tracker quil faut interroger pour pouvoir tlcharger le fichier.

Structure gnrale du rseau BitTorrent

Pour tlcharger un fichier, le client BitTorrent (programme client) recherche le .torrent correspondant (sur un serveur web par exemple flche 1 sur le schma) et le tlcharge (flche 2). Il utilise ensuite lURL contenu dans le ".torrent" pour contacter le tracker responsable du fichier pour lui demander la liste des pairs partageant actuellement le fichier (flche 3). Le tracker renvoie alors une liste d'adresse IP contacter (flche 4). Ds lors, le client BitTorrent contacte directement ces adresses et commence le tlchargement (requtes 5). La liste d'IP est constitue simplement partir des adresses des personnes qui tlchargent le fichier dsir en mme temps que nous : notre client tlcharge le fichier sur les autres Pairs, et ceux-ci tlchargent chez nous.

13

http://www.cachelogic.com/home/pages/studies/2005_06.php / MISC N25 - Mai Juin 2006 - p24 p47

Page 23 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

2.2.2

Terminologie

Torrent Un torrent est un fichier, cod en ASCII, portant lextension ".torrent" et permettant didentifier les partages des utilisateurs sur le rseau. Ces partages peuvent tre aussi bien des fichiers (film, musique, image cd) que des rpertoires. Le fichier torrent est essentiel pour tablir les connexions. Il contient en effet les informations sur le tracker rfrenant le fichier, des informations sur le fichier lui-mme : son nom, sa taille, le hash SHA1 du fichier permettant de lidentifier, mais aussi la taille des fragments du fichier et leur hash afin de vrifier que lintgrit des informations est bien conserve.

Tracker Le tracker est une sorte de serveur permettant de mettre en relation les pairs. Il peut tre considr comme un annuaire mettant en relation un fichier avec les clients qui le tlcharge. Nimporte qui est susceptible de crer son propre tracker. Pour cela, il faut avant tout possder une adresse IP fixe ou une URL qui permettra de rediriger vers le tracker. Cette adresse fixe est en effet ncessaire pour les connexions, ladresse du tracker tant en effet enregistr dans le fichier torrent. Il suffit ensuite de tlcharger les sources BitTorrent ainsi que le logiciel dinstallation de linterprteur python (utilis par BitTorrent), et douvrir les bons ports dans le firewall du serveur. Le tracker na plus qu tre lanc avec une commande du type c:\source\bttrack.py --port 6969 --dfile dstate . Il ne reste alors plus qu tester le tracker laide dun navigateur Internet14 (le protocole utilis tant http, cela facilite le test). Les personnes connaissant ladresse du tracker peuvent alors sy connecter facilement grce aux informations contenues dans le fichier torrent.

Client BitTorrent Un client BitTorrent est un logiciel permettant, partir dun fichier ".torrent", de se connecter au tracker rfrenant un fichier afin d'effectuer le tlchargement souhait. Celui-ci gre donc lensemble des changes : il initialise les communications, tlcharge les parties du fichier dtenue par dautres pairs, et envoie aux autres les parties quil possde. Il existe de nombreux clients BitTorrent fonctionnant sous diffrents langages et diverses plates-formes (windows, linux, mac, etc.).

14

http://www.emutorrent.com/faire-un-tracker.php

Page 24 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

Client BitTorrent Azureus, crit en Java

Seeder (seed signifie graine en anglais) Dans le vocabulaire BitTorrent, une personne qui possde lintgralit dun fichier et qui continue de le partager est appele seeder. Leecher (leech signifie sangsue en anglais) Un leecher est une personne qui ne possde pas un fichier dans sa totalit et qui continue donc essayer de le tlcharger.

2.2.3

Cration dun torrent

La cration dun torrent se fait assez simplement laide dun outil tel que MakeTorrent. Il suffit de slectionner le fichier ou le rpertoire que lon souhaite partager et choisir un tracker.

Cration dun fichier .torrent laide du logiciel MakeTorrent

Page 25 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

Il faut ensuite choisir la taille des fragments. En gnral de 256 ko, cette taille peut augmenter si le fichier est trs important. Plus les fragments sont petits, plus le tlchargement sera efficace. Loutil se charge alors de calculer la somme SHA1 des fragments et de gnrer le .torrent. Il ne reste alors qu lenregistrer sur le web pour que dautres personnes puissent connatre son existence. Enfin, pour amorcer le partage, il suffit dutiliser un client BitTorrent comme si on souhaitait tlcharger le fichier. Le client vrifiera que le fichier que lon souhaite tlcharger est le mme que celui prsent sur notre disque. Il se connectera alors au tracker et commencera le partage du fichier. On sera alors considr comme le seed originel et les autres clients pourront se connecter nous pour tlcharger le fichier. Voici un exemple de contenu d'un fichier .torrent pour un fichier vido portant le nom "Black_Lagoon_-_20.avi":d8:announce34:http://seedy.mine.nu:6969/announce18:azureus_propertiesd17: dht_backup_enablei1ee7:comment0:13:comment.utf-80:10: created by15:Azureus/2.5.0.013:creation datei1164774262e8: encoding5:UTF-84:infod4:ed2k16:0_o__C_86:lengthi179998720e4:name47: Black_Lagoon_-_20.avi10:name.utf-847:Black_Lagoon_-_20.avi12: piece lengthi393216e6:pieces9160:_@y%r\ etc.

Les champs sont spars par le dlimiteur ":", et sont prcds du nombre de caractres lire. Les principaux champs sont: announce: "http://seedy.mine.nu:6969/announce" correspond l'adresse du tracker qui doit tre contact pour pouvoir tlcharger le fichier. created by: "Azureus" correspond au client utilis pour crer le torrent. creation date: "1164774262" correspond au timestamp de la date de cration length: "179998720" : la taille du fichier en byte. name: "Black_Lagoon_-_20.avi": le nom du fichier. piece length: "393216": la taille de chaque partie du fichier, issue de la fragmentation. pieces: "" correspond la concatnation du code SHA-1 sur 160 bits de chaque fragment.

Page 26 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

2.2.4

Indexation des torrents et recherche dinformations

Un des points faibles du protocole BitTorrent est quil ne possde aucune fonction dindexation. Il nest donc pas possible de rechercher des fichiers directement avec les clients BitTorrent. La recherche de fichier seffectue par une application extrieure. Il existe de nombreux sites internet proposant des liens vers des torrents, et certains navigateurs comme Firefox intgrent des extensions permettant d'effectuer rapidement une recherche globale sur ces sites. La publication sur le web est en effet la seule faon de faire connatre rapidement la prsence des fichiers. Un utilisateur souhaitant tlcharger un fichier commence donc par le rechercher sur le web, travers des sites spcialiss ou non comme par exemple sur le site mininova15, un des plus connu actuellement (voir image ci-dessous) et tlcharge le .torrent, puis donne celui-ci son client BitTorrent qui se chargera du tlchargement.

Le protocole BitTorrent ne propose pas de moteur de recherche. Des sites spcialiss comme mininova.org sont donc apparus pour remdier ce problme

Ce procd tout de mme des avantages puisqu'il peut permettre de diffuser un gros fichier un groupe prcis d'utilisateurs, sans que des personnes extrieures en aient connaissance. En effet, il suffit de crer un .torrent partir du fichier que l'on souhaite diffuser et de l'envoyer nos amis (par mail par exemple). Ainsi, seules les personnes concernes auront connaissances du fichier et pourront venir le tlcharger. De plus, l'envoie du fichier sera globalement plus rapide que si on devait l'envoyer chaque personne une par une.

15

http://www.mininova.org/

Page 27 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

2.2.5

Tlchargement des fichiers : connexion au tracker

Pour pouvoir tlcharger un fichier, le client lit dans le .torrent ladresse du tracker en charge de ce fichier. Il se connecte ensuite celui-ci par lintermdiaire du protocole HTTP (ou HTTPS) en envoyant une requte GET . Cette requte permet de fournir au tracker diffrentes donnes sur le client et sur le fichier recherch. On trouve notamment : info_hash : le hash SHA1 du fichier, qui permet de lidentifier de faon unique peer_id : ID unique sur 20 bits du client, gnr au dmarrage. Port : le numro de port utilis par le client pour lchange dinformation. En gnral, il sagit des ports de 6881 6889. Adresse IP : ce champ est optionnel car il peut tre facilement retrouv partir de la requte HTTP envoye par le client. Ladresse IP peut cependant tre utile si lordinateur se trouve derrire un serveur proxy ou si le client et le tracker se trouvent derrire une mme passerelle NAT. Le nombre dadresses de pairs souhait. Par dfaut, le tracker renverra une liste de 50 pairs maximum, choisis alatoirement. Les statistiques du client : nombre de bits envoys et reus En rponse, le tracker renvoie la liste des leechers et des seeders partageant actuellement le fichier demand (ou un message derreur le cas chant). Pour chaque pair, le client BitTorrent recevra alors l'ID, son adresse IP et le numro de port sur lequel il coute. Il se chargera alors de contacter les diffrentes sources possibles. Le client reoit galement lintervalle de temps quil doit attendre pour contacter le tracker, ainsi que le tracker ID quil devra renvoyer dans ses prochaines requtes. Le client BitTorrent informe en effet le tracker, des intervalles de temps rguliers, de son tat dans le tlchargement (ce quil a tlcharg, reu, etc.) et reoit du tracker une liste actualise des pairs. Ces donnes ont un but purement statistique.

2.2.6

Tlchargement des fichiers : connexion aux pairs

Une fois la liste des pairs obtenue, le client va chercher se connecter ceux-ci. BitTorrent utilise la mme technique queDonkey pour grer l'envoi des fichiers : ceux-ci sont dcoups en fragments qui peuvent tre envoys dans nimporte quel ordre. Cette technique permet de faire du multisourcing : il est possible de tlcharger plusieurs morceaux simultanment partir de plusieurs pairs diffrents. De mme, aprs avoir obtenu un morceau, le client servira de source pour lenvoyer vers dautres utilisateurs. Il est bien entendu possible de stopper son tlchargement et de le reprendre l o on lavait laiss.

Page 28 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Le protocole est bas sur une connexion TCP. Chaque pair garde une table regroupant des informations sur tous les pairs auxquels il est connect, quils envoient des informations ou non. A chaque fois que le client a fini de tlcharger un morceau, il lannonce tous ses contacts, ce qui permet de garder en mmoire ltat du tlchargement de tous les pairs et de leur demander les parties quils possdent et qui nous intressent. La spcification originale prvoyait quun client cherche obtenir les diffrents segments dun fichier de faon alatoire. Cependant, la plupart des clients actuels cherchent les parties les plus rares en priorit. Contrairement des logiciels comme eMule, le client ne gre pas de file dattente. Le systme de tlchargement est bas sur un systme de rcompense ressemblant lalgorithme du "tit-for-tat16". Le principe est simple : jenvoie des donnes aux personnes qui men envoient galement. Ainsi, on accordera la priorit aux requtes des pairs nous apportant le plus, cest dire ceux qui participent le plus notre tlchargement. Cette technique du "donnant-donnant" permet de lutter efficacement contre les leechers qui ne font que tlcharger sans jamais envoyer de donnes aux autres. Le protocole prend tout de mme en compte une partie des demandes de pairs qui ne nous envoie pas encore de donnes. En effet, un problme se poserait si on appliquait lalgorithme du tit-for-tat la lettre : qui commencerait partager ses donnes aux autres ? Les pairs resteraient bloqus tant que lun deux ne se dcide prendre linitiative et envoyer des donnes. De mme, lorsquun leecher commence le tlchargement dun fichier, il na aucune partie proposer aux autres. Il risquerait donc dtre bloqu ternellement. Afin de palier cet inconvnient, le client BitTorrent rservera tout de mme une petite partie de la bande passante pour initialiser des connexions vers des pairs ne le profitant pas, c'est dire qui ne lui envoie aucune donne. Cet algorithme, appel "optimistic unchoking" donc pour but de donner une chance aux nouveaux arrivant et de dcouvrir de nouveaux partenaires avec qui partager les donnes, en prenant l'initiative de l'envoie. Lorsquun client refuse denvoyer des donnes un autre pair, on dit quil le "choke". Cela arrive si le pair n'est pas profitable (s'il ne nous envoie aucune donne en retour) ou s'il nous est moins profitable que d'autres (la bande passante tant limit, il faut faire des choix). Plus aucune requte du pair "chok" ne sera accepte. Lopration inverse, consistant accepter les requtes du pair, est appele "unchoke". Ainsi, le client value les autres pairs toutes les 10 secondes, pour dterminer qui il va envoyer des donnes et effectue des oprations de "choke" et "unchoke" en fonction du rsultat de l'valuation (nombre de donnes qu'on lui a envoy, etc.). Il n'y a donc pas de file d'attente, le partage tant gr uniquement en fonction du crdit des pairs.

16

http://en.wikipedia.org/wiki/Tit_for_tat

Page 29 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Le Super-seeding : Cet algorithme permet un seed (client possdant lintgralit dun fichier), denvoyer le plus vite possible un fichier. Le but est de permettre des pairs limits en bande passante de partager des gros fichiers. Contrairement un seed normal, les parties du fichier ne seront pas envoyes de faon alatoire. Le client va faire croire aux diffrents pairs quil ne possde quun seul fragment du fichier. Quand lun deux se connectera lui, il enverra cette partie. Une fois le tlchargement de cette partie fini, le super-seed nenverra plus de morceaux du fichier avant davoir vu la partie prcdemment envoye sur au moins un autre pair, ce qui lui permet de s'assurer que la partie est bien diffuse. Cette technique est 200%17 plus efficace que lalgorithme utilis par un seed normal. Il nest cependant pas recommand de lutiliser sil existe dj plusieurs seed pour le fichier. Il est a not qu'en gnral, sur un mme ordinateur, il y a un client ouvert, sur une fentre distincte, par fichier tlcharg. Si cette fentre est ferme (en fin de tlchargement par exemple), le fichier nest plus partag, ce qui explique la courte dure de vie des fichiers sur le rseau.

2.2.7

BitTorrent et les autres P2P

Le rseau BitTorrent est un rseau Peer-to-Peer hybride du fait de l'utilisation des trackers. En cela, il ressemble beaucoup au principe utilis par le protocole eDonkey: les pairs se connectent des serveurs (des trackers dans le cas de BitTorrent) qui permettent de les mettre en relation. Cependant, dans le rseau eDonkey, les pairs peuvent se connecter n'importe quel serveur: si un utilisateur du serveur choisi partage un fichier qui les intresse, ils pourront alors se connecter lui. BitTorrent, quant lui, oblige les utilisateurs se connecter un tracker prcis, dsign dans le fichier .torrent. Du fait de l'architecture semi-centralis, le protocole BitTorrent souffre des mmes faiblesses qu'eDonkey, savoir le risque de suppression d'un serveur. Le risque est encore plus important du fait que tous les clients partageant le mme fichier se connecteront au mme serveur: si le tracker est coup, il n'y aura plus la possibilit de tlcharger le fichier sans modifier le fichier torrent renseignant sur ladresse du tracker (et donc le remplacer sur tous les sites lindexant). Pour pallier ce problme, les .torrent peuvent aujourd'hui contenir plusieurs adresses de tracker, utiliser en cas de panne. De mme, il ne faudra pas non plus oublier de prendre en compte les problmes lis aux ressources du tracker (bande passante, capacit de traitement). Quand des milliers de personne veulent le fichier, il faut pouvoir leur rpondre. Une diffrence majeure entre BitTorrent et les autres protocoles Peer-to-Peer est qu'il ne possde aucun moteur de recherche intgr. Il faut donc utiliser un logiciel intermdiaire (site web, blogs, etc) pour trouver les .torrent. Cependant, de plus en plus de navigateur web peuvent intgrer un client BitTorrent et un mini moteur de recherche de fichier .torrent, rendant le tlchargement trs facile.

17

http://wiki.theory.org/BitTorrentSpecification#Super_Seeding

Page 30 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Ce point peut galement tre vu comme un avantage pour le rseau. Les rseaux Peer-to-Peer souffrent globalement des fichiers truqus ou contenant des virus. Des rseaux comme FastTrack ou eDonkey facilitent leur propagation, les applications utilisant leur propre moteur de recherche recherchant les fichiers sur les ordinateurs des clients. Les fichiers sont ainsi partags indfiniment entre les utilisateurs ne se rendant pas compte que le fichier est truqu. Il reste toujours des traces du fichier sur un des pairs du rseau, qui est successible de l'envoyer d'autres pairs. Sur un rseau BitTorrent, il suffit de localiser le fichier torrent et de le supprimer du site web pour le rendre inaccessible aux diffrents pairs, ce qui vite la trop grande propagation du fichier truqu. Cependant, ces sites web peuvent eux-mmes faire lobjet dattaques comme a a t le cas pour le site suprnova.org18, un des sites les plus utiliss pour lindexation des fichiers torrent qui a t ferm suite aux actions des socits grant les droits dauteurs. Cependant, aprs une petite priode de doute, ces sites sont trs vite remplacs par dautre ce qui permet au rseau de continuer fonctionner malgr les attaques incessantes. Enfin, contrairement aux autres rseaux actuellement populaires tels que FastTrack et eDonkey, BitTorrent ne gre pas de files de d'attente de tlchargement. Les pairs sont valus toutes les 10 secondes et le client choisi de fournir des donnes ceux qui lui en offrent le plus en retour. Ce systme permet d'accrotre la vitesse des tlchargements, contrairement eDonkey o il faut souvent plusieurs jours pour tlcharger de gros fichiers. Cette rapidit des tlchargements provoque aussi une obsolescence rapide des fichiers partags. En effet, une fois le fichier tlcharg, les utilisateurs ferment la fentre du client, stoppant ainsi le partage. Ainsi, la dure de vie de partage des documents n'est en gnral que de quelques mois. Le rseau favorise donc le partage de fichier rcent et trs demand. On notera cependant, que la vitesse initiale de tlchargement est souvent faible tant donn que le client n'a rien uploader. Il faut donc attendre un certain temps pour voir ses dbits augmenter et compter sur l'algorithme d' "optimistic unchocking".

18

Voir http://www.essentielpc.com/actualites/511-suprnova-bittorent.html

Page 31 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

2.2.8

Dveloppement de BitTorrent

Diffrentes extensions, officielles ou non, sont prvues dans le dveloppement de BitTorrent. Parmi celles-ci, on peut citer les connexions cryptes19, permettant la cration de liaisons cryptes entre les pairs, protgeant ainsi le contenu des messages des regards extrieurs. On pourra aussi noter la prsence d'une extension permettant le WebSeeding autorisant un serveur HTTP servir de "seed" pour les tlchargements et ainsi combiner le protocole BitTorrent avec le protocole HTTP. Enfin, une autre extension importante vise supprimer un point faible du protocole: les trackers qui centralisent le rseau. Les nouvelles versions de BitTorrent supportent des connections sans tracker. Le client implmente alors une table DHT20 pour identifier et stocker la liste des diffrents clients partageant le fichier qui l'intresse. Cette DHT, appele "Khashmir" est bas sur le protocole kademlia. Chaque client gnre un "Node ID" unique, correspondant en gnral au Hash SHA-1 de son adresse IP. Il se connecte ensuite au rseau en utilisant l'adresse IP d'un pair dj prsent. Les donnes sont ensuite retrouves en utilisant le principe "cl => valeur". La cl correspond au fichier demand et la valeur correspond l'ID du client possdant ce fichier. Pour obtenir ces valeurs, le client envoie le Hash SHA-1 du fichier recherch sur le rseau. Si les voisins n'ont pas le fichier, ils propagent la demande sur le rseau, sinon ils lui rpondent.

19 20

Voir: http://www.azureuswiki.com/index.php/Message_Stream_Encryption Distributed Hash Table - http://www.bittorrent.org/Draft_DHT_protocol.html

Page 32 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

3 Identification des risquesLe dveloppement massif des Peer-to-Peer, souvent gratuits, est accompagn de nombreux problmes de scurits pour les usagers. En effet, ces logiciels sont utiliss, la plupart du temps, une trs grande chelle, tout le monde pouvant se connecter tout le monde, ouvrant ainsi la porte des individus mal intentionns. Il est cependant noter quune partie des attaques contre les rseaux Peer-to-Peer sont organiss par les socits de droits dauteur souhaitant protger les fichiers dont contenus est rgis par la loi du copyright.

3.1

Virus et Spyware

Les P2P sont trs connus comme tant une des sources permettant la propagation des virus et spyware21 l'chelle mondiale. En effet, des millions d'utilisateurs sont connects entre eux travers les rseaux P2P, ce qui constitue un facteur trs intressant pour les crateurs de virus, ceux-ci pouvant se propager trs facilement d'utilisateur en utilisateur. Parmi ceux-ci, on trouve notamment les chevaux de Troie qui sont contenus dans des fichiers quelconques susceptibles d'tre tlchargs par des utilisateurs. Lorsque ceux-ci installent le fichier sur leur ordinateur, le Trojan s'implante en mme temps et cr des portes drobes sur l'ordinateur. Ce problme n'est pas spcifique aux P2P, mais il constitue un des problmes majeurs de ces rseaux puisqu'ils permettent de les vhiculer trs facilement. Il est d'autant plus important de bien les surveiller dans les grandes entreprises: un virus infectant un des pc de l'entreprise se propagera trs rapidement sur tous les postes de travail, risquant de paralyser le rseau de la socit. La "back door" pourrait galement tre utilis pour accder au contenu des dossiers de l'entreprise, provoquant une fuite d'information irrversible pour celle-ci. Dans le cadre des particuliers, les back-doors peuvent permettre de prendre le contrle des ordinateurs. On peut en faire diffrents usages, et notamment s'en servir pour attaquer des serveurs distants ou prendre le contrle d'autres machines tout en restant cach puisque les attaques ne viennent pas directement de nous (les ordinateurs infects servent alors de proxy). Ainsi, en 2002 le virus Duload se propage via KaZaa quelques mois aprs lapparition et la diffusion par le mme biais du cheval de Troie K0wBot et du ver Benjamin [] En avril 2005, le vers Nopir-B (se propageant par les rseaux P2P) sattaque aux fichiers MP3 [] 22. Enfin, on peut galement citer le cas o le logiciel P2P lui-mme est infect comme par exemple le logiciel KaZaA dans lequel le spyware Cydoor23 tait install en mme temps que le programme lui-mme, dans la version officielle. Ce spyware, utilis par la socit du mme nom des fins commerciales, permettait de tlcharger des publicits sur le pc de lutilisateur ou encore de rcuprer certaines donnes sur lui.21

Spyware : logiciel espion s'installant sur les ordinateurs, l'insu de leurs utilisateurs, et rcoltant des donnes sur ceux-ci pour ensuite les envoyes aux personnes qui pourront les exploits. 22 MISC N25 - Mai Juin 2006 - p24 p47 23 Voir : http://en.wikipedia.org/wiki/Cydoor

Page 33 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

3.2

Fichiers truqus

Poison Peers : Le rseau Peer-to-Peer comme BitTorrent introduisent le problme des "Poison Peers": un pair fait croire au tracker qu'il a un fichier complet. Celui-ci va donner l'IP du pair malicieux d'autres pairs, qui vont se connecter lui. Le "faux seeder" va alors pouvoir envoyer des morceaux de parties errones (aussi appel polluting attacks ). Certes, les clients vont dtecter ces parties truques une fois qu'ils auront le morceau complet (grce la somme MD4 ou SHA1), mais si le nombre de Poison Peers est important, alors cela va encombrer le rseau et faire perdre beaucoup de temps et de bande passante aux diffrents pairs, ce qui va globalement rduire l'efficacit du rseau. Ces attaques peuvent aussi prendre la forme de fichiers dont le nom ou la description ne correspond pas au contenu rel du fichier. Les fichiers sont en effet placs sur le rseau par les utilisateurs, qui fournissent eux-mmes les informations le dcrivant (titre, rsums, etc.). Certains utilisateurs nhsitent pas placer des faux noms de fichiers. Cela leur permet par exemple daugmenter leur score dans les files dattentes en utilisant un faux fichier dont le nom est trs demand (dernier film sorti par exemple), etc. Les utilisateurs tlchargent ensuite le fichier pensant trouver le bon et finissent par se retrouver avec un fake . Ces attaques peuvent causer beaucoup de tord au rseau, le temps et les ressources perdus pouvant tre trs important. Partage automatique des donnes: Comme nous l'avons vu lors de l'tude du fonctionnement d'eDonkey et de BitTorrent, les rseaux Peer-to-Peer utilisent en gnral le fractionnement des fichiers pour acclrer les tlchargements: un pair peut commencer envoyer des morceaux d'un fichier qu'il ne possde pas en totalit. Le problme de cette mthode est que lutilisateur n'a pas la possibilit de visualiser ce fichier (du moins pas dans sa totalit) lors du tlchargement. Si ce fichier est un fake , lutilisateur ne le saura que lorsqu'il sera complet et pourra alors le supprimer. Cependant, avant d'avoir le fichier complet, il aura dj envoy de nombreuses parties du fichier truqu d'autres pairs, qui euxmmes lauront propags, etc. Le fichier sera ainsi envoy de pair en pair et pourra trs difficilement tre totalement supprim du rseau. Le mode de fonctionnement des Peer-to-Peer favorise donc la vitesse des tlchargements, mais par la mme occasion, et il facilite galement la propagation des fichiers truqus, des virus, etc.

Page 34 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER La lutte contre les fake : Comme nous lavons vu dans notre analyse des deux principaux P2P actuels, il existe diffrentes faon de lutter contre les fichiers truqus. Dans le cas de BitTorrent, le problme est plus simple : pour supprimer un fichier, il faut supprimer le .torrent du site qui lindex ds que le fichier est dtect comme faux, ce qui le rendra inaccessible de nouveaux tlchargement. Cependant, ce nest pas aussi simple que a quand on sait quil existe de nombreux site dindexation de fichier torrent, et que cela se fait de plus en plus de manire automatique.

Dans le cas deDonkey, la solution envisage repose principalement sur le bnvolat des utilisateurs, qui ont la possibilit de commenter et dvaluer un fichier. Trs peu dutilisateurs ont cependant le rflexe de visualiser ces commentaires, et les pirates ont euxmmes la possibilit de commenter leur fichier pour faire croire que la qualit est excellente et que cest le bon fichier. Les fonctions de prvisualisation, notamment utiliss par le client eMule peuvent aussi permettre de rduire le cot dun fichier truqu en le dtectant et le supprimant avant la fin du tlchargement. Encore faut til pour cela possder la premire partie du fichier afin de lancer la visualisation (le tlchargement de la premire et dernire partie est prioritaire par dfaut dans le configuration deMule afin de permettre cette visualisation).

Dans tout les cas, ces solutions ne permettent pas de pleinement stopper la propagation des fichiers truqus dans un dlai suffisamment cours pour empcher une propagation mondiale. Les solutions envisages pour le problme des fichiers truqus sont principalement bases sur les actions des utilisateurs qui doivent rester attentifs ce quils tlchargent et partagent (regarder les commentaires, visualiser le document ds que possible, etc.). Ceci ne concerne malheureusement quune petite partie des usagers. De plus, nous lavons dj expliqu lors de ltude deDonkey, les utilisateurs ont trs rarement le rflexe de prvenir les autres utilisateurs. Lorsquils dtectent un fake , ils se contentent en gnral de dtruire le fichier. Or, pour pouvoir commenter un fichier (et donc prvenir quil est truqu), il faut le possder dans sa liste de partage Le problme des fichiers truqus reste donc un problme majeur des Peer-toPeer et aucune solution miracle na encore t trouve. Les principaux pirates utilisant ces techniques sont toujours les socits de droits dauteurs qui tentent de dissuader les utilisateurs de tlcharger des contenus protgs en ralentissant / bloquant le tlchargement des vrais fichiers. Des entreprises se sont mme spcialises dans ce genre dattaque avec des logiciels comme overpeer24 ou P2P Overflow .24

Voir http://www.zdnet.fr/actualites/internet/0,39020774,39294599,00.htm

Page 35 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

3.3

Failles de scurit

Faille dans le code source : Les logiciels utiliss pour les changes P2P sont pour la plupart "open source". Le code source des clients/serveurs est trs souvent disponible sur internet. N'importe qui peut donc y accder et l'analyser, ce qui en gnral est considr comme plus scuris car les codes peuvent ainsi tre tudis par la communaut. Certaines personnes mal intentionnes ont cependant, par la mme occasion, la possibilit de dcouvrir des failles de scurits dans le code source et de les exploiter. Dans le cas dun code source ferm, la retro-ingnierie (reverse engineering) permet de dcouvrir les problmes de scurit par lanalyse du code machine. Ces logiciels tant prsent des millions d'exemplaires travers le monde, l'exploitation des ces failles est trs intressante pour les pirates car elle peut leur permettre de prendre la main sur de nombreuses machines. Comme tout programme informatique accessible par le rseau, les applications Peer-to-Peer sont sujettes des attaques de type stack/buffer overflow, etc., que ce soit cause de dfaillance dans leur propre code ou dans les librairies quils utilisent (voir le paragraphe 2.1.8 deDonkey, relatif aux problmes dutilisation de bibliothque externe).

3.4

Spoofing ip : Restrictions des IP / Usurpation didentit

De plus en plus, les logiciels P2P implmentent la restriction de plages IP pour se connecter et partager. En effet, pour viter que les autorits se connectent au rseau et tente ainsi de perturber son fonctionnement ou de rcuprer des donnes sur les utilisateurs, les clients et serveurs P2P autorisent uniquement les plages dIP des FAI, des universits, et de quelques rseaux dentreprises. Plusieurs listes sont mises jour par des communauts et disponibles25 sur internet pour bloquer les adresses connues viter. Activation du filtrage dIP dans eMule : eMule contient donc une option permettant de filtrer des adresses dangereuses . Pour cela, il faut aller dans le menu "prfrences", "scurit" et ajouter dans le champ Update From URL le chemin vers un fichier contenant les plages IP. Une liste est disponible ladresse suivante : http://www.bluetack.info/nipfilter.dat.gz Lutilisation de PeerGuardian26 se dveloppe aussi. Il permet dinterdire, directement dans le systme dexploitation, la connexion vers des adresses nfastes (typiquement les organismes anti-P2P). Un autre logiciel disponible est ProtoWall. Pour Azureus (Client BitTorrent), il existe un Plugin SafePeer qui effectue lui aussi le filtrage dIP pour le logiciel P2P.25

Liste de plages dadresses IP : http://test.blocklist.org/ Logiciel de mise jour de la liste : BlockList Managerhttp://phoenixlabs.org/pg2/

26

Page 36 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Ces dispositions obligent les autorits masquer leur relle adresse internet pour surveiller les rseaux (spoofing ip), ce qui offre lutilisateur la possibilit de se retourner contre eux en cas de litige (utilisation dune fausse identit).

Ces techniques dusurpation didentit ne sont cependant pas utilises uniquement par les autorits, mais peuvent, linverse, jouer contre elles. Ainsi, certains pirates nhsitent pas se faire passer pour dautres personnes. Par exemple, cela peut leur permettre de tlcharger des fichiers avec une fausse adresse vitant ainsi dtre dtect par les socits de droits dauteurs espionnant le rseau, ou encore permettre dattaquer un serveur (dnie de service, etc.) en restant cach . Dans un autre genre, le spoofing IP pourrait tre utilis pour rcuprer la notorit dun utilisateur. Les clients P2P utilisent en gnral des systmes de crdits bass principalement sur le taux denvoie de donnes par les utilisateurs. Se faire passer pour un utilisateur ayant acquis beaucoup de crdits permettrait de tlcharger plus rapidement, car nos demandes seront prioritaires, sans avoir mettre vers les autres pairs. Enfin, cette technique pourrait permettre du nuire au rseau. Par exemple, sur le rseau eDonkey, lorsquun utilisateur abuse des ressources, cest dire si il effectue de trop nombreuses requtes vers les serveurs par exemple, il sera plac sur une liste noire et donc banni du rseau. De mme, sil effectue plus dune requte toutes les dix minutes pour un mme fichier, il sera banni par le pair quil interroge de faon trop agressive27. Une attaque pouvant tre envisage consisterait alors se faire passer pour dautres pairs en usurpant leur adresse IP et les utiliser pour effectuer des nombreuses requtes vers dautres membres du rseau. Ces membres seraient alors bannis les uns aprs les autres du rseau, ce qui lanc grande chelle pourrait fortement nuire au rseau. NOTE : Nous navons cependant trouv aucun document affirmant ou infirmant cette possibilit dattaque. Autre utilisation du filtrage : Le filtrage dadresse IP non pas pour unique but de se protger des autorits. Il peut aussi tre utilis pour former une communaut, par exemple une communaut francophone28. Cela peut permettre de partager des fichiers avec uniquement nos amis, ou amliorer les recherches en se connectant uniquement des pairs utilisant la mme langue, etc.

27 28

http://www.emule-speed.com/tutoriaux/emuletotale/banissementclient.htm http://lugdunum2k.free.fr/francophone.shtml

Page 37 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER

3.5

Utilisation des ressources / DDoS

Les rseaux P2P sont rputs pour tre trs gourmant en terme de ressource systme (temps processeur, place disque, puissance de calcul) et en bande passante. Selon certaines sources, les changes P2P reprsenterait 50 80% des changes29. Pour les entreprises, cela peut entrainer de gros problmes de surcharge du rseau et ralentir lensemble des connexions (en particulier si les utilisateurs nont pas limits leur bande passante en upload). Cest le cas notamment avec lutilisation du logiciel Skype. Ce logiciel (gratuit), trs pratique pour passer des appels tlphonique en utilisant la voix sur IP, utilise la technologie P2P, dans laquelle chaque pair peut agir comme serveur, pour ses communications, mais galement comme relais pour le routage et le transport des appels des autres pairs30. Ainsi, mme inactif (pas dappel en cours), le logiciel va continuer consommer des ressources, qui peuvent tre importantes, notamment en terme de bande passante, pour les entreprises. Ce problme a men certaines de celles-ci le bannir compltement de ses postes de travail. De plus, lutilisation de la bande passante dans les rseaux de partage de fichier est en gnral trs peu optimise : les donnes sont envoyes au cas par cas. Ainsi, un client rpond aux demandes des autres pairs les unes aprs les autres, alors quil y a peut tre 100 clients qui demande la mme chose. Une optimisation des rseaux P2P pourrait donc tre lutilisation dchanges multicast pour le partage de donnes. Plusieurs logiciels se sont dvelopps pour tenter de rduire lutilisation des ressources, notamment en termes de bande passante. En voici deux exemples : BitTyrant31 Bas sur le logiciel BitTorrent Azureus, BitTyrant prtend offrir des tlchargements jusqu' 70 % plus rapides que son an. Il a t imagin par des tudiants et chercheurs de l'Universit de Washington, qui ont ajout Azureus un systme de ratio qui favorise les taux de tlchargement de ceux qui uploadent le plus. PeerCache Afin de limiter le trafic sortant du rseau, il est possible dutiliser un serveur cache pour P2P, agissant comme une sorte de proxy. Pour le rseau FastTrack, il existe PeerCache. Cependant, ce type de serveur est principalement utile pour les FAI afin de concentrer le trafic dans son rseau. Le problme se pose de la lgalit du cache stock sur un tel serveur. Les changes Peer-to-Peer sont en effet, en majeur partie, rput illgaux. Le fait quun fournisseur daccs amliore lefficacit des changes P2P pose donc certains problmes.

29 30

MISC N25 - Mai Juin 2006 - p24 p47 http://www.reseaux-telecoms.net/actualites/lire-quand-skype-consomme-de-labande-passante-dans-votre-dos-5158.html 31 http://www.ratiatum.com/log1097_BitTyrant.html

Page 38 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Wanadoo NL a test la solution mais des problmes lgaux sont survenus de suite32.

Principe de PeerCacheEn rouge, le flux P2P sans peerCache a un cout important cause de linterconnexion. En vert, le flux P2P avec peerCache a un cout plus faible car le trafic reste au sein de son rseau.

Attaque par dnis de services : Les rseaux P2P demandant normment de ressources et impliquant des milliers dutilisateurs, ils peuvent tre dtourns pour lancer des attaques par dnis de services (DoS) et dnis de services distribus (DDoS). Comme nous lavons dj expliqu dans le paragraphe 2.1.8 concernant les problmes sur eDonkey, les rseaux P2P peuvent tre utiliss pour lancer des attaques distribus vers une cible. Par exemple, un serveur eDonkey (ou un tracker BitTorrent) spcialement prpar peut donner les mmes adresses cibles tous les clients qui vont se connecter eux.

Principe du dni de service distribu (DDoS)

Ainsi, des centaines de machines vont tenter de se connecter sur une mme adresse en la surchargeant de demande et risquant de la saturer. Ces attaques peuvent tre lances sur nimporte quel type de matriel accessible par le rseau (serveur, poste de travail, routeur, etc.).32

http://www.transfert.net/Wanadoo-Pays-Bas-utilise-un Page 39 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Il est ainsi facile de sattaquer aux rseaux de plusieurs entreprises. De plus, ces attaques sont discrtes du point de vue du pirate car il ne fait que fournir ladresse cible. Jamais son adresse ne sera considre comme attaquante sur le rseau de lentreprise. Les serveurs permettant dtablir les connexions P2P (les trackers pour BitTorrent) peuvent eux-mmes tre la cible de DDoS. Comme nous lavons dj rpt plusieurs fois, ces serveurs sont un norme point des rseaux centraliss et hybrides. Des attaques par DDoS, causes par la prsence de virus sur de nombreux poste de travail par exemple, peuvent ainsi surcharger les serveurs centralisant les connexions, les rendant compltement indisponible pour les utilisateurs normaux, ce qui peut provoquer une chute considrable des performances du rseau : The distributed denial-of-service (DDoS) attack on the BitTorrent infrastructure prevented some users from downloading files for up to 10 hours on Wednesday 33.

3.6

Actions en justice

La principale ennemie des rseaux P2P de partages de fichiers sont les socits de droits dauteurs et les Majors Amricains qui souhaitent protger les copyrights. Les rseaux P2P Hybrides, qui sont les plus populaires, ont maintes fois montrs leur rsistance face aux attaques informatiques (DDoS, etc.) ou la suppression de certains serveurs trs populaire : suppression des serveurs Razorback pour edk suppression des sites dindexations / tracker (ex : suprnova.org) pour BitTorrent Cependant, les actions en justice finissent toujours par causer normment de problmes aux rseaux P2P, comme la montre la mort de Napster, le premier P2P mondialement connu, o la fin prochaine de KaZaA. Les nouvelles lois, comme par exemple la loi DADVSI34 en France (transposition de la directive europenne 2001/29/CE), permettent aujourdhui dincriminer les utilisateurs des rseaux P2P. Certains pays vont mme plus loin en sattaquant directement aux dveloppeurs de logiciels P2P. Ainsi, Un crateur de P2P japonais a t condamn en justice pour la cration et la mise disposition dun logiciel de P2P facilitant lchange de fichiers copyrights. Ce chercheur de lUniversit de Tokyo avait t arrt en mai 2004 pour son projet de logiciel inspir de Freenet. Ce type de condamnation peut rapidement freiner lexpansion du P2P35.

3334

http://news.zdnet.com/2100-1009_22-5473754.html (2004)

http://fr.wikipedia.org/wiki/DADVSI 35 http://akosh.pcinpact.com/actu/news/33513-winny-P2P-freenet.htm

Page 40 sur 49

LABO (www.labo-asso.com) - Patrick MARLIER Digital Rights Management (DRM) La gestion numrique des droits (en anglais Digital Rights Management ou DRM) a pour objectif de contrler par des mesures techniques de protection l'utilisation qui est faite des uvres numriques. Les P2P sont souvent assimils des logiciels pour pirater des uvres protgs par les droits dauteurs. Ils pourraient ainsi tre lavs de tout soupon sils intgraient une solution de DRM dans leur implmentation36. Cependant, la popularit du P2P serait surement moindre en perdant une grande partie des fichiers partags, comme la montr lchec de Napster aprs sa transformation en logiciel P2P de partage de musique lgale.

3.1

Administration difficile

Un des soucis des systmes dinformatiques dans les entreprises est la surveillance du rseau et de tout ce qui si passe. Ceci passe en gnral par une centralisation des accs sur des serveurs centraux qui peuvent tre protgs et surveills par le SI. Or, malgr tous leurs avantages, les Peer-to-Peer sont crs justement pour ne pas avoir ces serveurs centraux. Cela complique considrablement les tches dadministration ce qui explique que les P2P sont encore sous exploits dans les entreprises. La solution du P2P, bien que plus conomique et robuste que le modle client/serveur (si le serveur tombe en panne, plus rien de marche), reste difficilement contrlable, notamment en terme de scurit sur l'ensemble des donnes qui transite, et des autorisations daccs. Nimporte qui peut devenir un pair sur le rseau, mais tout le monde ne peut pas forcement avoir accs toutes les donnes. Des listes dautorisations doivent donc tre gres et ncessitent donc lutilisation dun serveur central ou la configuration sur chaque machine Grce aux nouvelles techniques permettant dutiliser des serveurs proxy, que les principes doffuscation et de cryptage, il est trs difficile aujourdhui les entreprises de bloquer