Les réseaux anonymes de l’Internet : 3e partie, I2P

I2P est un réseau décentralisé dans le réseau Internet. Inspiré par le projet TOR, nous pouvons considérer I2P comme une évolution de ce projet universitaire bien connu et soucieux de l’anonymat sur l’Internet. Tandis que TOR est davantage orienté fonctionnel, la prise en compte de l’utilisateur et de ses usages est plus importante dans I2P. Comment ? En offrant plus qu’un réseau anonyme. Voilà ce que les contributeurs en disent sur leur page : “I2P est une couche réseau commuté anonyme évolutive, auto gérée, sur laquelle un nombre illimité d’applications anonymes ou sécurisées peuvent fonctionner.”

Jrandom son créateur, comme tous les contributeurs du projet, n’est connu que de son pseudonyme. Un anonymat qui se traduit donc jusqu’à l’anonymat des concepteurs. I2P n’est ni un projet commercial, ni un projet de recherche universitaire. Il s’agit d’un challenge que se sont lancé des passionnés pour faire évoluer l’Internet.Le défi technique d’I2P se construit autour de la méthode de routage utilisée, le “routage en ail”. I2P est en fait une méthode de routage de l’information dans laquelle tous les participants au réseau sont des routeurs. Ce type de routage détaillé ici utilise la tunnellisation, le chiffrement et une communication régit par une table de commutation partagée.

1. Les tunnels, une autre philosophie pour le routage

Pour assurer une dissimulation de l’appartenance au réseau, les données transitent à travers des tunnels unidirectionnels. Au minimum, quatre tunnels impliquant 6 participants (extrémités comprises) du réseau sont créés. Ainsi, on brise la communication directe dite de pair à pair (P2P) pour rendre le tracé d’un échange incompréhensible pour un observateur. Les extrémités qui s’échangent effectivement des données ne sont pas plus identifiables comme porteurs de la communication que les autres nœuds sollicités lors de l’échange

Cette topologie offre une architecture à commutation de paquets dans laquelle l’anonymat est permis par de multiples facteurs :

  • Les chemins à suivre pour joindre un interlocuteur changent toutes les 10 minutes.
    Un observateur qui réussirait à déchiffrer le trafic sur l’ensemble des tunnels ne peut le faire en 10 minutes. Ainsi il ne sera pas capable de repérer suffisamment rapidement un changement de topologie pour continuer à suivre l’échange.
  • La séparation entre les flux d’entrées et de sorties.
    Il est très difficile de reconstituer une communication en ne récupérant qu’un seul sens de celle-ci.

Comme les données sont symétriquement chiffrées, la confidentialité est assurée. Cependant une attaque basée sur la dynamique des échanges reste possible. En observant le trafic d’un routeur peu utilisé, il est possible de faire la correspondance entre des données entrantes et sortantes. En admettant cela, on peut dire que l’observateur pourra reconstituer l’échange au niveau d’un seul des nœuds utilisés.

2. Chiffrement et type de clé utilisées

Pour garantir la confidentialité des données, en plus de la difficulté à établir le chemin emprunté, elles sont chiffrées à trois niveaux :

– De bout en bout : les communications entre pairs sont chiffrés grâce un algorithme symétrique (ElGamal/AES+SessionTag).

– Entre chaque nœud : les tunnels sont aussi chiffrés avec ce même algorithme.

– Les informations de routage : pour construire la table de routage du réseau, les nœuds partagent leur “router info”. Ces informations sont chiffrées grâce à un algorithme asymétrique avec la clé privé propre à chaque nœud. C’est ici pour un besoin d’authentification que le chiffrement est utilisé.

3. Caractéristique de la base de données réseaux

I2P utilise un identifiant de 516 caractères pour identifier les routeurs, c’est l’équivalent de l’adresse IP sur Internet. Heureusement, I2P dispose d’un service de nommage intégré appelé SusiDNS. Les enregistrements de SusiDNS font correspondre les noms d’hotes (ex : host.i2P) et les identifiants des routeurs stockés dans la NetDB (base de donnée réseau). C’est la transmission des routers Infos par les participants qui approvisionne la NetDB comme suit :

  • L’identité du routeur (Une clé de chiffrement ELGamal de 2048 bits, une clé publique DSA de 1024 bits et un certificat),
  • L’adresse de contact (ex : 209.85.229.147 TCP:4108),
  • La date de publication de la router info,
  • Un ensemble d’options,
  • La signature de ce paquet générée par la clé privé de l’émetteur.

Ce qui fait la force d’I2P, c’est l’hébergement de services comme l’IRC, la publication de sites web ou encore le mail. Pour s’affranchir des pertes de disponibilité du au changement de localisation des serveurs, ces services sont identifiés via des LeaseSets, une sous partie de la “routeur info”. Les LeaseSets sont donc uniquement transmises par les participants hébergeant des services I2P comme les eepSites. Pour être joignable sur le réseau et ne pas servir uniquement de relais, les LeaseSets sont annoncées en plus des routers infos par les données suivantes :

  • Le nœud d’entrée  du service (en spécifiant son identité, un même service peut être rattaché à une multitude de router).
  • L’ID du tunnel sur lequel le routeur est joignable (un numéro à 4 octets).
  • La date d’expiration du tunnel.

4. Une base de donnée décentralisée pour plus de robustesse

La base de données du réseau est décentralisée. Elle est répartie sur des ordinateurs sélectionnés pour leurs performances, ces ordinateurs passent du statut de routeur à celui de routeur FloodFill. Cette décentralisation offre une grande robustesse au réseau. En effet, contrairement aux architectures centralisées classique, il n’y a pas de point de faiblesse unique. Lorsqu’un nouvel utilisateur souhaite s’attacher au réseau, une requête est envoyée à des serveurs prédéfinis dans le logiciel client. Cette prédéfinition s’appuie sur des identifiants statiques qui seront dynamiquement assignés à des routeurs FloodFill en bon état de fonctionnement.
5. I2P, la suite

I2P est encore en développement et le réseau grandit de jour en jour. Des améliorations sont constamment apportées par la communauté de développeurs qui gravite autour de ce projet. Le prochain défi d’I2P est de proposer le service qui en fera une plate-forme réseau plébiscitée.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s