Chaotic Name System

De Nicelab
Aller à : navigation, rechercher


Brainstorm

Quiconque peut gérer un serveur de zone (et peut, dans tous les cas, se comporter comme il le veut).

Tout le monde est libre de déclarer les noms de domaines souhaités, librement

Pour savoir qui est derrière un nom, on se base sur une chaîne de confiance (modèle GPG amélioré, avec un score de confiance pour chaque nœud)

Ce qui permet de ne pas avoir de collisions : deux noms identiques peuvent coexister.

« Les amis de mes amis ne sont pas forcément mes amis ».

Système de blacklist (altération de confiance) de nœud.

Blacklists pouvant être annoncées.

Système d’exceptions (possibilité de préférer un nœud pour tel nom, ou de fixer manuellement des scores pour des serveurs donnés)

Un nœud qui annonce un domaine mais qui reçoit une réponse différente peut continuer à annoncer les 2 adresses, en annonçant le chemin : celui qu’il a en local étant nécessairement plus fort.

Dès qu’un serveur change son niveau de confiance dans un nœud, tous les suivants sont invités à baisser leur note (et à l’annoncer).

Cache serveur et notion de TTL. Avec le fonctionnement en chaînes, on a un système résilient (mais pas exact)

Serveurs publics d’annuaires facultatifs (même système que GPG), pour récupérer les noms et signatures.

Anonymat et plausible deniality garantis par le fait qu’on ne sait jamais si une requête provient de la source ou simplement d’un forwarder

Questions

Comment éviter les attaques Sybil (des tas de méchants signant des chaînes différentes, pour donner l’impression d’un large consensus) ?

Comment éviter qu’une requête d’un nom à la con se propage dans tout le réseau ? (même si chaque requête timeoute individuellement)

Milestone

  • Brainstorm
  • Écriture d’une RFC
  • Retours de gens du réseau
  • Écriture d’une implémentation