Freenet

Initialement, les emplacements dans Darknet sont distribués de manière aléatoire. Cela signifie que le routage des requêtes est essentiellement aléatoire. Dans Opennet, les connexions sont établies par une demande de jointure qui fournit une structure de réseau optimisée si le réseau existant est déjà optimisé. Ainsi, les données dans un Freenet nouvellement démarré seront distribuées de manière quelque peu aléatoire.

A mesure que l’échange d’emplacement (sur Darknet) et le pliage de chemin (sur Opennet) progressent, les nœuds qui sont proches les uns des autres auront de plus en plus des emplacements proches, et les nœuds qui sont éloignés auront des emplacements éloignés. Les données avec des clés similaires seront stockées sur le même nœud.

Le résultat est que le réseau s’auto-organisera en une structure distribuée, en grappes, où les nœuds ont tendance à détenir des éléments de données qui sont proches dans l’espace des clés. Il y aura probablement de multiples clusters de ce type dans tout le réseau, tout document donné étant répliqué de nombreuses fois, en fonction de son utilisation. Il s’agit d’une sorte de « rupture de symétrie spontanée », dans laquelle un état initialement symétrique (tous les nœuds étant les mêmes, avec des clés initiales aléatoires les uns pour les autres) conduit à une situation hautement asymétrique, les nœuds venant se spécialiser dans les données qui ont des clés étroitement liées.

Il existe des forces qui tendent à provoquer des regroupements (les données de proximité partagées se répandent dans tout le réseau), et des forces qui tendent à briser les regroupements (mise en cache locale des données couramment utilisées). Ces forces seront différentes en fonction de la fréquence d’utilisation des données, de sorte que les données rarement utilisées auront tendance à se trouver sur quelques nœuds spécialisés dans la fourniture de ces données, et que les éléments fréquemment utilisés seront largement répartis sur le réseau. Cette mise en miroir automatique contrecarre les moments où le trafic web devient surchargé, et en raison du routage intelligent d’un réseau mature, un réseau de taille n devrait nécessiter seulement log(n) de temps pour récupérer un document en moyenne.

KeysEdit

Les clés sont des hachages : il n’y a pas de notion de proximité sémantique quand on parle de proximité de clé. Par conséquent, il n’y aura pas de corrélation entre la proximité des clés et la popularité similaire des données comme cela pourrait être le cas si les clés présentaient une certaine signification sémantique, évitant ainsi les goulots d’étranglement causés par les sujets populaires.

Il existe deux variétés principales de clés utilisées sur Freenet, la clé de hachage de contenu (CHK) et la clé de sous-espace signée (SSK). Un sous-type de SSK est la Updatable Subspace Key (USK) qui ajoute le versioning pour permettre une mise à jour sécurisée du contenu.

Une CHK est un hachage SHA-256 d’un document (après chiffrement, qui dépend lui-même du hachage du texte en clair) et donc un nœud peut vérifier que le document renvoyé est correct en le hachant et en vérifiant le condensé par rapport à la clé. Cette clé contient l’essentiel des données sur Freenet. Elle porte tous les blocs de construction des données binaires pour le contenu à livrer au client pour le réassemblage et le décryptage. La CHK est unique par nature et fournit un contenu inviolable. Un nœud hostile qui modifie les données sous une CHK sera immédiatement détecté par le nœud suivant ou le client. Les CHKs réduisent également la redondance des données puisque les mêmes données auront le même CHK et lorsque plusieurs sites référencent les mêmes gros fichiers, ils peuvent faire référence au même CHK.

Les CHKs sont basés sur la cryptographie à clé publique. Actuellement, Freenet utilise l’algorithme DSA. Les documents insérés sous SSK sont signés par l’inséreur, et cette signature peut être vérifiée par chaque nœud pour s’assurer que les données ne sont pas altérées. Les SSK peuvent être utilisés pour établir une identité pseudonyme vérifiable sur Freenet, et permettent l’insertion sécurisée de plusieurs documents par une seule personne. Les fichiers insérés avec un SSK sont effectivement immuables, car l’insertion d’un deuxième fichier portant le même nom peut provoquer des collisions. Les USK résolvent ce problème en ajoutant un numéro de version aux clés, qui est également utilisé pour fournir une notification de mise à jour pour les clés enregistrées comme signets dans l’interface web. Un autre sous-type de SSK est la clé signée par mot clé, ou KSK, dans laquelle la paire de clés est générée de manière standard à partir d’une simple chaîne lisible par l’homme. L’insertion d’un document à l’aide d’une KSK permet de récupérer et de déchiffrer le document si et seulement si le demandeur connaît la chaîne lisible par l’homme ; cela permet d’obtenir des URI plus pratiques (mais moins sûrs) auxquels les utilisateurs peuvent se référer.

Leave a Reply