2 points par GN⁺ 2025-05-09 | 1 commentaires | Partager sur WhatsApp
  • Mycoria est un réseau overlay ouvert et sécurisé qui vise à connecter tous les participants sur un pied d’égalité, dans l’esprit ouvert et aventureux des débuts d’Internet
  • La participation ne nécessite aucune procédure bureaucratique, et toutes les connexions reposent par défaut sur l’authentification et le chiffrement
  • Il peut se connecter au-dessus d’Internet ou s’étendre en réseau mesh autonome, afin de réduire les barrières à l’entrée dans le réseau
  • Sa conception met l’accent sur une structure petite et simple, la compatibilité avec l’infrastructure existante comme le DNS, ainsi que la sécurité et la confidentialité par défaut
  • Il propose le chiffrement automatique de bout en bout, un routage évolutif, un tableau de bord, la résolution DNS en .myco et la découverte de services, tandis que certaines fonctions de confidentialité et d’optimisation automatique sont encore en WIP

Le modèle de connexion visé par Mycoria

  • Mycoria est un réseau overlay ouvert et sécurisé qui relie tous les participants
  • Il s’inspire de l’esprit curieux et aventureux des débuts d’Internet et place la liberté de connexion au cœur de ses valeurs
  • Ses principes fondamentaux sont les suivants
    • Everyone is equal : tout le monde peut se connecter facilement
    • Everyone is welcome : c’est un réseau ouvert auquel on peut participer sans procédure bureaucratique
    • No spooking : toutes les connexions sont authentifiées
    • No surveillance : toutes les connexions sont chiffrées, y compris les Private Addresses
    • No barriers : on peut se connecter via Internet ou étendre Mycoria avec son propre mesh

Objectifs de conception et fonctionnalités actuelles

  • L’objectif est de conserver une structure petite et simple
  • La compatibilité avec l’infrastructure existante, comme le DNS, est prise en compte
  • La sécurité est activée par défaut, tandis que la confidentialité de base reste en WIP
  • Les fonctionnalités actuellement proposées sont les suivantes
    • chiffrement de bout en bout automatique
    • cryptographie moderne
    • routage intelligent et évolutif
    • tableau de bord
    • résolution DNS en .myco
      • nécessite une configuration du système d’exploitation
    • découverte de services simple
    • optimisation et récupération automatiques du réseau pour l’overlay Internet
      • en état de WIP
    • private addresses rotatives
      • en état de WIP

1 commentaires

 
GN⁺ 2025-05-09
Avis sur Hacker News
  • Je suis l’auteur. Chez Safing, où j’ai été cofondateur/CTO ces huit dernières années, j’ai créé des technologies de confidentialité, et notre plus grande réussite technique a été SPN (anciennement Port17/Gate17)
    SPN était un réseau de confidentialité situé dans l’entre-deux entre un VPN et Tor, autrement dit un proxy de couche 5 ; il était impossible à mal configurer, offrait une vitesse correcte et proposait une confidentialité nettement meilleure qu’un VPN grâce au chiffrement en onion et à la séparation authentification/autorisation
    Fait intéressant, cette approche d’authentification séparée a ensuite été implémentée aussi dans Apple Private Relay et Google One VPN
    SPN fonctionnait globalement bien, mais passait difficilement à l’échelle ; comme nous en avions fait un proxy de couche 5 pour réduire les métadonnées et améliorer la confidentialité, nous avons aussi dû réimplémenter le contrôle du trafic et le contrôle de congestion, ce qui n’était pas facile et pose encore des problèmes
    Pendant ce temps, je lisais et suivais cjdns et Yggdrasil, et je me suis pris d’intérêt pour les idées de networking ; vers novembre 2023, avec l’expérience et les connaissances accumulées, je me suis demandé jusqu’où il serait possible de créer un réseau mesh de couche 3 scalable conservant une partie de la confidentialité et une sécurité complète
    J’y ai consacré la plupart de mes soirées pendant quelques mois, et ça a mieux avancé que prévu ; mais après avoir obtenu un MVP correct et trouvé un ami qui l’a utilisé pour la première fois sur une petite production, je n’ai plus eu le temps de continuer à travailler dessus
    Je lance maintenant un nouveau projet, dans lequel je compte bien l’exploiter ; le développement devrait donc progresser pas mal au cours des prochaines années. Pour l’instant, Mycoria fonctionne, au moins à petite échelle, mais reste globalement proche d’un MVP

    • Mycoria semble prometteur et me rappelle les premiers systèmes pair à pair de l’époque de Napster et Gnutella
      Je me demande s’il y a une raison particulière de ne pas utiliser le segment routing fondé sur des standards, qui peut être adopté en couche 3, pour la prise en charge du routage à la source, et d’avoir plutôt créé un transport de couche 4 sur mesure
      Je me demande aussi si l’analyse de sécurité a utilisé la logique BAN et l’outil de vérification ProVerif
      https://en.wikipedia.org/wiki/Gnutella
      https://en.wikipedia.org/wiki/Segment_routing
      https://en.wikipedia.org/wiki/Burrows%E2%80%93Abadi%E2%80%93...
      https://en.wikipedia.org/wiki/ProVerif
    • Je voudrais suggérer un terme comme peer plutôt que friend. Ce n’est pas un pinaillage : dans le domaine des agents utilisateurs, il vaut mieux éviter d’utiliser au niveau infrastructure une sémantique de relation qui ne se ferme pas
      Le serveur de mon ordinateur portable est aussi mon agent utilisateur, tout comme l’instance qui tourne sur mon téléphone ; les deux sont donc des peers
      Les applications construites sur cette base traiteront pour la plupart les relations sociales des utilisateurs, et des expressions comme friend seront utiles à cette couche-là
    • Des solutions similaires semblent avoir en commun d’ignorer l’aspect commercial. Je ne sais pas si l’adoption grand public est envisagée, mais je suppose que plus il y a d’utilisateurs, meilleures seront les propriétés de confidentialité et d’anonymat
      Si c’est le cas, je me demande si vous avez envisagé des incitations à participer, financières ou non. Le problème central dans ce domaine semble être de résoudre les paiements anonymes standardisés pour les fournisseurs de services d’infrastructure du réseau
    • Ce n’était pas clair d’après la documentation : si l’adresse de type IPv6 du routeur est l’empreinte d’une clé publique, encode-t-elle aussi un préfixe géographique et une distance ?
      En théorie, cela semble possible ; si c’est l’approche retenue, j’aimerais savoir comment. Sinon, je me demande si les adresses des routeurs ne contiennent aucune métadonnée et si seules les adresses des utilisateurs finaux sont encodées de cette manière
    • À l’époque où j’utilisais Windows, Portmaster et SPN étaient excellents. J’aimerais avoir quelque chose comme ça sur macOS
      Private Relay existe, mais il ne fonctionne que dans certaines apps Apple comme Safari ; il est difficile de savoir s’il est actif, et on ne peut pas non plus forcer le trafic à passer uniquement par lui
  • Techniquement, ce genre de choses est vraiment excellent. Ça me fait aussi imaginer, dans un avenir lointain, des nerds et des geeks formidables qui, malgré toutes les difficultés, monteraient leur propre réseau communautaire avec seulement une infrastructure de base
    Mais au final, participer à ce type de décentralisation en général est inconfortable et me rebute. J’ai l’impression que cela pourrait aider au partage et à la diffusion de contenus pédopornographiques
    Tailscale reste au moins dans un cadre privé, mais ici on a le sentiment de faire partie d’un réseau plus vaste. Je me demande si mon nœud servirait à router ce genre de trafic

    • En réalité, le risque plus grave et plus concret est la tyrannie. Les tyrans sont généralement aussi des abuseurs
    • Cela revient à conclure qu’il faudrait supprimer toute confidentialité sur Internet, mais cela n’empêcherait quand même pas les contenus pédopornographiques
      Bonne chance, Monsieur Big Brother
    • Quoi que l’on construise, cela finira par servir à des activités illégales
      Dans ce cas, Internet n’aurait-il jamais dû être inventé ? Il en irait de même pour les lettres, Facebook, les voitures, les armes à feu, les couteaux et l’agriculture
  • On voit clairement où ont été intégrés les enseignements tirés de cjdns et d’Yggdrasil, et le projet est vraiment excellent
    Cela dit, comme il semble prometteur et que ce nouveau projet est intéressant, j’aimerais relever un détail. D’après la FAQ, les IP des routeurs ont une structure et, à l’exception des préfixes à usage spécial, la plupart se trouvent dans un préfixe géographique. Chaque pays et chaque État américain dispose de son propre préfixe dans Mycoria ; les routeurs d’un même pays partagent le même préfixe au niveau global, et les pays proches ont généralement des préfixes assez similaires
    À l’intérieur d’un préfixe de pays, Mycoria utilise le routage par distance d’adresse : les paquets sont envoyés vers le routeur connu dont l’adresse est la plus proche. Ce n’est pas le routage le plus efficace, mais, surtout si on le limite à des zones géographiques plus petites comme le fait Mycoria, cela fonctionne assez bien avec quelques mesures supplémentaires
    L’une des leçons malheureuses tirées de l’Internet IPv4, de la manière dont les IP IANA ont été gérées par les différents RIR, et de l’association d’informations géographiques aux blocs IPv4, est que les responsables des politiques adorent superposer des règles aux étiquettes géographiques. Par exemple, si Maxmind considère qu’une adresse se trouve au Pakistan, et que le droit pakistanais interdit le contenu fourni par une autre adresse, alors celui-ci peut être bloqué
    Si la conscience géographique est intégrée aux préfixes réseau, elle peut être exploitée d’une façon que les utilisateurs ne souhaitent pas. Bien sûr, cela peut être un compromis acceptable, et on peut facilement imaginer des scénarios où les utilisateurs tirent suffisamment d’avantages des préfixes géographiques pour en accepter les inconvénients
    Dans le premier cas, il vaudrait la peine d’envisager de passer de préfixes géographiques — c’est-à-dire « à moins de X miles d’autres personnes dans cette juridiction » — à des préfixes sensibles à la latence, c’est-à-dire « à moins de X ms d’autres personnes dans ce préfixe »
    Cela dit, pour contredire moi-même ma recommandation, ceux qui voudraient mettre en œuvre des politiques de couche 8 au-dessus de préfixes géographiques pourraient aussi délibérément interpréter de travers les préfixes sensibles à la latence comme étant suffisamment proches, ce qui rendrait beaucoup d’efforts inutiles

    • Merci d’avoir pris le temps de faire ce retour. J’aimerais résoudre ce problème avec des adresses privées
      Les adresses privées n’ont pas d’indication géographique et ne sont pas routées. Par exemple, elles sont générées aléatoirement et ne peuvent pas être facilement rattachées à une position géographique
  • La documentation est bien faite et le projet a l’air intéressant. Il faudra que je l’essaie, mais la première question qui me vient est de savoir si Mycoria expose le nœud entier sur le réseau, ce qui nécessiterait un pare-feu pour limiter l’accès aux ports, etc.
    Je pose la question parce que c’est nécessaire avec Yggdrasil : https://yggdrasil-network.github.io/faq.html#will-my-machine...

    • Mycoria est sûr par défaut et ne demande presque aucune configuration
      Par défaut, personne ne peut accéder à votre appareil. Il faut l’autoriser explicitement dans la section services de la configuration
  • Je me demande comment il se compare à Veilid (https://veilid.com/)

  • Je me demande si vous avez regardé Reticulum[0]. J’aimerais aussi savoir dans quelle mesure cela recoupe la couche réseau de Mycoria
    [0]: https://github.com/markqvist/Reticulum

  • J’ai peut-être complètement raté quelque chose, mais Mycoria cherche-t-il à empêcher les participants au réseau de découvrir l’adresse IP Internet publique correspondant à un ID de routeur Mycoria ?
    Le champ iana de la configuration donne l’impression que ce n’est pas l’objectif ; dans ce cas, le système ressemble plutôt à Tailscale avec IPv6 et un espace de noms global. Dans ce cas, comme presque tous les hôtes Internet peuvent se joindre directement entre eux avec des techniques de traversée de NAT façon BitTorrent, je ne comprends pas très bien pourquoi l’accent est mis sur le « routage »
    S’il s’agit de masquer l’adresse IP Internet publique comme avec les services cachés Tor, alors l’approche de routage n’a pas non plus beaucoup de sens pour moi. On ne voudrait probablement pas choisir les chemins avec une stratégie déterministe ou dépendante de la latence, car cela ferait fuiter des informations

    • Mycoria a été conçu pour la résilience et ne dépend pas du bon fonctionnement parfait du backbone Internet actuel
      Même lorsque l’Internet actuel fonctionne « normalement », de nombreux utilisateurs de réseaux similaires ont indiqué obtenir une meilleure connectivité grâce au routage par réseau overlay. Le routage de l’Internet IANA est en effet fortement influencé
      Si vous laissez Mycoria générer la configuration, elle inclut les interfaces publiques actuelles de l’appareil ; cela n’est donc vrai que pour les serveurs. Mycoria ne dépend pas des adresses IANA, mais les utilise pour améliorer automatiquement la structure du réseau. Autrement dit, il cherche de meilleurs chemins entre routeurs via l’Internet IANA
  • Il serait peut-être plus utile de contribuer à des réseaux déjà existants comme i2p

    • Il existe déjà des projets existants presque identiques, pas seulement i2p
      La plupart n’ont pas réussi à atteindre une adoption suffisante, en grande partie parce qu’ils refusent de reconnaître que plus de 90 % du marché des ordinateurs de bureau n’utilise ni Linux ni BSD
      Certains prennent maladroitement en charge un client Windows, et très peu prennent en charge macOS, qui représente environ 20 à 30 % du marché desktop
  • Je me demande comment cela se compare à zrok (https://zrok.io/). J’aimerais l’expérimenter moi-même, mais je suis un peu inquiet parce que cela donne l’impression de ne pas être privé par défaut

    • Pour les cas d’usage présentés par Zrok, Mycoria est très similaire
      Par défaut, rien ne peut accéder à votre appareil. Il faut définir un service et ajouter des friends, c’est-à-dire vos autres appareils, pour autoriser l’accès