618 lines
44 KiB
HTML
618 lines
44 KiB
HTML
{% extends "_layout_fr.html" %}
|
|
{% block title %}Modèle des menaces pour I2P{% endblock %}
|
|
{% block content %}
|
|
Traduction d'avril 2011. <a href="how_threatmodel.html">Version anglaise actuelle</a><br /><br />
|
|
Mise à jour de novembre 2010, valide pour la version 0.8.1 du routeur
|
|
<h2>Ce que nous entendons par "anonyme"</h2>
|
|
|
|
<p>Votre niveau d'anonymat peut se définir par "la difficulté que quelqu'un rencontrera pour trouver des informations
|
|
vous concernant que vous ne voulez pas qu'il connaisse" - qui vous êtes, où vous vous trouvez, avec qui vous
|
|
communiquez, ou même quand. L'anonymat "parfait" n'est ici un concept ni pertinent ni utile : un logiciel ne vous
|
|
rendra pas indiscernable par des gens qui n'utilisent ni ordinateur ni Internet. Nous travaillons plutôt à produire
|
|
l'anonymat suffisant aux besoins réels, dans la mesure du possible, de qui que ce soit - de ceux qui se promènent
|
|
simplement sur Internet, à ceux qui échangent des données, jusqu'à ceux inquiets de l'intrusion des organisations et
|
|
des états.</p>
|
|
|
|
<p>La réponse à la question de savoir si I2P apportera un anonymat suffisant à vos besoins particuliers est difficile,
|
|
mais nous espérons que cette page vous éclairera en passant en revue les diverses menaces.</p>
|
|
|
|
<p>Nous accueillons avec bienveillance toutes recherches et analyses supplémentaires sur la résistance d'I2P aux
|
|
menaces décrites ci-dessous. Nous avons besoin de plus de recherche sur la littérature existante (dont la plus grande
|
|
partie est focalisée sur Tor), ainsi que de travaux originaux.</p>
|
|
|
|
<h2>Résumé de la topologie du réseau</h2>
|
|
<p>I2P germe des idées de nombreux <a href="how_networkcomparisons">autres</a> <a href="links_fr">systèmes</a>, mais
|
|
il faut garder à l'esprit un petit nombre de points essentiels quand on examine la littérature concernée :</p><ul>
|
|
<li><b>I2P est un réseau croisé sur routes libres</b> - le créateur du message définit explicitement le chemin par
|
|
lequel celui-ci sera envoyé (le tunnel sortant), et le destinataire du message définit explicitement le chemin par
|
|
lequel le message sera reçu (le tunnel entrant).
|
|
</li>
|
|
<li><b>I2P n'a aucuns points d'entrée ou de sortie officiels</b> - tous les pairs participent intégralement au
|
|
maillage, et il n'y a pas de mandataires entrants ou sortants au niveau de la couche réseau (il en existe cependant
|
|
quelques-uns au niveau de la couche application)</li>
|
|
<li><b>I2P est entièrement décentralisé</b> - il n'y a pas de contrôles ou d'autorités centrales : quelqu'un pourrait,
|
|
sans briser la compatibilité avec le reste du réseau, modifier quelques routeurs en vue de contrôler une partie de la
|
|
chaîne de maillage (en construisant les tunnels et en maîtrisant les clés nécessaires au pilotage du transfert au
|
|
niveau du point terminal du tunnel) ou élaborer une sélection basée sur un profilage des informations d'annuaire, mais
|
|
ceci n'est bien sûr pas nécessaire (et pourrait même réduire son anonymat à néant).</li>
|
|
</ul>
|
|
<p>
|
|
Nous avons des plans documentés de mise en œuvre de <a href="todo_fr#stop">retards conséquents</a> et
|
|
de <a href="todo_fr#batching">stratégies traitements par lots</a> dont l'existence et le détail des modalités ne sont
|
|
connus que par le saut ou la passerelle de tunnel particuliers qui reçoivent le message, pour permettre au réseau
|
|
(croisé à basse latence dans sa caractéristique principale) de fournir un trafic de camouflage aux communications de
|
|
latence plus élevée (p.ex. les e-mails). Nous savons que l'introduction de retards élevés est requise pour assurer une
|
|
protection significative, et que son implémentation sera une épreuve sérieuse. Il n'est cependant pas actuellement
|
|
certain que nous solliciterons ces méthodes de retardement.</p>
|
|
<p>
|
|
En théorie, des routeurs situés sur le chemin du message pourraient injecter un nombre arbitraire de sauts
|
|
supplémentaires avant de transférer le message au pairs suivant. L'implémentation actuelle ne le fait pas.
|
|
</p>
|
|
|
|
|
|
<h2>Le modèle de menaces (Attaques)</h2>
|
|
<p>
|
|
La conception d'I2P a commencé en 2003, juste après l'apparition de l'
|
|
<a href="http://www.onion-router.net">[Onion Routing]</a>, de <a href="http://freenetproject.org/">[Freenet]</a>, et de
|
|
<a href="http://www.torproject.org/">[Tor]</a>. Notre conception tire de substantiels bénéfices des recherches publiées
|
|
à cette époque. I2P utilise plusieurs des techniques du routage en oignon, et continue de bénéficier de l'intérêt que
|
|
Tor suscite dans la recherche théorique.</p>
|
|
<p>
|
|
Inspirée des attaques et analyses mises en avant dans <a href="http://freehaven.net/anonbib/topic.html">littérature</a>
|
|
(particulièrement <a href="http://citeseer.ist.psu.edu/454354.html">Traffic Analysis: Protocols, Attacks, Design Issues
|
|
and Open Problems</a>), la suite décrit brièvement un large éventail d'attaques et plusieurs des contre-mesures prises
|
|
par I2P. Nous tenons à jour cette liste pour y ajouter les nouvelles attaques au fur et à mesure de leurs découvertes.
|
|
</p><p>
|
|
Nous y adjoignons quelques attaques spécifiques à I2P. Nous n'avons pas de réponse adaptée à chacune d'elles, mais nous
|
|
poursuivons nos recherches et fourbissons nos défenses.</p>
|
|
<p>
|
|
De plus, plusieurs de ces attaques sont d'autant plus potentiellement réalisables que la taille du réseau est
|
|
actuellement modeste. Bien que nous soyons au courant de quelques limitations qui restent à résoudre, I2P est conçu
|
|
pour accueillir des centaines de millier et même des millions de participants. Au fur et à mesure de la croissance du
|
|
réseau, ces attaques deviendront de plus en plus difficiles à monter.</p>
|
|
<p>
|
|
Les pages sur la <a href="how_networkcomparisons.html">comparaison des réseaux</a> et la
|
|
<a href="how_garlicrouting.html">terminologie des "gousses d'ail"</a> apportent aussi un éclairage complémentaire.
|
|
</p>
|
|
|
|
<h3 id="index">Index</h3>
|
|
<ul>
|
|
<li><a href="#bruteforce">Force brute</a></li>
|
|
<li><a href="#timing">Attaques de timing</a></li>
|
|
<li><a href="#intersection">Attaques d'intersection</a></li>
|
|
<li><a href="#dos">Deni de service</a></li>
|
|
<li><a href="#tagging">Attaques par marquage</a></li>
|
|
<li><a href="#partitioning">Attaques par cloisonnement</a></li>
|
|
<li><a href="#predecessor">Attaques de prédécesseur</a></li>
|
|
<li><a href="#harvesting">Attaques de collecte</a></li>
|
|
<li><a href="#traffic">Identification via l'analyse du trafic</a></li>
|
|
<li><a href="#sybil">Attaques de Sibylle</a></li>
|
|
<li><a href="#buddy">Attaques de listage de complices</a></li>
|
|
<li><a href="#crypto">Attaques cryptographiques</a></li>
|
|
<li><a href="#floodfill">Attaques de la part des diffuseurs</a></li>
|
|
<li><a href="#netdb">Autres attaques de base de données</a></li>
|
|
<li><a href="#central">Attaques des ressources centralisées</a></li>
|
|
<li><a href="#dev">Attaques au niveau du développement</a></li>
|
|
<li><a href="#impl">Attaques d'implémentation</a></li>
|
|
<li><a href="#blocklist">Autres défenses et protections</a></li>
|
|
</ul>
|
|
|
|
<h3 id="bruteforce">Force brute</h3>
|
|
|
|
<p>Une attaque en force brute peut être montée par un adversaire global passif ou actif qui surveillerait tous les
|
|
transferts de messages entre tous le nœuds et tenterait d'établir une corrélation entre les messages et les chemins
|
|
qu'ils empruntent. Le montage d'une attaque de ce type contre I2P ne serait pas une mince affaire car tous les pairs du
|
|
réseau envoient souvent des messages (tant de bout en bout que d'entretien du réseau), sans compter les changements de
|
|
taille et de données des messages tout au long de leur transit d'un bout à l'autre. de plus, l'attaquant externe n'a
|
|
pas accès au messages, car la communication inter-router est à la fois cryptée et envoyée comme un flux (ce qui rend
|
|
deux messages de 1024 bits indiscernables d'un message de 2048 bits).</p>
|
|
|
|
<p>Cependant, un attaquant puissant peut utiliser la force brute pour détecter des tendances - s'il peut envoyer 5 Go à
|
|
une destination I2P et surveiller toutes les connexions du réseau, il peut éliminer les pairs qui n'ont pas reçu 5 Go.
|
|
Il existe des techniques pour déjouer cette attaque, mais elle serait prohibitive (voir :
|
|
<a href="http://citeseer.ist.psu.edu/freedman02tarzan.html">Tarzan</a> et sa simulation de trafic à taux constant). La
|
|
plupart des utilisateurs ne craignent pas cette attaque à cause de son extrême coût de montage (et du fait qu'elle
|
|
nécessiterait à coup sûr un comportement légalement répréhensible). Elle est malgré tout envisageable au niveau d'un
|
|
gros FAI ou d'un point d'échange Internet. Ceux qui veulent y parer devraient prendre des mesure conservatoires, telles
|
|
que régler de faibles limites de bande passante et l'utilisation de jeux de baux cryptés ou non publiés pour les sites
|
|
eep. D'autre contre-mesures comme les retards volontaires et les routes privées ne sont pas implémentées actuellement.
|
|
</p><p>
|
|
En tant que protection partielle envers un seul routeur ou un groupe de routeurs qui tenteraient de router tout le
|
|
trafic du réseau, le routeur contient des limites quand au nombre de tunnels pouvant être routés par un seul pair.
|
|
À mesure de la croissance du réseau, ces limites sont sujettes à ajustements ultérieurs.
|
|
D'autres mécanismes d'évaluation, de sélection et d'évitement des pairs sont approfondis la page
|
|
<a href="how_peerselection.html">sélection des pairs</a>.
|
|
</p>
|
|
|
|
|
|
|
|
<h3 id="timing">Attaques de timing</h3>
|
|
|
|
<p>Les messages I2P sont unidirectionnels et n'induisent pas nécessairement de réponse. Cependant, les applications
|
|
tournant sur I2P ont certainement des motifs reconnaissables dans la fréquence de leurs messages - par exemple
|
|
une requête HTTP est un court message suivi d'une longue séquence de messages constituant la réponse. Connaissant ça,
|
|
un attaquant doté d'une large vue sur la topologie du réseau serait en mesure d'écarter les liens trop lents pour avoir
|
|
pu transférer les réponses dans le temps observé.</p>
|
|
|
|
<p>Ce genre d'attaque est efficace, mais sa faisabilité n'est pas évidente car les retards variables sur les transferts
|
|
de messages dus à mise en file d'attente, au traitement et au bridage dépassent souvent le temps nécessaire au passage
|
|
à travers un seul lien - même si l'attaquant sait qu'une réponse repartira dès le message reçu. Il y a quelques
|
|
scenarii qui exposent cependant des réponses automatiques rapides - c'est le cas dans l'utilisation de la
|
|
bibliothèque de flux (avec le SYN+ACK), et le mode transmission garantie (avec la paire
|
|
DataMessage+DeliveryStatusMessage).</p>
|
|
|
|
<p>Sans camouflage du protocole ou latences plus élevées, des adversaires globaux actifs peuvent obtenir des
|
|
informations significatives. Les gens soucieux de ces attaques pourraient augmenter la latence (en utilisant des
|
|
<a href="todo_fr#stop">retards non négligeables</a> ou les
|
|
<a href="todo_fr#batching">stratégies de traitement par lots</a>), le camouflage de protocole, ou d'autres
|
|
<a href="todo_fr#batching">techniques</a> de routage en tunnel avancées, mais celles-ci ne sont pas implémentées dans
|
|
I2P.
|
|
</p>
|
|
|
|
<p>Références:
|
|
<a href="http://www.cs.colorado.edu/department/publications/reports/docs/CU-CS-1025-07.pdf">Low-Resource Routing
|
|
Attacks Against Anonymous Systems</a>
|
|
</p>
|
|
|
|
<h3 id="intersection">Attaques d'intersection</h3>
|
|
|
|
<p>Les attaques d'intersection contre les systèmes à basse latence sont très efficaces - il s'agit de contacter
|
|
périodiquement la cible et de conserver la trace des pairs présents sur le réseau. Au fil du temps, quand la présence
|
|
des nœuds est bien homogénéisée, l'attaquant obtient des informations en croisant simplement les jeux de pairs en ligne
|
|
quand un message les traverse avec succès. Le coût de cette attaque croît avec la taille du réseau, mais pourrait être
|
|
faisable dans certaines circonstances.</p>
|
|
|
|
<p>
|
|
En résumé, si un attaquant se trouve à chaque extrémité de votre tunnel au même moment, il pourrait y parvenir. I2P ne
|
|
dispose pas de parade ultime contre ça pour les communications à basse latence. Il s'agit d'une faiblesse inhérente au
|
|
routage en oignon à basse latence. Tor fait clairement état de la
|
|
<a href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TorFAQ#Whatattacksremainagainstonionrouting">
|
|
même mise en garde</a>.
|
|
</p><p>
|
|
Défenses partielles implémentées dans I2P :
|
|
<ul><li>
|
|
<a href="tunnel-alt.html#ordering">Tri strict</a> des pairs
|
|
</li><li>
|
|
<a href="how_peerselection.html">Profilage et sélection des pairs</a> à partir d'un petit groupe qui change peu souvent
|
|
</li><li>
|
|
Limitation du nombre de tunnels routés par un seul pair
|
|
</li><li>
|
|
Empêchement des pairs d'une même plage d'adresses IP /16 d'être membres d'un même tunnel
|
|
</li><li>
|
|
Pour les eepsites et autres services hébergés, nous fournissons la possibilité d'hébergement simultané sur de multiples
|
|
routeurs ou <a href="#intersection">multi-résidence</a>
|
|
</li></ul>
|
|
|
|
Même prises ensemble, ces protections ne constituent pas une réponse complète. Aussi avons-nous pris quelques décisions
|
|
de conception qui peuvent sensiblement augmenter notre vulnérabilité:
|
|
<ul><li>
|
|
Nous n'utilisons pas de nœuds flics à faible bande passante.
|
|
</li><li>
|
|
Nous utilisons des groupes de tunnels constitués de plusieurs tunnels, et le trafic peut basculer d'un tunnel à l'autre.
|
|
</li><li>
|
|
Les tunnels ont une durée de vie courte ; de nouveaux tunnels sont construits toutes les 10 minutes.
|
|
</li><li>
|
|
Les longueurs des tunnels sont configurables. Les tunnels à 3 sauts sont recommandés pour une protection complète,
|
|
mais plusieurs applications et services utilisent par défaut des tunnels à 2 sauts.
|
|
</li></ul>
|
|
|
|
|
|
</p><p>
|
|
Dans le futur, on peut envisager d'utiliser pour les pairs qui peuvent se le permettre, utiliser des délais importants
|
|
(via les <a href="todo_fr#stop">retards volontaires</a> et les <a href="todo_fr#batching">stratégies de traitement par
|
|
lots</a>). De plus, ceci ne vaut que pour les destinations que d'autres gens connaissent - un groupe privé dont la
|
|
destination n'est connue que par des pairs de confiance n'a pas à s'inquiéter, car un adversaire ne peut pas les
|
|
"pinguer" pour monter une attaque.</p>
|
|
|
|
<p>Référence:
|
|
<a href="http://blog.torproject.org/blog/one-cell-enough">One Cell Enough</a>
|
|
</p>
|
|
|
|
|
|
|
|
<h3 id="dos">Déni de service</h3>
|
|
|
|
<p>Il y a tout un groupe d'attaques de déni de service disponibles contre I2P, chacune ayant ses propres coûts et
|
|
conséquences :</p><ul>
|
|
<li><b>L'attaque du goinfre :</b> c'est simplement celui qui essaye de consommer beaucoup plus de ressources qu'il n'en
|
|
fournit. Les parades : <ul>
|
|
<li>Définir les réglages par défaut de telle sorte que les utilisateurs fournissent des ressources au réseau. Dans
|
|
I2P, les utilisateurs font par défaut du routage de trafic. À la différence radicale avec
|
|
d'<a href="https://torproject.org/">autres réseaux</a>, jusqu'à 95% des utilisateurs d'I2P relaient du trafic pour les
|
|
autres.
|
|
</li>
|
|
<li>Fournir des options de configuration simples à utiliser pour que les utilisateurs puissent augmenter leur
|
|
contribution au réseau (pourcentage de partage). Afficher des mesures simples à comprendre comme le ratio de partage
|
|
pour permettre aux utilisateur de voir en quoi ils contribuent.
|
|
</li><lil>
|
|
Maintenir une forte communauté grâce à des blogs, des forums, l'IRC, et autres moyens de communication.
|
|
</li></ul>
|
|
<li><b>L'attaque de la famine :</b> l'utilisateur hostile peut tenter de vicier le réseau en créant un grand nombre de
|
|
pairs n'étant bien sûr pas identifiés comme contrôlés par la même entité (comme avec l'attaque de Sibylle). Ces nœuds
|
|
décident alors comme un seul homme de ne fournir aucunes ressources au réseau, conduisant alors les autres pairs à
|
|
faire leurs recherches dans une base de données plus grande ou demander plus de tunnels qu'il ne serait nécessaire.
|
|
L'apprenti nazillon pourrait aussi fournir un service erratique en abandonnant régulièrement une sélection de trafic ou
|
|
en refusant les connexions à certains pairs. Ce comportement peut être indiscernable de celui d'un nœud surchargé ou
|
|
défaillant. I2P gère ces problèmes en maintenant des <a href="how_peerselection.html">profils</a> sur les pairs, en
|
|
tentant d'identifier les nœuds anémiés pour les ignorer purement et simplement, ou les utiliser rarement. Nous avons
|
|
sensiblement amélioré la capacité à reconnaître et éviter les pairs à performances réduites, mais il reste pas mal
|
|
d'efforts à fournir de ce côté là.
|
|
</li>
|
|
<li><b>Attaque par inondation :</b> l'utilisateur hostile peut tenter de noyer le réseau, un pair, une destination ou
|
|
un tunnel. l'inondation d'un pair ou du réseau est possible, et I2P ne fait rien pour empêcher le bombardement de la
|
|
couche IP. La tentative de faire boire un bouillon de messages à une destination par plusieurs de ses passerelles de
|
|
tunnels entrants est également possible, mais elle en sera avertie aussi bien par le contenu des messages que par
|
|
l'échec des tests de tunnels. La même analyse concerne aussi les tentatives d'engorgement d'un tunnel donné. I2P n'a
|
|
pas de défense contre les attaques par inondation. Quand la cible est une destination ou un tunnel, elle identifie le
|
|
tunnel constipé et en crée d'autres. Du nouveau code pourrait permettre d'ajouter encore plus de tunnels si le client
|
|
souhaite gérer la charge plus forte. D'un autre côté, si la charge est supérieure à ce que le client peut gérer, il
|
|
pourrait indiquer aux tunnels de brider le nombre de messages ou d'octets qu'ils devraient passer (une fois les
|
|
<a href="todo_fr#batching">fonctions de tunnels avancées</a> implémentées).</li>
|
|
<li><b>Attaques de charge CPU :</b> il existe actuellement quelques méthodes pour demander à un pair distant
|
|
d'exécuter de coûteux calculs cryptographiques, et un attaquant pourrait essayer d'en surcharger un pair pour mettre
|
|
son UC à genoux. L'utilisation de bonnes pratiques d'ingénierie, éventuellement conjointes à des certificats peu
|
|
courants (p.e. les pénalités HashCash) rattachées à ces requêtes de travaux coûteux, devraient limiter le problème,
|
|
bien qu'il puisse rester des possibilités pour un attaquant d'exploiter divers bogues dans l'implémentation.</li>
|
|
<li id="ffdos"><b>Attaque DOS par des diffuseurs :</b> un autre attaquant (ou le même, décidément sa mère a confondu la
|
|
salle d'accouchement et les chiottes) pourrait essayer de perturber le réseau en devenant un routeur diffuseur. Les
|
|
protections actuelles contre les diffuseurs non fiables, intermittents ou pervers sont faibles. Un diffuseur peut
|
|
fournir de mauvaises réponses aux requêtes ou pas de réponse du tout, et il peut aussi interférer avec la communication
|
|
inter-diffuseurs. Quelques défenses et le <a href="how_peerselection">profilage de pairs</a> sont implémentés, mais il
|
|
ne reste pas grand chose à faire. Pour plus d'informations, voir la page
|
|
<a href="how_networkdatabase.html#threat">base de données du réseau</a>.
|
|
</li>
|
|
</ul>
|
|
|
|
<h3 id="tagging">Attaques par marquage</h3>
|
|
<p>Les attaques par marquage - modifier un message pour pouvoir l'identifier plus loin sur son chemin - sont par
|
|
elles-mêmes impossibles dans I2P, car les messages passant par les tunnels sont signés. Cependant, si l'attaquant est
|
|
la passerelle de tunnel entrant et par collusion en même temps un participant au même tunnel, il peut identifier le
|
|
fait qu'ils sont dans le même tunnel (avant l'implémentation des <a href="todo_fr#tunnelId">identifiants uniques de
|
|
tunnels</a> et autres mises à jour, des pairs complices dans un même tunnel pouvaient détecter cette circonstance sans
|
|
aucun effort). Un attaquant dans un tunnel sortant et une partie quelconque d'un tunnel entrant ne peuvent cependant
|
|
pas coopérer car le cryptage de tunnels remplit les paquets et modifie les données séparément pour les tunnels entrants
|
|
et sortants. Les attaquants externes ne peuvent rien manigancer, car les liens sont cryptés et les messages signés.</p>
|
|
|
|
<h3 id="partitioning">Attaques par cloisonnement</h3>
|
|
|
|
<p>Les attaques par cloisonnement - trouver des moyens de différentier (techniquement ou analytiquement) les pairs d'un
|
|
réseau - sont importantes à ne pas perdre de vue quand il s'agit de considérer leur utilisation par un adversaire
|
|
doté de gros moyens, car la taille du réseau joue un rôle prépondérant dans la détermination de votre anonymat.
|
|
Le cloisonnement technique réalisé en coupant des liens entre pairs pour des réseaux fragmentés est pris en compte par
|
|
la base de données intégrée d'I2P, qui entretient des statistiques sur les divers pairs tant pour permettre
|
|
l'exploitation de connexions existantes vers des zones isolées que pour cicatriser le réseau. De toute façon, si
|
|
l'attaquant déconnecte tous les liens vers des pairs non contrôlés, isolant ainsi la cible, la base de donnée ne lui
|
|
sera d'aucun secours. À ce moment, la seule chose que le client puisse espérer c'est que le routeur cible détecte qu'un
|
|
nombre important de pairs précédemment fiables sont devenus inaccessibles et qu'il le prévienne qu'il est
|
|
temporairement déconnecté (ce code de détection n'est pas implémenté à ce jour).</p>
|
|
|
|
<p>Le cloisonnement du réseau par l'analyse des différences dans la façon dont routeurs et destinations se comportent
|
|
et les regrouper en conséquence est un autre méthode d'attaque très fructueuse. Par exemple, l'attaquant qui
|
|
<a href="#harvesting">collecte</a> la base de données du réseau saura quand une destination donnée aura 5 tunnels
|
|
entrants dans ses jeux de baux, quand les autres n'en ont que 2 ou 3, ce qui permettrait à l'attaquant d'isoler la
|
|
cible par le nombre de tunnels sélectionnés. Une autre partition est possible par le moyen des
|
|
<a href="todo_fr#stop">retards non négligeables</a> et des <a href="todo_fr#batching">stratégies de traitement par
|
|
lots</a>, car les passerelles de tunnel et les sauts particuliers à retards non-nuls seront probablement mis en avant.
|
|
Quoi qu'il en soit, cette donnée n'est exposée qu'à ces sauts particuliers, et donc, pour cloisonner effectivement sur
|
|
ce critère, l'attaquant devrait contrôler une partie importante du réseau (et ça ne serait encore qu'une partition
|
|
probabiliste, car il ne saurait pas quels tunnels ou quels messages sont affublés de cet attribut de retard).
|
|
</p><p>
|
|
Également discuté sur la page <a href="how_networkdatabase.html#threat">base de données du réseau</a>
|
|
(attaque d'amorçage).
|
|
</p>
|
|
|
|
<h3 id="predecessor">Attaques de prédécesseur</h3>
|
|
|
|
<p>L'attaque de prédécesseur collecte passivement des données statistiques pour trouver quels pairs sont "proches" de
|
|
la destination en participant à leurs tunnels et en gardant la trace des sauts précédents et suivants (respectivement
|
|
pour les tunnels sortants et entrants). Sur la durée, en utilisant un échantillon parfaitement aléatoire de pairs et un
|
|
tri aléatoire, l'attaquant pourrait parvenir à voir quel pair se montre statistiquement plus "proche" que les autres,
|
|
et donc ainsi révéler où est la cible.</p>
|
|
|
|
<p>I2P empêche ceci par quatre moyens : d'abord, les pairs retenus pour participer aux tunnels ne sont pas choisis
|
|
aléatoirement dans le réseau - ils sont déduits de l'algorithme de <a href="how_peerselection">sélection des pairs</a>
|
|
qui les répartit en groupes. Puis avec le <a href="tunnel-alt.html#ordering">tri strict</a> des pairs d'un tunnel, le
|
|
fait qu'un pair apparaît plus souvent ne signifie pas qu'il est la source. Ensuite, grâce à la
|
|
<a href="tunnel-alt.html#length">longueur de tunnel permutée</a> (non activée par défaut), même des tunnels à 0 saut
|
|
peuvent fournir un alibi recevable car les changements occasionnels de la passerelle les font apparaitre comme des
|
|
tunnels normaux. Et pour finir, avec les <a href="todo_fr#fullRestrictedRoutes">routes réservées</a> (pas encore
|
|
implémentées), seul le pair en connexion réservée à la cible pourra la contacter, et l'attaquant se heurtera alors à
|
|
la passerelle.</p>
|
|
<p>
|
|
La <a href="tunnel-alt-creation.html">méthode de construction des tunnels</a> actuelle a été spécifiquement conçue pour
|
|
parer aux attaques de prédécesseur. Voir aussi l'<a href="#intersection">attaque d'intersection</a>.
|
|
</p>
|
|
|
|
<p>Références:
|
|
<a href="http://prisms.cs.umass.edu/brian/pubs/wright.tissec.2008.pdf">
|
|
http://prisms.cs.umass.edu/brian/pubs/wright.tissec.2008.pdf</a> qui est une mise à jour de 2008 de la publication sur
|
|
l'attaque de prédécesseur
|
|
<a href="http://prisms.cs.umass.edu/brian/pubs/wright-tissec.pdf">
|
|
http://prisms.cs.umass.edu/brian/pubs/wright-tissec.pdf</a>.
|
|
</p>
|
|
|
|
|
|
<h3 id="harvesting">Attaques de collectes</h3>
|
|
<p>
|
|
"Collecter" signifie dresser une liste d'utilisateurs d'I2P. Elle peut servir à des "attaques" légitime et pour aider à
|
|
réaliser d'autres attaques par la simple exécution d'un pair, pour savoir à qui il se connecte et recueillir toutes
|
|
les références aux autres pairs qu'il peut trouver.</p>
|
|
<p>
|
|
I2P n'est pas en lui-même conçu avec des protections effectives contre cette attaque, puisque l'existence même de la
|
|
base de données du réseau pourrait relever de cette définition. Les détails suivants rendent cette attaque plutôt
|
|
difficile dans la pratique :
|
|
<ul><li>
|
|
La croissance du réseau rend encore plus difficile l'obtention d'une portion donnée du réseau.
|
|
</li><li>
|
|
Les routeurs diffuseurs ont des limites pour les requêtes comme protection contre les attaques de déni de service.
|
|
</li><li>
|
|
Le "mode caché", qui empêche un routeur de se publier dans la base de données (mais l'empêche aussi de relayer), n'est
|
|
pas actuellement très utilisé, mais il pourrait l'être.
|
|
</li></ul>
|
|
Dans de futures implémentations, grâce aux routes réservées <a href="todo_fr#nat">basiques</a> et
|
|
<a href="todo_fr#fullRestrictedRoutes">complètes</a>, ce type d'attaques perdra beaucoup de son efficacité, car les
|
|
pairs "cachés" ne publient pas leurs adresses de contact dans la base de données - mais uniquement les tunnels par
|
|
lesquels on peut les atteindre, leurs clés publiques, etc…)</p>
|
|
<p>
|
|
Plus tard les routeurs pourront utiliser GeoIP pour savoir s'ils sont dans un pays où l'identification en tant
|
|
qu'utilisateur d'I2P pourrait être dangereuse. Dans ce cas, le routeur pourrait automatiquement activer le mode caché
|
|
ou mettre en œuvre les autres méthodes de routes réservées.</p>
|
|
|
|
|
|
|
|
<h3 id="traffic">Identification par analyse de trafic</h3>
|
|
<p>
|
|
En surveillant le trafic d'un routeur, un FAI sans scrupule ou un pare-feu
|
|
<a href="http://fr.wikipedia.org/wiki/Pare-feu_%28informatique%29#Pare-feu_.C3.A0_.C3.A9tats_.28
|
|
stateful_firewall.29">à état</a> pourrait déterminer qu'un ordinateur utilise I2P. Comme expliqué ci-dessus
|
|
<a href="#harvesting">(collecte)</a>, I2P n'est pas conçu pour se cacher lui-même. Cependant, certaines décisions de
|
|
conception du transport <a href="transport.html">(couche et protocole)</a> rendent l'identification du trafic I2P
|
|
difficile :<ul><li>
|
|
Sélection de port aléatoire.
|
|
</li><li>
|
|
Cryptage de bout en bout de tout le trafic.
|
|
</li><li>
|
|
Échange de clé Diffie-Hellman sans octets de protocole ou autres champs de constantes non cryptés.
|
|
</li><li>
|
|
Utilisation simultanée des transports <a href="ntcp.html">TCP</a> et <a href="udp.html">UDP</a>. UDP est plus difficile
|
|
à suivre pour les équipements d'analyse détaillée de paquets (DPI).
|
|
</li></ul>
|
|
|
|
Nous prévoyons dans un avenir proche de régler le problème d'analyse du trafic par d'autres moyens de brouillage des
|
|
protocoles de transport I2P, éventuellement :
|
|
<ul><li>
|
|
Bourrage/remplissage au niveau de la couche transport à des longueurs aléatoires, particulièrement pendant les poignées
|
|
de main (handshake).
|
|
</li><li>
|
|
Étude de la signature de distribution des tailles de paquets, et bourrage supplémentaire si nécessaire.
|
|
</li><li>
|
|
Développement de méthodes de transport supplémentaires qui miment SSL ou d'autre protocoles communs.
|
|
</li><li>
|
|
Examen des stratégies de bourrage aux niveaux supérieurs pour voir si elles impactent la taille des paquets au niveau
|
|
de la couche transport.
|
|
</li><li>
|
|
Examen des méthodes implémentées par les pare-feux à état pour bloquer Tor.
|
|
</li><li>
|
|
Collaboration directe avec les experts de l'analyse approfondie des paquets et du brouillage.
|
|
</li></ul>
|
|
</p><p>
|
|
Références:
|
|
<a href="http://www.cse.chalmers.se/%7Ejohnwolf/publications/hjelmvik_breaking.pdf">Breaking and Improving Protocol
|
|
Obfuscation</a>
|
|
</p>
|
|
|
|
|
|
|
|
<h3 id="sybil">Attaques de Sibylle</h3>
|
|
|
|
<p>On range sous cette appellation les attaques mettant en œuvre la création d'un grand nombre arbitraire de nœuds
|
|
coalisés et de leur utilisation pour aider à monter d'autres types d'attaques. Par exemple, si un attaquant se trouve
|
|
sur un réseau dans lequel les pairs sont sélectionnés aléatoirement et qu'il désire avoir 80% de chances d'être un de
|
|
ceux là, il n'a qu'à créer cinq fois plus de nœuds qu'il n'y en a déjà dans le réseau, et lancer les dés. Quand
|
|
l'identité est libre, la méthode Sibylle peut être très productive pour un attaquant aux moyens importants. La
|
|
principale technique d'empêcher ça est de rendre l'identité non libre - parmi d'autres,
|
|
<a href="http://www.pdos.lcs.mit.edu/tarzan/">Tarzan</a> se sert de la limite des adresses IP, alors qu'IIP utilisait
|
|
les pénalités <a href="http://www.hashcash.org/">HashCash</a> comme ticket d'entrée à la création d'une nouvelle
|
|
identité. Nous n'avons ce jour implémenté aucune technique particulière pour répondre à ces attaques, mais nous avons
|
|
des champs réservés de certificats dans les structures de données des routeurs et des destinations qui peuvent contenir
|
|
un certificat de HashCash de valeur appropriée si nécessaire (ou autre certificat d'épreuve de rareté).
|
|
</p><p>
|
|
La nécessité de certificats pénalisants à divers endroits a deux défauts majeurs :
|
|
<ul><li>
|
|
L'incompatibilité ascendante.
|
|
</li><li>
|
|
Le défaut principal des systèmes de pénalités - le choix de valeurs significatives pour les machine de dernier cri,
|
|
tout en restant à la portée des machines d'entrée de gamme comme les appareils portables.
|
|
</li></ul>
|
|
</p><p>
|
|
Diverses limitations du nombre de routeurs dans un intervalle IP réduisent la vulnérabilité à l'attaquant qui n'a pas
|
|
la possibilité de placer ses machines dans plusieurs blocs d'IP. Cependant, ça n'est pas suffisant contre un adversaire
|
|
à gros moyens.
|
|
</p><p>
|
|
Voir la page sur la <a href="how_networkdatabase.html#threat">base de données du réseau</a> sur le sujet des attaques
|
|
de type Sibylle.
|
|
</p>
|
|
|
|
|
|
<h3 id="buddy">Attaques par listage de complices</h3>
|
|
<p>
|
|
(Référence:
|
|
<a href="https://netfiles.uiuc.edu/mittal2/www/nisan-torsk-ccs10.pdf">In Search of an Anonymouns
|
|
and Secure Lookup</a> Section 5.2)
|
|
</p>
|
|
<p>
|
|
En refusant d'accepter les requêtes de création ou de transfert de tunnels, à part pour les pairs complices, un routeur
|
|
peut d'assurer qu'un tunnel n'est composé que de complices. Les chances de succès sont accrues par un grand nombre de
|
|
complices, par exemple grâce à l'aide d'une attaque par la <a href="#sybil">méthode Sibylle</a>. Ceci est diminué par
|
|
nos méthodes de <a href="how_peerselection">profilage des pairs</a> utilisées pour surveiller leurs performances. Mais
|
|
ça reste une attaque efficace quand le nombre de routeurs approche de <i>f</i> = 0.2, ou 20% de nœuds toxiques, comme
|
|
c'est indiqué dans cet article. Les routeurs attaquants peuvent aussi maintenir des connexions à la cible et lui
|
|
fournir une excellente bande passante de transfert pour influencer le profilage effectué par la cible en apparaissant
|
|
attractifs. D'autres recherches et protections sont nécessaires.
|
|
</p>
|
|
|
|
|
|
<h3 id="crypto">Attaques cryptographiques</h3>
|
|
|
|
<p>
|
|
Nous utilisons la cryptographie forte à clés longues, et nous adoptons la sécurité des fonctions primitives des
|
|
standards industriels pour I2P, comme détaillé sur la page concernant la
|
|
<a href="how_cryptography">cryptographie sous-jacente</a>. Les fonctionnalités de sécurité incluent la détection
|
|
immédiate de messages altérés, l'impossibilité de déchiffrer les messages qui ne vous sont pas destinés et la
|
|
protection contre les attaques de type "usurpation d'identité" (man-in-the-middle). Les tailles de clés choisie en 2003
|
|
sont encore assez raisonnables aujourd'hui, et sont même plus longues que celles utilisées dans
|
|
d'<a href="https://torproject.org/">autres systèmes anonymes</a>. Nous pensons que la longueur des clés n'est pas notre
|
|
plus grosse faiblesse particulièrement pour les adversaires traditionnels ; les bogues et la petite taille du réseau
|
|
sont plus inquiétants. Bien sûr, tous les algorithmes cryptographiques sont sujets à obsolescence à cause de
|
|
l'apparition de processeurs plus rapides, de la recherche en cryptographie, et de méthodes comme celles des
|
|
<a href="http://fr.wikipedia.org/wiki/Table_arc-en-ciel">tables arc-en-ciel</a> et des grappes de consoles de jeux
|
|
vidéo, etc… Malheureusement, I2P n'a pas été conçu avec des mécanismes simples d'allongement des clés ou de
|
|
changements de valeur de secrets partagés tout en conservant la compatibilité ascendante.
|
|
</p><p>
|
|
La mise à jour de diverses structures de données et protocoles en vue de supporter des clés plus longues devra sûrement
|
|
être prise à bras le corps, et ce sera une <a href="how_cryptography">entreprise majeure</a>, tout comme ça le sera
|
|
pour les autres systèmes. Heureusement, avec un planning soigneux, nous pouvons minimiser les interruptions de
|
|
fonctionnement et implémenter des mécanismes de transition en douceur.
|
|
</p><p>
|
|
Prochainement, plusieurs protocoles et structures de données supporteront le bourrage sécurisé des messages à une
|
|
taille arbitraire, en sorte que les messages aient une taille constante ou que les messages en tête d'ail puissent être
|
|
modifiés aléatoirement pour que quelques gousses semblent contenir plus de sous-gousses qu'elles n'en contiennent
|
|
réellement. Pour l'instant cependant, les têtes d'ail, les tunnels et les messages de bout en bout utilisent un simple
|
|
bourrage aléatoire.</p>
|
|
|
|
<h3 id="floodfill">Attaques de l'anonymat de la part des diffuseurs</h3>
|
|
<p>
|
|
En plus des attaques de DdS par les diffuseurs décrites <a href="#ffdos">plus haut</a>, les routeurs diffuseurs,
|
|
sont dans une position privilégiée pour avoir connaissance des participants au réseau (du fait de leur rôle dans la
|
|
base de données et du niveau élevé de communication qu'ils entretiennent avec les participants). Ceci est quand même
|
|
pondéré à la baisse car les diffuseurs ne gèrent qu'une partie réduite de l'espace de clés total, et que celui-ci
|
|
change tous les jours comme expliqué sur la page de la
|
|
<a href="how_networkdatabase.html#threat">base de données du réseau</a>. Les mécanismes particuliers par lesquels les
|
|
routeurs communiquent avec les diffuseurs ont été <a href="how_networkdatabase.html#delivery">soigneusement conçus</a>.
|
|
Ces menaces devraient cependant faire l'objet d'examens plus poussés. Des menaces potentielles spécifiques et les
|
|
protections correspondantes sont un sujet de futures recherches.
|
|
</p>
|
|
|
|
|
|
<h3 id="netdb">Autres attaques de la base de données</h3>
|
|
<p>
|
|
Un utilisateur hostile pourrait tenter de perturber le réseau en créant un ou plusieurs diffuseurs trafiqués pour
|
|
fournir de mauvaises réponses, voire des réponses lentes ou même aucune. Plusieurs scenarii sont examinés
|
|
en <a href="how_networkdatabase.html#threat">détail</a>sur sur la page de la base de données du réseau.
|
|
</p>
|
|
|
|
|
|
|
|
<h3 id="central">Attaques de ressources centrales</h3>
|
|
<p>
|
|
Il y a peu de ressources centrales susceptibles d'attaques ou d'y contribuer en tant que vectrices. L'absence de
|
|
jrandom depuis novembre 2007, suivie de la perte du service d'hébergement de i2p.net en janvier 2008 ont mis en lumière
|
|
les nombreuses ressources centralisées utilisées dans le développement et le fonctionnement d'I2P. La plupart d'entre
|
|
elles sont maintenant décentralisées. Des attaques contre des ressources accessibles de l'extérieur affecteraient la
|
|
facilité avec laquelle les nouveaux utilisateurs peuvent nous rejoindre, mais pas le fonctionnement du réseau lui-même.
|
|
<ul>
|
|
<li>Le <a href="/">site web</a> dispose de miroirs et utilise le round-robin DNS pour l'accès public externe.
|
|
<li>Les routeurs supportent maintenant des <a href="faq_fr.html#reseed">sources de réamorçage multiples</a>, mais plus
|
|
d'hôtes de réamorçage pourraient devenir nécessaires, et la gestion de ceux d'entre eux qui seraient peu fiables ou
|
|
carrément vénéneux devrait faire l'objet d'améliorations.
|
|
<li>Les routeurs supportent aussi plusieurs lieux de mise à jour. Un hôte de mise à jour vérolé pourrait délivrer un
|
|
fichier énorme, il nous faut limiter la taille.
|
|
<li>Les routeurs supportent maintenant par défaut de multiples signataires de mise à jour.
|
|
<li>Ils ont aussi une meilleure gestion des <a href="#ffdos">multiples pairs diffuseurs non fiables</a>. Le problème
|
|
des diffuseurs hostiles doit faire l'<a href="#ffdos">objet</a> d'une étude <a href="#floodfill">supplémentaire</a>.
|
|
<li>Le code est maintenant stocké dans un <a href="monotone.html">système de contrôle de versions décentralisé</a>.
|
|
<li>Les routeurs se reposent sur un seul hôte pour les news, mais il y a une URL de secours codée en dur qui pointe sur
|
|
autre hôte. Un hôte corrompu pourrait fourguer un fichier monstrueux, il nous faut verrouiller ça.
|
|
<li>Les <a href="naming_fr.html">services systèmes de nommage</a>, dont les fournisseurs d'abonnements du carnet
|
|
d'adresses, les services d'ajout d'hôtes et les services de saut pourraient être corrompus. Des protections
|
|
conséquentes pour les abonnements on été mises en place dans la version 0.6.1.31, avec d'autres améliorations dans les
|
|
versions suivantes. Cependant, tous les services de nommage ont besoin de quelque mesure de confiance. Voir les détails
|
|
dans la page sur le <a href="naming_fr.html">nommage</a>.
|
|
<li>Nous restons dépendants de DNS pour le domaine i2p2.de, et sa défaillance pourrait causer une perte substantielle à
|
|
notre capacité d'attirer de nouveaux utilisateurs, et pourrait restreindre le réseau à court et moyen terme comme le
|
|
fit la perte d'i2p.net.</ul>
|
|
|
|
|
|
<h3 id="dev">Attaques au niveau du développement</h3>
|
|
|
|
<p>
|
|
Ces attaques n'ont pas directement lieu sur le réseau, mais concernent plutôt son équipe de développement, soit par
|
|
l'introduction d'obstacles juridiques destinés à entraver quiconque participerait au développement du logiciel, soit
|
|
par tout moyen disponible pour amener les développeurs à corrompre le logiciel. Les mesures techniques traditionnelles
|
|
ne peuvent pas déjouer ces attaques et si quelqu'un menaçait la vie ou les moyens d'existence d'un développeur (ou même
|
|
une injonction légale de cessation d'activité sous peine de prison), ça représenterait un très sérieux problème.</p>
|
|
<p>
|
|
Nous avons deux moyens pour nous prémunir de ces attaques :
|
|
<ul>
|
|
<li> Tous les éléments du réseau doivent être open-source pour permettre leur inspection, vérification, modification,
|
|
et amélioration. Si un développeur est compromis, la communauté, une fois avertie, devrait demander des explications et
|
|
refuser d'accepter ses contributions. Toutes les adjonctions à notre <a href="monotone.html">SCV</a> sont numériquement
|
|
signées, et les publieurs de nouvelles version utilisent un système de liste de confiance pour restreindre les
|
|
possibilités de modifications à ceux précédemment approuvés.</li>
|
|
<li>Le développement se fait sur le réseau lui-même, ce qui permet aux développeurs de rester anonymes mais renforce
|
|
encore la sécurité du processus de développement. Tout le développement d'I2P peut se faire via I2P - par l'utilisation
|
|
du <a href="monotone.html">SCV</a> que nous avons choisi, l'IRC, des serveurs web publics, des forums de discussion
|
|
(forum.i2p), et les sites de distribution du logiciel, tous disponibles dans I2P.</li>
|
|
</ul>
|
|
Nous entretenons des relations avec diverses organisations qui offrent du conseil juridique, s'il advenait jamais
|
|
qu'une protection devienne nécessaire.</p>
|
|
|
|
<h3 id="impl">Attaques sur l'implémentation (bogues)</h3>
|
|
<p>
|
|
Malgré tous les efforts, la plupart des applications évoluées comportent des erreurs de conception ou de mise en œuvre,
|
|
et I2P n'y fait pas exception. Il pourrait y avoir des bogues qui pourraient être exploités pour attaquer l'anonymat ou
|
|
la sécurité des communications passant par I2P de façons inattendues. Pour aider à la résistance contre les conceptions
|
|
et protocoles en usage, nous publions toutes les conceptions et la documentation, et nous sollicitons la critique et
|
|
l'examen dans l'espoir que de nombreux avis amélioreront le système. Nous n'adhérons pas à l'idée de
|
|
<a href="http://www.haystacknetwork.com/">sécurité par l'obscurité</a>.</p>
|
|
<p>
|
|
De plus, le code est traité de la même façon, avec une légère aversion pour la révision ou l'expulsion pure et simple
|
|
de quoi que ce soit qui ne concerne pas les besoins du système logiciel (y compris les facilités de modifications).
|
|
La documentation de conception et d'implémentation du réseau et des composants logiciels est une partie essentielle de
|
|
la sécurité, car sans elle il est peu probable que des développeurs aient envie d'investir beaucoup de temps pour
|
|
assimiler suffisamment les arcanes du logiciel pour pouvoir y détecter des défauts et des bogues.</p>
|
|
<p>
|
|
Notre logiciel est potentiellement porteur, en particulier, de bogues relatifs au déni de service jusqu'au dépassement
|
|
de capacité mémoire (OoMs), aux problèmes de scripts inter-sites (XSS) dans la console et autre vulnérabilités aux
|
|
entrées non standard via les divers protocoles.</p>
|
|
<p>
|
|
I2P est encore un petit réseau avec une petite communauté de développement et ne bénéficiant de presque aucun intérêt
|
|
de la part des recherches universitaires ou des groupes de chercheurs. En conséquence, nous manquons cruellement des
|
|
mêmes travaux d'analyse dont ont bénéficié d'<a href="https://torproject.org/">autres systèmes d'anonymat</a>. Nous
|
|
continuons à faire appel aux gens pour <a href="getinvolved_fr.html">s'impliquer</a> et nous aider.
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h2>Autres protections</h2>
|
|
<h3 id="blocklist">Listes de blocage</h3>
|
|
<p>
|
|
Dans une certaine mesure, I2P pourrait être amélioré pour écarter les pairs opérant depuis des adresses IP recensées
|
|
dans des listes de blocage. Plusieurs d'entre elles, aisément disponibles dans différent formats, listent les entités
|
|
anti-P2P, les entités potentiellement pressenties pour pouvoir être des adversaires "state-level", et d'autres.
|
|
<p>
|
|
Dans la mesure où des pairs actifs apparaissent réellement dans les listes de blocage actuelles, leur blocage par une
|
|
fraction seule des pairs conduirait à une segmentation du réseau, augmenterait les problèmes de joignabilité, et
|
|
diminuerait la fiabilité globale. Nous devrions en conséquence nous accorder sur une liste particulière et l'activer
|
|
par défaut.
|
|
<p>
|
|
Les listes de blocage ne sont qu'une partie (et même une petite partie) d'un arsenal de défenses contre la malignité.
|
|
Le système de profilage, par son travail d'évaluation du comportement des routeurs, en prend une grosse partie à sa
|
|
charge, de sorte que nous n'ayons pas besoin d'établir des relations de confiance particulières avec tel ou tel élément
|
|
de la base de données. Cependant, on peut en faire plus : pour chacun des points listés ci-dessus, il y des
|
|
améliorations à apporter pour en détecter la nocivité.
|
|
<p>
|
|
Si une liste de blocage est hébergée de façon centralisée, avec des mises à jour automatisées des routeurs, le réseau
|
|
devient plus vulnérable aux <a href="#central">attaques de ressources centrales</a>.
|
|
Des abonnements à une liste donne au fournisseur de la liste le pouvoir d'éteindre le réseau I2P. Complètement.
|
|
<p>
|
|
Actuellement, une liste de blocage par défaut est distribuée avec le logiciel, ne listant que les IP d'origine
|
|
d'attaques de déni de service passées. Il n'y a pas de mécanisme de mise à jour automatique. Si une plage IP lançait
|
|
une attaque sérieuse sur le réseau I2P, il nous faudrait, via des moyens extérieurs au champ de bataille (forums,
|
|
blogs, etc…), demander aux utilisateurs de mettre à jour manuellement leur liste de blocage.
|
|
</p>
|
|
|
|
|
|
{% endblock %}
|