Perché mDNS (Bonjour, Avahi, ecc) usa UDP?
Domanda
Mi sembra che un sacco di problemi con DNS, in particolare i problemi di sicurezza, hanno la causa principale di DNS in corso di attuazione su UDP; per esempio il risponditore non deve essere chi dice di essere.
Non conosco i dettagli del protocollo mDNS (che presumo è molto più recente rispetto DNS), forse si prende cura di questi problemi nel suo livello di applicazione. Qualcuno può fare luce su questo per me?
Soluzione
Il 'm' in mDNS sta per "multicast". Una query mDNS è praticamente un multicast query DNS regolare (aka broadcast) alla subnet locale. Ogni host sulla sottorete riceve tutti i pacchetti di query mDNS e risponde a quelle per il loro nome host. Dato che non è possibile fare una trasmissione TCP, non si poteva implementare mDNS su TCP.
C'è un punto più fondamentale qui, però, mDNS è già completamente insicura. Come fai notare, chiunque può rispondere a qualsiasi richiesta in modo da avere più o meno fidarsi tutti gli host della rete. Il passaggio a TCP (se si potesse) non si risolvere questo problema.
Altri suggerimenti
Zeroconf non si occupa di sicurezza; sicurezza dovrebbe essere implementato nel livello sopra.
TCP non cambierebbe molto. Questi problemi devono essere risolti crittografica.