Journal cjdns / hyperboria : réseau décentralisé et sécurisé

15
17
août
2013

Pour faire bref, c'est un darknet avec les caractéristiques suivantes :

  • réseau pair à pair expérimental
  • assez simple à mettre en œuvre
  • créé une interface réseau TUN (tunnel) IPv6 avec une IP privée
  • communications chiffrées
  • contrairement à TOR/I2P/FreeNet, l'anonymat "pur et dur" n'est pas le but premier. Le but est plutôt de créer un réseau privé entre tiers de confiance.
  • après installation de son propre nœud cjdns, il faut demander à un utilisateur déjà dans le réseau les coordonnées de son nœud, sur le canal IRC du projet, afin de pouvoir rejoindre soi-même le réseau. Une fois dans le réseau, on a accès à quelques sites/services (voir hyperboria.net).
  • On peut bien sûr offrir soi-même des services sur son nœud personnel.

Quelques informations plus techniques selon ce site : http://wiki.reseaulibre.ca/documentation/monitoring/documentationPertinente/

CJDNS est un protocole de routage multicouches sécurisé et décentralisé qui vise à combler les failles des protocoles conçus il y a plus de trente ans et qui constituent l'architecture fondamentale de l'internet moderne. CJDNS cherche notamment à résoudre efficacement le problème de la taille des tables de routage par une utilisation judicieuse des tables de hashage décentralisée. Son architecture permet entre autre le relais de paquets sans lecture mémoire grâce à des entêtes contenant le chemin jusqu'au prochain router. Le routage se fait par étapes successives qui visent à s'approcher de la destination en utilisant une table routage restreinte obtenue par des demande de type “recherche” aux voisins connus. Le protocole offre aussi une sécurité complète grâce à un mécanisme d'encryption incorporé au protocole. L'authentification est basée sur SHA-256. Ce protocole est réactif, mais son modèle de hashage décentralisé simplifie grandement la recherche de la destination. Par contre, la couche de sécurité supplémentaire réduit quelque peu sa performance. On notera aussi que CJDNS est capable d'opérer via tunnel et que les adresses qu'il génère n'entrent pas en conflit avec l'internet traditionnel puisqu'elles se situent dans le bloc. Il est important de noter que ce protocole ne comporte pas de processus de découverte de nouveaux nœuds, ce qui signifie qu'un nouveau nœud doit s'arrimer manuellement au réseau à travers un pair. Ce protocole est encore relativement récent, le statut courant est "pré-alpha". Parmi les projets existants qui utilisent CJDNS, on notera Meshnet et Hyperboria, ce dernier aspirant à rien de moins qu'être le successeur de l'internet.

Aucune documentation officielle en français pour le moment…

Site officiel du projet avec instructions d'installation
https://github.com/cjdelisle/cjdns#cjdns

Présentation du principe par l'auteur (Caleb James DeLisle)
https://raw.github.com/cjdelisle/cjdns/master/doc/Whitepaper.md

L'article sur wikipedia
https://en.wikipedia.org/wiki/Cjdns

Un wiki dédié
https://wiki.projectmeshnet.org/Getting_Started

La FAQ
https://wiki.projectmeshnet.org/FAQ

Le portail Hyperboria.net
http://hyperboria.net

  • # Authentification

    Posté par . Évalué à 4.

    L'authentification est basée sur SHA-256.

    Ce propos que tu cites me parait un peu court pour justifier une prétention à l'authentification. Sans avoir investigué au-delà de ton journal, PGP s'appuie sur des algorithmes de hashage comme ceux de la série SHA pour obtenir l'authentification, qui vient en produisant une version chiffrée (par la clé privée PGP du signataire) de ce hash SHA ("hash" dit aussi empreinte ou condensat, en français). Cf ce lien.

    La seule génération d'empreinte SHA amène un possible contrôle d'intégrité, mais l'authentification n'est pas acquise (une simple attaque "man in the middle" si le contenu n'est pas chiffré de façon robuste, et c'est raté).

    Je note cependant la précision : « Le protocole offre aussi une sécurité complète grâce à un mécanisme d'encryption incorporé au protocole ». Alors à creuser…

    Pour faire un lien, cette problématique me rappelle le récent journal "Présentation d'idée : PGPID" présentant le concept d'un système basé sur PGP entièrement a-centré d'identification et d'authentification des utilisateurs / association de machines à un utilisateur / localisation des machines / système bas niveau fournissant des services de base aux applications construites au-dessus. L'auteur du journal expliquait qu'il s'est inspiré de RetroShare (logiciel de réseau social décentralisé/a-centralisé/fédéré) qui utilise une clé PGP pour identifier un utilisateur et une DHT [table de hashage décentralisée] pour identifier les adresses IP des machines. Il ajoutait que la solution de PGPID reprend celle de RetroShare, mais sous un axe global et indépendant des applications, et qu'il ne devrait pas être problématique de porter RetroShare sur PGPID.

  • # Alternative

    Posté par . Évalué à 2.

    Il y a aussi SocialVPN, qui utilise XMPP comme media pour la communications des clés.
    Chaque "ami" se voit attribuer(qui est uniquement locale) une IP sur la plage du réseau.
    Tout ça avec du NAT Traversal donc même derrière un routeur(qui n'est pas symétrique) cela marche.
    Le seul inconvénient c'est que c'est en .NET.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.