La tecnologia DNS, essendo alla base del funzionamento del World Wide Web, è uno dei protocolli più vecchi del web, e come tale, è nato come protocollo “in chiaro” e non è esente da vulnerabilità di sicurezza anche molto gravi.
Per questo motivo, sviluppatori indipendenti, community e istituzioni hanno lavorato negli anni alla creazione di diverse implementazioni di questo protocollo, che potessero ovviare a questi problemi.
Di seguito vedremo le 5 migliori implementazioni di tecnologie di sicurezza per il protocollo DNS.
DNSSEC
E’ un implementazione ITEF che permette la verifica tramite autentificazione crittografica della reale origine dei dati DNS e della completezza/integrità dei dati trasmessi. Non comprende però la criptazione, e quindi la riservatezza, dei dati in transito.
Server DNS che lo supportano: Bind server v. 9.5 o superiori, Unbound DNS, PowerDNS
Public DNS che lo supportano: Quad9, OpenDNS, Google, Cloudflare
Sito web: https://www.dnssec.net/
DNS-over-TLS (DoT)
Questo protocollo permette la criptazione, e quindi la riservatezza dei dati DNS tramite TLS. Previene l’eavesdropping e la manipolazione dei dati negli attacchi MitM (man-in-the-middle).
E’ diventato uno standard ITEF dal 2016. Utilizza per default la porta: 853 su TCP.
Server DNS che lo supportano: Bind server v. 9.17 o superiori, Unbound DNS v. 1.4.14 o superiori, PowerDNS v.1.3.0 o superiori
Client DNS che lo supportano: Andorid OS resolver v. 9 o superiore (Andorid); systemd-resolved (Linux); Unbound DNS (Windows, linux), Stubby (Windows, Linux); Knot Resolver (Windows, Linux)
Public DNS che lo supportano: Quad9, OpenDNS, Google, Cloudflare
Sito web: https://datatracker.ietf.org/doc/html/rfc7858
DNS-over-HTTP (DoH)
Questo protocollo esegue la risoluzione dei DNS tramite HTTPS. Previene l’eavesdropping e la manipolazione dei dati negli attacchi MitM (man-in-the-middle).
E’ diventato uno standard ITEF dal 2018. Utilizza per default la porta: 443 su TCP.
Server DNS che lo supportano: Bind server v. 9.17.10 o superiori, Unbound DNS v. 1.12.0 o superiori, PowerDNS v.1.4.0 o superiori
Client DNS che lo supportano: Windows 11 OS resolver (Windows); Google Chrome browser, Micorsoft Edge browser, Mozilla Firefox browser, Opera browser (Windows, iOS, Linux).
Public DNS che lo supportano: Quad9, OpenDNS, Google, Cloudflare
Sito web: https://datatracker.ietf.org/doc/html/rfc8484
DNSCurve
E’ in protocollo creato nel 2010 da Daniel J. Bernstein e permette la confidenzialità, l’integrità e la continuità nella disponibilità delle comunicazioni DNS tramite criptazione a curva elittica e MAC (message authentication code) tramite Curve25519, Salsa20 e Poly1305.
Implementazioni che lo supportano: Curvedns forwarder; dnscache patch by Matthew Dempsky; dnscache patch by Adam Langley; Curveportect by Jan Mojžíš.
Public DNS che lo supportano: OpenDNS
Sito web: https://dnscurve.org/
DNSCrypt
E’ un protocollo nato intorno al 2011 per autenticare e criptare il traffico fra un resolver e un recursive name server. Previene il DNS Forgery. DNS spoofing e protegge nella rete locale dagli attacchi MitM al DNS.
Non è uno standard IETF. Utilizza per default la porta: 433 su UDP (TCP è disponibile in alternativa a UDP).
Server DNS che lo supportano: dnscrypt-wrapper
Client DNS che lo supportano: dnscrypt-proxy (Windows, MacOS, Linux); dnscrypt-winclient (Windows); Simple DNSCriypt (Windows); DNSCrypt-OSXClient (MacOS).
Public DNS che lo supportano: Quad9, OpenDNS, AdGuard
Sito web: https://www.dnscrypt.org/