pt
Moulé à la louche depuis 1999
Les trucs qui m'énervent... et je vais pas prendre de pincettes
Internet, informatique, logiciel libre, économie, politique, vie courante et tout le reste...

FreeNet, TOR, I2P: Même combat

Lundi 06 septembre 2010

Ça y est, maintenant que ma machine n'est plus une brouette, mon PC est assez puissant pour devenir un nœud Freenet. Pour le moment j'ai alloué 256 Mo de RAM (sur mes 2 Go) et 50 Go 90 Go d'espace disque à Freenet (et 60% de ma bande passante en flux montant, ce qui ne me ralentit même pas pour les jeux en ligne).

C'est un début. Je ne publie encore rien sur Freenet, mais cette installation c'est ma petite contribution à la lutte globale contre la censure et la surveillance. On verra éventuellement plus tard pour d'autres (TOR, I2P, OneSwarm, OFF, GnuNET, MUTE...). (Au passage: Merci Arkados d'avoir rappelé Freenet à ma mémoire. Cela faisait trop longtemps que je n'avais pas essayé les nouvelles versions.)

Sur ce, une petite présentation des 3 principaux logiciels de P2P anonymes s'impose: FreeNet, TOR et I2P. Quels sont leurs buts, comment font-ils pour y parvenir, et quelles sont leurs différences.

Les technologies des réseaux P2P anonymes


Ces réseaux (FreeNet, TOR, I2P) sont conçus pour contourner la surveillance et la censure. Leur but premier est l'anonymat, aussi bien pour protéger celui qui publie que pour protéger celui qui consulte. Leurs orientations sont tout de même légèrement différentes. Pour résumer grossièrement:
  • TOR: Pour naviguer sur le web "normal" sans révéler son adresse IP.
  • I2P: Pour communiquer entre deux ordinateurs (tous protocoles: web, FTP, ssh...) sans révéler son adresse IP (=services cachés)
  • Freenet: Pour publier des documents (pages web, PDF, images, vidéos...) de manière anonyme et résistante à la censure.

Pour cela ils utilisent différentes technologies: ports aléatoires, chiffrement, onion-routing, tunelling, résolution de noms interne. (Petite note de vocabulaire: On appelle "noeud" un ordinateur participant au réseau P2P.)

  • Ports aléatoires: L'une des méthodes les plus primitives de censure de réseau est le blocage de ports. On a déjà vu des FAI bloquer le port 80 de certains internautes pour les empêcher de mettre un serveur web chez eux. Ou encore le port 6881 pour bloquer BitTorrent. Ces logiciels de P2P utilisent des ports aléatoires, rendant ce genre de blocage inopérant.

  • UDP hole punching: Cette technique permet à ces logiciels de recevoir des paquets UDP sans avoir à ouvrir de ports dans les firewalls/NAT. Cela simplifie la configuration et réduit l'exposition de l'ordinateur.

  • Chiffrement: En chiffrant (encryptant) tous les paquets de données, cela empêche le FAI/gouvernement de connaître la nature des données échangées (textes, images, vidéos...). Tout ce que le FAI verra c'est une infâme soupe d'octets d'aspect aléatoire. Cela empêche l'inspection des paquets par DPI.

  • Onion routing: Une des méthodes de surveillance classique est de noter la liste des adresses IP qu'un internaute va contacter (d'ailleurs, c'est obligatoire en France et dans beaucoup de pays). Une fois l'IP d'un serveur connue, il est facile de la bloquer, ou de faire pression sur son administrateur/webmaster.
    Ces logiciels de P2P utilisent l'onion-routing: Chaque paquet de données contient plusieurs couches de chiffrement, et le paquet est transmis de proche en proche aux participants du réseau (nœuds). Chaque participant déchiffre le paquet qui lui est destiné avec sa clé pour lire les informations de routage, et transmet le paquet à la machine suivante. Donc même les participants du réseau qui relaient des paquets ne peuvent connaître ni la destination finale du paquet, ni la source, ni le contenu.
    Compromettre la sécurité de vos communications nécessiterait de compromettre un grand nombre de participants du réseau. Votre FAI/gouvernement ne peut donc savoir ni ce que vous communiquez, ni avec qui vous communiquez réellement, même s'il participe au réseau P2P en tant que nœud-relai.

  • Tunelling: La plupart de ces logiciels sont capables d'encapsuler d'autres protocoles: Vous pouvez faire passer web, chat, mail, FTP et autres à travers ces réseaux P2P. Autrement dit, votre FAI ne voit plus quel protocole vous utilisez. Il ne voit que des paquets de données chiffrés. Il ne peut pas déterminer votre usage d'internet (Est-ce que l'internaute fait du web, du chat, de l'échange de fichier ?).
    (Pour Freenet, pas de tunelling: Les applications doivent être développées spécifiquement pour utiliser Freenet).

  • Stockage réparti: Certains réseaux de P2P (comme Freenet) proposent un système de stockage réparti, c'est à dire qu'un document inséré dans le réseau P2P est découpé en petits morceaux qui sont copiés chez de nombreux participants du réseau. Il n'y a plus de source unique pour un document, et le censurer devient donc très difficile (d'autant plus que les adresses IP ne sont pas connues).

  • Résolution de nom interne: L'une des méthodes les plus primitives (mais efficaces) de censure consiste à bloquer certains sites au niveau des DNS. Par exemple, facile de bloquer tout YouTube en bloquant le domaine youtube.com. Ces logiciels de P2P utilisent leur propre système de résolution de nom, rendant inopérant tout blocage au niveau des DNS. TOR utilise des noms se terminant en .onion, et I2P des noms se terminant en .i2p. Freenet utilise des clés cryptographiques. Quelques exemples:
    • Une page web dans TOR: http://32rfckwuorlf4dlv.onion/
    • Une page web dans I2P: http://tjgidoycrw6s3guetge3kvrvynppqjmvqsosmtbmgqasa6vmsf6a.b32.i2p/
    • Une page web dans Freenet: http://localhost:8888/USK@RJnh1EnvOSPwOWVRS2nyhC4eIQkKoNE5hcTv7~yY-sM,pOloLxnKWM~AL24iDMHOAvTvCqMlB-p2BO9zK96TOZA,AQACAAE/index_fr/-1/

Ces technologies combinées rendent la surveillance quasi-impossible: Votre fournisseur d'accès ou votre gouvernement ne peut plus savoir ce que vous consultez, ni avec qui vous communiquez. Même le simple traçage des adresses IP est vain. Espionner vos communications nécessiterait de compromettre un grand nombre de participants du réseau, ce qui est irréaliste. Il devient également impossible de prouver que c'est bien vous qui avez publié un document.

Différentes applications peuvent ensuite être bâties sur ces réseaux: web, blogs, forums, chat, email, newsgroups, échange de fichiers... le tout anonyme. Il est possible d'imaginer presque n'importe quelle application, comme on le ferait sur l'internet "normal" (tout en prenant en compte la lenteur, bien sûr).

Vous connaissez l'adage: «Un document diffusé sur internet ne disparaît jamais» ? C'est encore plus vrai avec Freenet: Même un auteur ne peut pas effacer un document qu'il a inséré dans Freenet. La seule manière pour qu'un document disparaisse, c'est qu'il n'intéresse plus personne (plus de téléchargement du document = disparition progressive dans Freenet avec le temps).

Différences de buts et de conception

Ces 3 logiciels de P2P anonymes ont des conceptions légèrement différentes.

  • Ils sont tous les trois conçus pour l'anonymat: Les adresses IP des participants ne sont jamais révélées.

  • TOR et I2P sont conçus pour permettre la mise en relation de deux ordinateurs sans révéler leur adresse IP réelle. Ce sont des outils de mise en relation.
    Freenet est conçu comme un système de stockage réparti de documents.

  • Conséquences 1: Après avoir inséré un document dans Freenet, vous pouvez vous déconnecter. Le document restera accessible. Avec TOR ou I2P, le serveur qui publie le document doit rester en ligne pour que les documents soient accessibles.

  • Conséquence 2: Avec TOR ou I2P, si par mégarde un serveur est identifié, il est possible de le faire fermer, et donc de faire disparaître des documents. Avec Freenet, tout document inséré est réparti entre tous les participants du réseau: Il n'y a plus de source unique pour un document. Cela rend Freenet bien plus résistant à la censure.

  • TOR et I2P sont des outils de mise en relation (connexion) anonymes. Freenet est conçu pour stocker et distribuer des documents. Freenet ne peut donc servir que du contenu statique, pas de pages dynamiques.

  • TOR permet de consulter le web "normal" (hors du réseau TOR), c'est même son but premier. I2P a été conçu spécifiquement pour se connecter à d'autres machines du réseau I2P (=services cachés). Freenet ne permet de consulter que ce qui a été inséré sur le réseau Freenet.

  • TOR peut fonctionner à la manière d'I2P (services cachés), mais c'est lent (Il n'a pas été prévu pour ça).

  • TOR et I2P peuvent anonymiser des logiciels existants (email, chat, FTP, ssh...). Pour Freenet, les logiciels doivent être spécialement développés ou modifiés pour fonctionner avec Freenet.

  • En plus de l'anonymat, certains de ces réseaux vous offrent la possibilité du pseudonymat, c'est à dire la possibilité d'avoir une identité numérique sur ces réseaux. (Freenet permet de signer cryptographiquement vos documents et fichiers, prouvant votre identité numérique, sans jamais révéler votre vraie identité.)

Voici un tableau qui essaie de résumer les différences:


 TOR
 I2P
 Freenet
Onion-routing oui oui oui
Chiffrement oui oui oui
UDP hole punching non oui oui
Résolution de nom interne oui oui oui
Accès au web « normal » oui non non
Accès au contenu dynamique oui oui non
Accès au contenu statique oui oui oui
Protège l'anonymat du lecteur oui oui oui
Protège l'anonymat de l'éditeur oui(1) oui oui
Stockage réparti (résistance à la censure) non non oui
Tunelling d'applications existantes oui oui(2) non(3)
Services cachés oui(4) oui non
(1) Applicable seulement aux services cachés, donc lent.
(2) mais il existe aussi des applications développées spécifiquement pour I2P, comme iMule.
(3) Les applications doivent être modifiées ou développées spécifiquement pour utiliser Freenet.
(4) Mais très lents.

Inconvénients

Le principal reproche qu'on peut faire ces réseaux est qu'ils sont lents, principalement à cause de l'onion-routing et du stockage distribué. Mais c'est un prix à payer pour l'anonymat. Certains concepts sont également parfois un peu difficile à appréhender (le système des clés dans Freenet, par exemple).

Ensuite, il faut bien garder à l'esprit que ce sont quand même des technologies assez "jeunes" (même si certains projets ont débuté en 2000). Elles ne sont donc pas parfaitement au point, et il y a de la place pour l'amélioration. Il n'est pas impossible non plus que des failles soient découvertes.

Ces réseaux ont également leur faiblesses. Par exemple pour démarrer, TOR et Freenet obtiennent une poignée d'adresse IP d'autres nœuds à l'aide d'un serveur public. Ce serveur pourrait être bloqué par les gouvernements, ou utilisé par ces derniers pour obtenir la liste des nœuds participant au réseau et ainsi les bloquer. (D'ailleurs c'est pour cela que que les concepteurs de Freenet ont ajouté une option "Darknet" qui offre la possibilité de ne se connecter qu'à des nœuds de confiance (amis), empêchant la censure.). Notez que la liste des adresses IP participant au réseau TOR est publique et connue.

Même en utilisant ces réseaux, on est pas à l'abri d'une gaffe: Donner son identité réelle dans un formulaire web ou un email, publier un document contenant des informations permettant de vous identifier (GUID dans les documents Word), bugs dans les navigateurs, etc. D'autre part, les pages web pouvant contenir du contenu actif (javascript, flash, cookies flash, plugins divers...), il est possible dans certains cas d'obtenir l'adresse IP réelle d'un utilisateur de TOR.

Quand vous utilisez TOR pour aller sur le web "normal", cela veut dire que vos requêtes HTTP sortent par un participant aléatoire du réseau TOR. Le serveur web ne verra que cette adresse IP, pas la vôtre. Mais cela veut dire aussi que le nœud de sortie TOR verra votre trafic web ainsi que vos mots de passe. Et il y a déjà eu quelques affaires très sérieuses de vol de mots de passe liées à TOR. Et absolument n'importe qui peut mettre en route un nœud de sortie. Je vous recommande donc la prudence. En ce qui me concerne, je préfère ne pas pré-supposer qu'un membre du réseau TOR est forcément bienveillant (Bisounours outside™), donc je n'utilise pas TOR.

Freenet a une particularité: Une partie de votre disque dur (de la taille de votre choix) est utilisée pour participer au système de stockage global de Freenet. Les fichiers insérés dans Freenet sont compressés, découpés en petits paquets et chiffrés en AES 256 bits. Votre disque dur va donc stocker des paquets de données chiffrées. Vous n'avez aucun moyen de les déchiffrer car la clé de chiffrement n'est pas incluse. Vous ne savez donc pas ce que vous stockez (et vous ne pouvez être accusé de rien). Cela vous met mal à l'aise ? J'en viens à la suite:

Un choix moral

Oui, Freenet peut être utilisé pour faire le bien ou le mal. C'est inhérent à n'importe quelle technologie de communication, et je ne pense pas qu'il faille blâmer la technologie elle-même.

A ceux qui penseraient qu'il n'y a pas de justification à l'anonymat, je répondrai: Pression des entreprises, menaces (morales, physiques, de procès), harcèlement, pression des gouvernements, censure, emprisonnement, torture, meurtres. Ça se passe en ce moment même, partout sur la planète. Si vous vivez dans une démocratie qui vous laisse vous exprimer librement, dites-vous bien que vous faites partie d'une minorité. Demandez-vous pourquoi, aussi, le vote dans les démocraties est à bulletin secret. Il y a une excellente raison: Celui d'exprimer ses choix sans s'exposer publiquement, sans subir de pressions, sans être inquiété. On peut voir dans Freenet un prolongement de ce principe.

Trouvez-vous normal qu'un gouvernement puisse surveiller ses citoyens, mais que les citoyens ne puissent pas surveiller le gouvernement qu'ils ont élu ? Et en ces temps où les énormes corporations et même les démocraties piétinent notre vie privée, il est largement temps de mettre en place ce contre-pouvoir. Il ne s'agit pas de lutter contre le pouvoir, il s'agit de rétablir la balance. C'est un outil technique qui nous permet de garantir notre liberté d'expression et notre vie privée. Il est d'autant plus facile de participer à cet effort commun que la mise en place est simple (Pour Freenet: Quelques minutes pour installer un logiciel et un peu d'espace disque à réserver).

Vous pouvez le faire. C'est votre choix. Ça ne vous semble peut-être pas utile maintenant, mais savez-vous ce qui se passera dans 10, 20 ans ? Serez-vous toujours dans une catégorie acceptable pour vos gouvernants ?

Quand je met tout ça dans la balance, il n'y a pas photo. Faire participer mon ordinateur au réseau Freenet aide des gens.

Pour finir, je vous donne cette citation de Mike Godwin (oui, l'inventeur du point Godwin):
« Je suis tout le temps soucieux au sujet de mon enfant et d'Internet, bien qu'elle soit encore trop jeune pour se connecter. Voilà ce qui m'inquiète. Je redoute que dans 10 ou 15 ans elle vienne me voir et me demande "Papa, où étais-tu quand ils ont supprimé la liberté de la presse sur Internet ?" »

Je ne veux pas paraître pessimiste, mais je pense que malgré nos efforts, les lobbies, gouvernements et intérêts personnels vont continuer à miner notre vie privée et notre liberté d'expression. Ces logiciels nous offrent la possibilité de reprendre partiellement le contrôle. Profitons-en.


PS: Pour le moment, le contenu disponible dans Freenet est un peu pauvre et désorganisé. Quelques sites d'opinion, des sites concernant Freenet lui-même, quelques blogs, des sites anti-scientologie, du porno et des films piratés (évidemment). Il y a également un bon nombre de forums (avec Frost et FMS).

Voir tous les billets