Statistiques de performance I2P

J'ai testé i2p ...

Sommaire

Ça fonctionne, mais les performances, l’anonymat et la fiabilité sont à questionner…

i2p+ desktop

TL;DR

En résumé

  • J’ai testé 3 types de déploiements pour mesurer comment ils fonctionnent en tant que proxys (très similaires)
  • J’ai testé 3 types de déploiements de services cachés (i2p+ a été le meilleur)
  • La participation à la flood n’affecte pas les performances du réseau i2p, mais augmente la consommation de ressources.

I2P est lent. Un ping prend 5 à 10 secondes. Et il n’est pas garanti qu’il ne se bloque pas, même si vous avez une bonne connexion.

En bref, c’est quoi

I2P est un protocole réseau au-dessus d’IP, il utilise à la fois TCP et UDP, ainsi que IPv6 et IPv4.

L’idée principale est similaire à celle de TOR : faire transiter les paquets réseau en les chiffrant en temps réel, de sorte que

  • le nœud qui transmet le paquet ne sait pas ce qu’il contient
  • le nœud qui reçoit le paquet ne sait pas l’expéditeur d’origine.

I2P n’a pas de moyen standard pour accéder à “l’internet grand public” (clearnet), il existe des outproxies, mais allons-y… TOR est bien meilleur à cet égard. Ce que i2p propose, ce sont des “services cachés”. Théoriquement, ces services ne savent pas qui les appelle et les utilisateurs ne savent pas quel nœud chaque service est situé.

Les services peuvent être tout programme standard d’internet – serveur IRC, serveur web avec n’importe quoi d’hébergé là, API REST, serveur XMPP ou de courriel.

Et il n’y a pas beaucoup de services là-bas. Environ 200 sites ? Ou 300 ?

Objectif, méthode, aspects moraux et juridiques.

Je vois deux motivations pour héberger un service caché

  • Assurer (s’assurer) son anonymat et sa vie privée
  • Échapper à la surveillance directe de Big Brother – pas toutes les personnes vivent dans des pays démocratiques, certains gouvernements tyranniques oppriment et répriment quiconque ils peuvent. Mais dans ce compartiment (“échapper”), je mettrais toute activité illégale. C’est juste une motivation.

Les aspects moraux et juridiques sont complexes. Mon avis (je ne suis pas un expert juridique, donc ne le prenez pas comme conseil) :

Les personnes ont le droit [moral] à la vie privée. Elles ont le droit [moral] de dire “F.U. Ce n’est pas votre affaire”. Elles ont le droit [moral] d’être… disons… mécontentes, lorsque certains programmes ou téléphones mobiles publient leur localisation, les satellites prennent des photos de leurs jardins et les publient sur Google Street View, et les gouvernements ignorent cette activité et cette mécontentement. En même temps, le gouvernement a, à ma connaissance, le droit [juridique] d’intriguer la vie privée des gens, sous certaines conditions, parfois. Par exemple, en Australie, un policier peut exiger que vous déverrouillez votre téléphone mobile, ce qui a énormément d’implications morales. Voir l’histoire de Monica Smith qui a été de quelque manière exigeée de déverrouiller son téléphone, où la police obtiendrait les contacts de manifestants pro-liberté. (C’étaient les jours des confinements liés au COVID à Melbourne, les plus durs du monde). La police a reculé, mais Monica a alors risqué des années de prison pour non-conformité.

L’anonymat est un autre grand aspect de la vie des gens. Mon avis est que la surveillance et la dénonciation sont trop fréquemment utilisées uniquement pour le doxxing, l’invasion de la vie privée et le harcèlement. Et mieux vaut avoir des règles claires et des procédures lorsqu’on autorise quiconque à l’utiliser.

Performances

OK. Allons-y.

J’ai mesuré combien de temps il faut pour terminer un ping. (HEAD {site}.i2p)

Ci-dessous, la dispersion des retards de réponse.

i2p ping times spread

Ce graphique de dispersion montre que la durée attendue d’appel serait d’environ 5 secondes.

J’ai défini un délai d’attente de 90 secondes, et comme vous pouvez le voir, certaines requêtes n’ont pas terminé du tout. 30 secondes et 60 secondes, je suppose, sont des délais d’attente côté service ou côté routeur.

i2p overall ping delays spread

Les sites principaux sont des sites bien établis http://idk.i2p/, http://zzz.i2p/, http://identiguy.i2p/, http://333.i2p/, http://i2pforum.i2p et similaires, au total 25 de ces sites. Groupe Supplémentaire – ensemble d’autres 100+ sites.

J’ai supposé que les propriétaires des sites principaux savaient ce qu’ils faisaient, et en effet, leurs performances sont meilleures que celles du groupe supplémentaire. Mais la différence n’est pas énorme – juste 1 seconde (~5 secondes vs ~6 secondes médiane de durée d’appel). ET ! les sites principaux ont parfois également des temps d’attente, comme vous pouvez le voir sur le premier graphique (dispersion de la durée de la requête).

Ci-dessous est le graphique d’utilisabilité par type de proxy.

i2p proxy type usability

Durées de ping mesurées des sites du groupe principal à partir de différents proxys. I2P+ sur un et I2Pd sur deux déploiements différents montrent des résultats assez similaires.

Maintenant, l’adaptabilité à l’hébergement de services.

i2p service hosting usability

Le rouge épais ici est I2P+.

Anonymat

Il y avait entre 4000 et 10 000 routeurs en ligne, leurs adresses IP publiques sont bien visibles. Donc, nous ne pouvons pas parler d’anonymat important ici.

Consommation de ressources

Dans mes expériences, I2Pd a consommé environ 130 Mo de RAM + environ 7 % de CPU.

Très bien !

I2P+ a consommé environ 350 Mo + 70 % de CPU.

Dans la configuration I2P+, j’ai un peu augmenté l’autorisation de RAM, espérant qu’il performerait mieux. Donc, voilà.

La participation à la flood dans mes expériences n’affectait pas les performances du réseau i2p, mais augmentait la charge du CPU d’environ +20 %.

Donc, si vous prévoyez d’héberger I2Pd – 1vCPU + 512 Mo suffiront, je crois. Et pour I2P+ – au moins 2vCPU + 1 Go.

L’impression

C’est comme un Fido, un BBS et de bons vieux temps. Quand le réseau est si petit que tout le monde se connaît, juste par des pseudos.

C’est lent. Et vide.

Mais l’impression est si analogique.