Pourquoi mDNS (Bonjour, Avahi, etc) utilisent le protocole UDP?
Question
Il me semble que beaucoup de problèmes avec DNS, en particulier les problèmes de sécurité, ont la cause profonde d'être mis en œuvre DNS sur UDP; par exemple le répondeur ne doit pas être qui, dit-il, il est.
Je ne connais pas les détails du protocole mDNS (qui je suppose est beaucoup plus récent que DNS), peut-être qu'il prend soin de ces problèmes dans son niveau d'application. Quelqu'un peut-il faire la lumière sur ce pour moi?
La solution
Le 'm' dans mDNS signifie "multicast". Une requête mDNS est à peu près une multidiffusion régulière de requête DNS (aka diffusion) au sous-réseau local. Chaque hôte sur le sous-réseau reçoit tous les paquets de requêtes mDNS et répond à ceux de leur nom d'hôte. Comme il est impossible de faire une émission TCP, vous ne pouviez pas mettre en œuvre mDNS sur TCP.
Il y a un point plus fondamental ici que, mDNS est déjà tout à fait précaire. Comme vous le soulignez, tout le monde peut répondre à toute question que vous avez à peu près à faire confiance à tous les hôtes sur le réseau. Le passage à TCP (si vous pouviez) ne résoudrait pas ce problème.
Autres conseils
Zeroconf ne porte pas sur la sécurité; sécurité doit être assurée dans la couche ci-dessus.
TCP ne changerait pas grand-chose. Ces problèmes doivent être résolus cryptographiquement.