S'inscrire
Instructions

Dark Web, partie 3 : Qu'est-ce que Freenet ?

  • 3 oct. 2023, 02:15
  • 13 minutes

Dark Web, partie 3 : Qu'est-ce que Freenet ?

Il n'est pas possible d'accéder au Dark Web en saisissant simplement une requête dans votre navigateur. Pour accéder à Darknet, vous devez configurer un réseau spécial et entrer le nom correct de la ressource, sinon vous n'obtiendrez pas le contenu.

Cet article explique quels sont les réseaux utilisés pour entrer dans le web caché et quelles sont les ressources auxquelles on peut accéder par leur intermédiaire.


Dans un article précédent :

  • Dark Web, partie 1 : qu'est-ce que le Darknet et pourquoi l'utilise-t-on ?

  • Dark Web, partie 2 : comment fonctionnent les sites .onion

  • Dark Web, partie 3 : qu'est-ce que Freenet ? ← vous êtes ici

  • Dark Web, partie 4 : qu'est-ce que l'I2P et comment ça marche ?

  • Dark Web, partie 5 : comment accéder au Darknet via Tor, I2P et Freenet


Qu'est-ce que Freenet

Freenet est un réseau peer-to-peer anonyme et décentralisé qui fonctionne au-dessus de l'internet ordinaire. Il n'y a pas de serveurs communs et personne n'héberge de sites web. Chaque personne sur le réseau est un serveur sur le PC duquel certaines informations sont stockées.


Pour en savoir plus sur le fonctionnement des réseaux peer-to-peer, veuillez consulter l'article « Dark Web, partie 1 : qu'est-ce que le Darknet et pourquoi l'utilise-t-on ? ».


Fondamentalement, il s'agit d'un référentiel de données où les utilisateurs téléchargent leurs informations, qui sont ensuite mises à la disposition des autres personnes ayant accès à Freenet.


La différence entre un réseau traditionnel avec des serveurs et un réseau P2P





Contrairement à d'autres réseauxpeer-to-peer, les utilisateurs de Freenet n'ont aucun contrôle sur ce qui se trouve dans leur stocke de données. Au lieu de cela, les fichiers sont enregistrés ou supprimés en fonction de leur popularité. Cela permet à Freenet d'être résistant à la censure. Il n'y a pas d'opération "supprimer le fichier".

Freenet a été lancé en 2000 et utilisé pour diffuser des informations censurées dans le monde entier, notamment en Chine et au Moyen-Orient.


Comment fonctionne Freenet

Chaque nœud du réseau est un dépôt local d'informations à partir duquel les utilisateurs reçoivent des données pour la lecture et l'écriture, ainsi qu'une table de routage dynamique. La table contient les adresses des autres nœuds et les clés spéciales qui sont censées y être stockées. Nous parlerons des clés plus tard, à présent, parlons du modèle d'exploitation.


Selon la théorie des créateurs, la plupart des participants au système devraient exécuter leurs propres nœuds afin de se protéger eux-mêmes et les autres utilisateurs contre l'utilisation accidentelle d'un nœud externe hostile et d'augmenter la capacité de stockage disponible pour le réseau dans son ensemble.Pour ce faire, les gens doivent fournir la bande passante de leur ordinateur et une partie de leur disque dur pour faire fonctionner le système et stocker certaines informations.

Le modèle de fonctionnement peut être décrit comme suit : les demandes de clés sont transmises de nœud en nœud par une chaîne de nœuds mandataires, où chaque nœud décide du nœud suivant auquel envoyer la demande.


Selon le type de clé, les itinéraires seront différents. Ils changeront également pour chaque fichier au fil du temps, afin que le participant au réseau puisse le télécharger plus rapidement. Cet ajustement du chemin est affecté par les algorithmes de routage et le fonctionnement du réseau.


Le routage est décrit comme suit : lorsqu'un utilisateur se connecte à un réseau, il télécharge les adresses des différents nœuds à partir d'un nœud secondaire, essentiellement un référentiel de nœuds. L'utilisateur crée alors une requête sur le réseau et celle-ci est envoyée aux nœuds à la recherche d'informations.


Dans ce cas, la communication entre les nœuds est cryptée et la connexion d'un nœud à un autre passe par plusieurs autres nœuds. Cela permet d'anonymiser l'expéditeur de la demande et la demande elle-même.


Et l'interaction entre les nœuds peut être comparée à une table de hachage distribuée, qui est nécessaire pour trouver certaines données utilisateur.


Une table de hachage est une structure de données spéciale permettant de stocker des paires de clés et leurs valeurs. Il s'agit en fait d'un tableau. Lorsque des données doivent être récupérées, une certaine valeur est transmise à une fonction et l'adresse de l'information requise est renvoyée en retour.




Une autre façon d'obtenir des adresses de nœuds est de se connecter à un réseau de personnes que vous connaissez. Pour établir une connexion avec quelqu'un que vous connaissez, chaque individu doit indiquer son ID de nœud en personne. Lorsque tous les participants échangent leurs identifiants et se connectent les uns aux autres, un réseau se forme. C'est ce qu'on appelle le darknet du freenet. En fait, de cette façon, vous pouvez créer votre propre VPN entre plusieurs personnes.

Lorsqu'un utilisateur envoie une demande à un réseau avec une clé. Cette clé est transmise à une chaîne de nœuds aléatoires jusqu'à ce qu'un nœud contenant les informations souhaitées soit trouvé.


La recherche d'informations se présente comme suit : la demande est d'abord adressée à un nœud. Si ce nœud ne fournit pas les informations souhaitées, il redirige la demande vers le nœud le plus proche dans sa table de hachage. Et ainsi de suite jusqu'à ce que l'information soit trouvée sur l'un des nœuds du réseau.

Lorsque l'information est trouvée, le nœud l'envoie à l'utilisateur via la chaîne d'autres nœuds. Ce faisant, le nœud émetteur ne sait pas qui est le destinataire final de l'information. Et les nœuds de transit ne savent pas combien de nœuds se trouvaient dans la chaîne avant eux et ne savent pas quel est le nœud suivant : le nœud final ou le même nœud de transit. Cette route permet d'anonymiser les utilisateurs et la demande.


La particularité de la distribution de fichiers est que plus il y a de nœuds sur le réseau et plus chacun d’eux fournit de l'espace sur son disque, plus il y aura de fichiers sur le réseau et plus longtemps ils y seront stockés.Ce faisant, les nœuds développeront une spécialisation au fil du temps. L'algorithme de freenet fonctionne de telle manière que les nœuds comprennent quelles clés sont les plus accessibles à tel ou tel nœud.Et par exemple, si un nœud n'a pas de dossier, il peut savoir quel est le nœud le plus approprié pour chercher des informations et lui envoyer une requête. Et lorsque la réponse revient avec le fichier, l'information passe par le nœud d'origine et celui-ci conserve le fichier.>Cela signifie que le nœud va collecter un certain type de fichier, ou plutôt un format clé, auprès de lui-même. Ainsi, il est plus probable qu'à l'avenir ce dernier trouve le fichier plus rapidement pour des demandes similaires.

C'est à peu près comme ça qu'une requête fonctionne sur Freenet.





Nous avons négligé certains paramètres du système. L'un d'entre eux est que la demande passe d'abord par plusieurs nœuds aléatoires à la recherche du fichier souhaité. Ceux-ci, à leur tour, envoient des requêtes aux autres nœuds à partir de leurs tables de hachage distribuées. Lorsqu'un nœud possédant le bon fichier est trouvé, il envoie l'information à l'utilisateur à travers la chaîne de nœuds. Expliquons maintenant plus en détail.


Nous sommes dans le nœud « Start » et nous avons besoin d'informations provenant du nœud « Data ». Cependant, le nœud « Start » ne sait pas quels nœuds possèdent les informations requises et comment y accéder. Le nœud « Start » contacte donc le nœud A le plus proche et lui demande s'il dispose des informations requises.


Le nœud A ne dispose pas de cette information, mais il peut l'apprendre des autres nœuds. Il envoie donc une requête à un nœud aléatoire qu'il connaît. Dans notre cas, il s'agit du nœud B. En substance, il demande au nœud B s'il possède l'information demandée.


Le nœud B répond qu'il ne dispose pas de cette information et ne connaît aucun nœud auprès duquel il pourrait demander les fichiers. Le nœud A se rend donc au nœud suivant, C, et lui demande s'il possède l'information demandée.


Le nœud C dit qu'il n'a pas d'information. Mais il connaît deux nœuds susceptibles de détenir l'information et redirige les demandes vers eux.


La première demande est adressée au nœud D, mais celui-ci ne dispose pas des fichiers requis et redirige la demande vers un autre nœud susceptible de détenir l'information. Dans l'exemple du diagramme, le nœud D envoie la demande au nœud A, qui est le nœud qui a initialement demandé de l'aide pour trouver l'information. Le nœud A répond donc au nœud D qu'il recherche lui-même cette information.


Pour éviter une boucle de nœuds A → C → D, chaque nœud conserve une liste des autres nœuds auxquels il a accédé à la recherche d'une certaine requête. Et lorsqu'un nœud veut envoyer une requête à un autre, il vérifie sa liste pour voir s’il s'est déjà adressé à un nœud particulier auparavant.

Le nœud D indique au nœud C qu'il ne connaît aucun autre nœud et qu'il n'a nulle part où chercher des informations. Ensuite, le nœud C envoie une requête à un autre nœud qu'il connaît, « Data ». Le nœud « Data » donne au nœud C les informations requises et ce dernier les renvoie au nœud A et le nœud A les renvoie au nœud « Start ». En conséquence, il s'est avéré que le fichier requis a été trouvé et envoyé au nœud demandé via le chemin d'accès dans l'ordre inverse.


En cas de demande réussie, le nœud renvoie le fichier avec les informations au nœud précédent et enregistre le fichier lui-même dans son propre magasin de données. Il crée également une nouvelle entrée dans sa table de routage en reliant la source de données réelle à la clé demandée.Grâce à cette table de routage, à l'avenir, le nœud pourra rediriger la demande vers d'autres nœuds, qui, très probablement, stockeront les informations nécessaires.Pour éviter des chaînes sans fin de nœuds de transit, chaque demande dans le réseau est limitée par le nombre de transitions vers le nœud suivant. Le nombre de ces transitions est défini par l'utilisateur lors de l'envoi d'une requête.Si le nœud requis est introuvable après un certain nombre de sauts, la requête n'est pas exécutée. De plus, chaque nœud se voit attribuer un numéro d'identification afin que chaque nouvelle transition d'un nœud passe à un nouveau.Et chaque requête reçoit un identifiant pseudo-unique pour que les nœuds puissent refuser de traiter la requête à l'avance. Cela est nécessaire afin de ne pas traiter une demande qu'ils ont déjà vue et pour laquelle ils n'ont pas de réponse. Ils transmettent immédiatement la demande à une autre chaîne de nœuds.


Comment les fichiers sont distribués sur le réseau freenet

Pendant le processus de téléchargement, les fichiers sont divisés en morceaux et stockés de manière aléatoire et cryptés sur de nombreux autres ordinateurs du réseau. En outre, chaque bloc d'un fichier fragmenté est copié sur plusieurs ordinateurs.


Ainsi, si l'un des ordinateurs contenant un morceau tombe en panne ou quitte le réseau, l'utilisateur l'obtiendra d'un autre ordinateur.


Et c'est ainsi que les fichiers sont distribués sur le réseau : chaque nœud stocke un élément d'information





Lorsqu'une autre personne veut télécharger un fichier, des morceaux de celui-ci sont découverts et réassemblés. Il est similaire à Torrent : le réseau se connecte avec des personnes aléatoires qui ont des morceaux du fichier désiré et le télécharge. Mais il y a une différence : sur Freenet, plusieurs nœuds aident à trouver le fichier en même temps. Une chaîne est formée : du nœud demandé → du nœud de transit → des nœuds avec l'information. Lorsque l'information recherchée est trouvée, elle est renvoyée le long de la même chaîne et stockée sur les nœuds par lesquels elle passe.Plus le fichier est populaire et plus les individus stockent des morceaux sur leur PC, plus il sera téléchargé rapidement. Et si le dossier n'intéresse personne, avec le temps, il disparaîtra des nœuds : ils le remplaceront par des informations plus pertinentes. Et personne ne verra le fichier caché jusqu'à ce que quelqu'un le télécharge à nouveau dans son intégralité.


Quels types de clés sont utilisés dans freenet ?

Le réseau freenet utilise des clés cryptographiques au lieu des adresses URL habituelles. En effet, pour charger un site web ou d'autres informations, il est nécessaire de spécifier la clé elle-même dans la demande. La clé est un hachage d'un fichier ou une clé DSA.


Un hachage est une fonction qui effectue une opération mathématique ou logique sur des données. Il convertit une grande quantité d'informations en une chaîne de caractères relativement courte et sert d'identifiant pour les données. Par exemple, si deux images diffèrent ne serait-ce que d'un pixel, leur hachage sera différent.


Un DSA est un algorithme cryptographique qui utilise des clés privées et publiques pour créer une signature électronique, afin de valider l'identité de l'auteur d'un document électronique. La tâche de la clé privée est de créer la signature et la tâche de la clé publique est de vérifier la signature.


Par exemple, dans Freenet, les clés DSA lient le créateur d'un site web et la ressource elle-même. Ainsi, personne d'autre ne peut apporter de modifications à la structure du site sans ces clés DSA.


Dans cet article, nous n'aborderons pas le fonctionnement des clés DSA, car il s'agit d'un sujet long et difficile.


De plus, les fichiers ne peuvent pas être modifiés ou supprimés sans les clés. Il existe au total quatre types de clés sur Freenet :


  • CHK - clés de hachage de contenu ;

  • SSK - clés signées ;

  • USK - clés de mises à jour ;

  • KSK - Clés signées avec un mot-clé.


CHK : clés destinées aux fichiers à contenu statique, tels que les documents .mp3 ou PDF. Ce sont des hachages du contenu du fichier.


Par exemple, un CHK typique ressemble à ceci :

CHK@SVbD9~[...]X5Brs,bA7qLN[...]Si6bbNQ,AAEA--8


SSK : conçu pour les sites qui évolueront avec le temps. Par exemple, pour un site d'actualités où des communiqués de presse seront publiés. Elles fonctionnent de manière à ce que quelqu'un d'autre ne puisse pas apporter de modifications à votre site sans les clés SSK.


Une clé SSK typique ressemble à ceci :


SSK@GB3wuHmt[...]o-eHK35w,c63EzO7u[...]3YDduXDs,AQABAAE/mysite-4


USK : nécessaire pour masquer les premières versions du site et afficher uniquement la vraie. Cela fonctionne comme ceci : lorsque vous visitez le site, USK accède à la liste des versions du site, recherche la plus récente et la charge.


Exemple de l'USK :


USK@GB3wuHmt[...]o-eHK35w,c63EzO7u[...]3YDduXDs,AQABAAE/mysite/5/


KSK : aide à enregistrer des pages sur le réseau Freenet. L'adresse KSK ressemble à ceci :


KSK@myfile.txt


Sécurité de Freenet

La sécurité sur Freenet peut être assurée par plusieurs méthodes :


  1. Diviser un fichier en plusieurs morceaux et le crypter au niveau des nœuds. Cela garantit que personne ne peut supprimer complètement un fichier du réseau parce qu'il est stocké sur plusieurs nœuds en même temps.

  2. Aucun des nœuds ne peut voir le chemin de la requête. Il ne connaît que le nœud précédent et le nœud suivant vers lequel transférer l'information.

  3. L'utilisation de tables de hachage et de clés privées, sans lesquelles il est impossible d'envoyer une demande et de recevoir une réponse. Par conséquent, les pirates ne pourront pas diriger le trafic vers eux en prétendant que leur nœud contient les informations souhaitées. Un faux nœud ne passera tout simplement pas la validation avec sa clé privée et sa table de hachage.

  4. Cacher la véritable source du fichier. Parfois, un nœud aléatoire disposant de certaines informations prétend être sa véritable source, il est donc difficile de déterminer exactement lequel des nœuds du réseau a initialement téléchargé le fichier sur le réseau.


Il existe une faille dans la sécurité de Freenet : les faux nœuds de départ. Après tout, on ne peut jamais être sûr que les nœuds auxquels un utilisateur se connecte ne sont pas malveillants. Et il n'y a aucun moyen de vérifier la fiabilité des nœuds.En outre, il est presque impossible de voir ce qui est stocké sur Freenet car chaque fichier est caché et peut être réparti entre différents ordinateurs.

Un autre problème est la perte de l'anonymat. En effet, les nœuds qui traitent fréquemment les mêmes demandes peuvent être stockés sur le réseau de l'utilisateur. Cela signifie que la prochaine fois qu'une demande sera faite, elle sera traitée plus rapidement et que l'ordinateur de la personne stockera rapidement les informations nécessaires.


Par conséquent, si le gouvernement ou des pirates informatiques accèdent à votre PC, font une demande quelconque et que les informations sont rapidement stockées sur votre ordinateur, ils sauront que vous avez consulté à plusieurs reprises le fichier téléchargé.


Les sources qui nous ont aidés à faire connaître Freenet :