I2P - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Applications

Comme pour les VPN ou les darknet, I2P exploite la tunnelisation pour fournir un « réseau dans le réseau ». Contrairement à la majeure partie des réseaux anonymes, I2P se concentre sur une gestion autonome du réseau et à la fourniture d'une couche de transport anonyme. Seul, I2P ne fournit pas les services que l'on peut trouver sur Internet (courriel, téléchargement, web, etc.). I2P est toutefois livré avec la possibilité d'effectuer des mails et téléchargements bénéficiants de l'anonymat du réseau i2P (Susimail et I2pSnark).

Le développement d'applications exploitant le réseau peut se faire sans avoir à modifier le projet. De cette façon, on peut voir des applications exploitant le réseau I2P qui utilisent les même protocoles que ce que l'on trouve sur Internet.

IRC

I2P fourni un reseau IRC anonyme : On peut se connecter de manière anonyme sur ce reseau en utilisant un client IRC (peu importe lequel) pointant vers le serveur 127.0.0.1 sur le port 6668. Cet IRC est anonyme.

Fournies d'origine

  • I2PSnark : Client BitTorrent pour le téléchargement anonyme.
  • Susimail : Client webmail de messagerie anonyme.
  • SusiDNS : Permet de gérer les adresses de « eepsites » (sites Web anonymes) par syndication (gestion décentralisée).

Optionnelles

  • Vuze (anciennement Azureus) : Client BitTorrent. Contient un plugin lui permettant de fonctionner sur I2P.
  • iMule : Logiciel de partage de fichiers de la famille *Mule (ex: eMule, aMule). Peut fonctionner en stand alone, c'est-à-dire sans le routeur i2p externe mais en utilisant un routeur interne i2p propre à imule, néanmoins cela est déconseillé : La version du routeur interne se fait un peu vieille et vous gagnerez en stabilité et en rapidité en utilisant imule avec le vrai routeur i2p, en externe donc.
  • I2Phex : Client Gnutella (partage de fichiers anonyme) dérivé de Phex.
  • Syndie : Gestionnaire de blog sécurisé qui permet la publication de contenu (syndication).
  • I2P-Messenger : Comme le net non anonyme possède ses messengers (Yahoo, MSN, ICQ etc...) i2p possède son propre messenger anonyme et sécure (crypté de bout en bout). Plus basique et simple que ses frères non anonymes il fonctionne néanmoins très bien. Il est bon de savoir que I2P-Messenger fonctionne sans serveur contrairement au réseau irc. On peut le télécharger sur http://echelon.i2p (seulement i2p).

Pour les developpeurs

Il est fourni également une API, pour faciliter le développement de nouvelles applications se reposant sur I2P(SDK, routeur, ...).

Immersion de la charge utile

L'immersion de la charge utile permet de cacher les données effectivement envoyées ou reçues par l'utilisateur d'un routeur I2P. L'immersion est très importante puisque c'est elle qui protège l'anonymat face à un attaquant extérieur qui dispose d'une vue d'ensemble du réseau.

Mécanisme de routage

L'I2P réponds à la problématique du routage en essayant de ne pas compromettre l'anonymat, la qualité du réseau (latence et débit) et aux attaques de déni sur l'ensemble du réseau.

Le NetdB

La notion est simple mais importante, la NetdB(pour network database)est une base de donnée contenant les identifiants des routeurs dans le réseau. Cette base est distribuée et s'apparente à une table de routage dans un routeur conventionnel(sauf qu'ici elle contient les clés d'identification des routeur I2P). Elle utilisait le DHT de Kademlia à la base comme solution de repli mais cette solution a été abandonnée.

Les routeurs floodfills

Pour effectuer le partage des metadonnées du réseau, il est initialisé des pairs floodfill (un petit nombre des routeurs I2P utilise cet algorithme, les autres utilisaient un dérivé de kademlia mais qui n'est plus utilisé maintenant). Quand un pairs floodfill entre une nouvelle clé de cryptage dans la base de donnée du réseau, un autre pair floodfill choisi aléatoirement redemande cette clé, puis si elle est valide le pair se rapproche du premier et republie la clé. A la fin les pairs floodfill partage leur clé en interrogeant sans cesse la base et en faisant une copie des clés valides dans leur mémoire locale, ce qui produit un effet de changement de proximité des pairs floodfill entre eux(les pairs se rapprochent). Toutes les données stockées dans la base s'auto-authentifient en vérifiant la signature de l'élément stocké. Les données sont vérifiées avec un horodatage, les routeurs vérifient régulierement l'heure en interrogeant un serveur SNTP(pool.ntp.org) et détectent les incohérences au niveau de la couche transport(pour éviter les attaques). Pour faire simple les routeurs floodfill assurent la correspondance des clés, le routage des informations et le transport des données dans le réseau(3-5 routeurs floodfill assurent en théorie le bon fonctionnement d'un ensemble de 10.000 routeurs sur le réseau). L'algorithme utilisé n'est pas un algorithme complet mais a été ajusté pour correspondre au besoin d'I2P sans alourdir l'implémentation.

Abandon de Kademlia

Les algorithmes de kademlia était utilisées pour les échanges de metadonnées entre les routeurs. Cette solution fût abandonnée dû aux difficultés de mis en place de l'algorithme. L'algorithme demande un minimum de ressources(pc et cpu) que les routeurs ne pourront pas assumer(bonne idée sur le papier mais pas dans cette application).

Les infos routeurs

Les routeurs stockent uniquement les informations qui lui sont primordiales pour envoyer des messages sur le réseau. Il contient son idendité(une clé ElGamal de 2048bits public, une clé DSA public puis un certificat), les adresses(une liste d'adresse IP, de port, et des ensembles d'options de publication). La clé de cette structure est un SHA256 de l'identité du routeurs. Tant que la version de l'I2P n'est pas en sa version 1.0 les options de publication sont des données de debogage

Recherche dans le réseau d'un routeur précis

Dans un tel système distribué, la recherche d'une information pourrait resembler à une recherche dans une DHT traditionnelle(comme celle réaliser dans les réseaux en P2P). Mais étant donné que le réseau est volatile et en constante évolution(vu la durée de 10 minutes de validité des tunnels), la recherche itérative est facilité dû fait que l'information n'est pas sur le routeur le plus proche mais sur les routeurs ayant une clé d'identification proche du SHA256(identité_du_routeur+un_horodatage_sous_la_forme_AAAAMMJJ), permettant d'avoir un ensemble de routeurs ayant l'information demandée. Ce qui permet également un renouvellement de la place des informations sur le réseau et une protection contre les attaques(car pour attaquer une machine avec ce principe, la place des informations change tous les jours, et oblige l'attaquant à recréer son attaque à chaque fois). Les données de recherche étant sensible, elles transitent dans des tunnels d'exploration différents des tunnels de données.

Page générée en 0.101 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise