samedi 2 octobre 2010

The Invisible Internet Project

Pour contrer les divers gouvernements qui tentent de réduire l'accès à l'information et le partage de part le monde, il existe diverses solutions techniques. La plus connue est probablement TOR, qui permet d'accéder à Internet via le réseau des autres utilisateurs, permettant ainsi de contourner des firewalls et d'être anonyme vis à vis des sites visités.

Carte du monde de la censure sur Internet
En jaune et noir, les pays qui censurent Internet. Source : Wikipedia.


Deux autres solutions existent, qui elles ne permettent pas d'accéder aux services habituels d'Internet, mais établissent un « réseau sur le réseau » indépendant : Freenet et I2P. En utilisant un de ces deux logiciels, on obtient l'accès à un ensemble de sites et de services de façon anonyme, en utilisant d'une part le réseau des autres utilisateurs pour masquer l'origine et la destination des messages, et d'autre part la cryptographie pour en masquer le contenu. Je précise que les réseaux de Freenet et d'I2P sont distincts (bien qu'il existe une passerelle pour Freenet sur le réseau I2P).

Ces deux logiciels, écrits en Java et fonctionnant notamment sous Linux, Mac OS X et Windows, sont relativement gourmands en ressources (temps CPU, mémoire, et espace disque dans le cas de Freenet). Ils sont aussi plutôt prévus pour fonctionner 24h/24 afin de bien s'intégrer dans le réseau et d'obtenir un service de qualité suffisante. Enfin, leur utilisation peut être relativement compliquée. Malgré ces défauts, j'ai voulu voir comment I2P avait évolué depuis la dernière fois que je l'avais essayé.


Une fois I2P téléchargé, installé, et démarré, on accède à l'interface Web de contrôle en allant à l'adresse http://127.0.0.1:7657/. Un clic sur « I2P Internals » dans la colonne de gauche, et on arrive sur la page permettant de configurer l'essentiel : la bande passante à utiliser, et optionnellement des réglages de port et d'IP.


Il faut ensuite configurer son browser Web pour utiliser le proxy 127.0.0.1:4444, afin d'obtenir l'accès au réseau I2P, et notamment aux sites en « .i2p ». Il est préférable d'utiliser un browser permettant d'exclure localhost/127.0.0.1 (comme Firefox), car sinon une fois le proxy activé vous n'aurez plus accès à l'interface d'I2P !

Une fois le proxy activé, vous aurez toujours accès à Internet, mais en passant par le seul et unique “outproxy” d'I2P, à la manière de TOR, ce qui peut servir occasionnellement pour accéder anonymement à un site Web, mais n'est pas l'idéal (c'est très lent, et la personne controlant cet outproxy peut lire tout ce qui passe par sa machine). Il est donc préférable d'avoir un moyen simple d'activer ou désactiver le proxy, ce qui sous Firefox passe par l'installation d'une extension, par exemple Toggle Proxy.

Idéalement, il vaut mieux avoir un browser différent pour l'accès au Web normal, et pour l'accès à I2P. On n'aura alors pas à activer/désactiver le proxy, et on pourra facilement activer la navigation « privée » afin de ne pas garder de trace des sites visités.

Bonne surprise, le chargement des « eepsites » (sites “Web” I2P) est plutôt rapide. Certains sites ne répondent pas, probablement parce que leurs possesseurs ont éteint leur machine... pour une durée inconnue. L'interface Web constitue un point de départ pour découvrir les eepsites existant, dont notamment le forum officiel, un site de statistiques sur le réseau (stats.i2p) et un index de torrents utilisables avec le client BitTorrent intégré.


Parmi les applications livrées avec I2P et accessibles depuis l'interface Web, il y a donc ce client BitTorrent anonyme « I2PSnark », mais aussi un serveur Web si vous voulez héberger votre propre Eepsite, des clients IRC et mail anonymes, et un système de blog anonyme.


Enfin, « iMule », l'adaptation d'eMule/aMule à I2P, est à télécharger et installer séparément depuis http://aceini.no-ip.info/imule/, le site officiel étant actuellement injoignable. L'archive pour Windows d'iMule 1.4.5 disponible sur ce site contient aussi la dernière version d'I2P (0.8). Il s'agit donc d'un package tout en un, avec en prime des instructions d'installation très simples. Il faudra juste en plus télécharger le fichier nodes.dat dans le répertoire de config d'iMule.

J'ai pour ma part récupéré les sources de la version 1.4.6 afin de compiler iMule pour mon Arch Linux, ce qui a nécessité une légère modification du code source pour résoudre une erreur (remplacer « wxString::wxString » par « wxString » dans un fichier).


Une fois lancé et après quelques minutes, le temps de s'intégrer au réseau, iMule permet d'obtenir des résultats de recherche rapidement, en une dizaine de secondes. On se rend vite compte que la majorité du contenu disponible est francophone... On se demande pourquoi ! iMule fonctionne plutôt bien sans réglage particulier, avec toutefois des débits variables probablement inhérents au fonctionnement d'I2P. De plus, sa popularité encore faible fait que les fichiers partagés n'ont qu'un petit nombre de sources (au maximum une trentaine, mais le plus souvent de 1 à 5). Télécharger un fichier relativement gros peut donc prendre plusieurs jours. Il y a tout de même jusqu'à 1 million de fichiers différents disponibles selon l'heure, si j'en crois le nombre affiché dans la barre de status du logiciel.


Une astuce que l'on retrouve çà et là pour accélérer les débits d'iMule est d'augmenter le nombre de tunnels qui lui sont dédiés dans la configuration d'I2P. Personnellement, je n'ai pas remarqué de différence flagrante, mais ça ne coûte rien d'essayer (je vous laisse chercher comment faire, parce que ce post est déjà beaucoup trop long :p).

Au final, c'est un bilan plutôt positif. Même si tout n'est pas parfait et un peu complexe, I2P et ses applications sont fonctionnels et utilisables. L'usage d'iMule est particulièrement simple; celui des fonctionnalités avancées d'I2P comme héberger son propre site nécessitera sûrement plus de lecture... I2P bénéficie d'améliorations régulières en ce moment (une nouvelle version tous les mois et demi environ), et l'amélioration de la documentation et des performances font partie de la roadmap de l'équipe de développement. Je pense donc que le nombre d'utilisateurs de ce réseau ne fera qu'augmenter dans les mois et années à venir.

Aucun commentaire:

Enregistrer un commentaire