Passa al contenuto principale

Appendix B. Lavori precedenti su DNS over HTTP o in altri formati

Prima della standardizzazione di DoH, erano già state proposte e implementate diverse soluzioni per trasportare DNS su HTTP o usare formati DNS alternativi. Questa appendice riassume alcuni di questi lavori precedenti.

Google DNS over HTTPS:

Prima della standardizzazione di DoH, Google offriva già una API JSON per query DNS. Questa API usa richieste HTTP GET e restituisce risposte in formato JSON invece del DNS Wire Format. Sebbene l'API sia ancora disponibile, non è conforme al protocollo DoH definito in questo documento.

Esempio di richiesta:

GET https://dns.google/resolve?name=example.com&type=A

La risposta è in formato JSON e contiene una rappresentazione strutturata dei risultati della query.

Cloudflare DNS over HTTPS:

Anche Cloudflare offre un servizio DNS over HTTPS ed è stata un partecipante attivo nel lavoro di standardizzazione DoH. Il servizio Cloudflare supporta il protocollo DoH definito in questo documento usando il tipo di media application/dns-message.

DNS Wire Format over HTTP:

Alcune proposte iniziali suggerivano semplicemente di incapsulare messaggi DNS Wire Format in HTTP, senza usare un tipo di media o una struttura URI dedicati. Tali proposte hanno influenzato il progetto dell'attuale protocollo DoH, ma il protocollo attuale è più strutturato e meglio integrato con la semantica HTTP.

DNS-JSON:

Alcune proposte suggerivano di usare JSON come formato di scambio per dati DNS. I vantaggi di JSON includono leggibilità umana e buona integrazione con le tecnologie Web. Tuttavia, JSON è in genere più grande del DNS Wire Format e richiede logica aggiuntiva di parsing e serializzazione. L'attuale protocollo DoH usa principalmente DNS Wire Format, ma il meccanismo di negoziazione del contenuto consente il supporto futuro di altri formati, incluso JSON.

DNS over WebSockets:

Alcuni lavori sperimentali hanno esplorato l'uso di WebSockets come trasporto DNS. WebSockets fornisce un canale di comunicazione bidirezionale che può supportare funzionalità come notifiche push dal server. Tuttavia, la complessità di WebSockets e i problemi di integrazione con l'infrastruttura HTTP esistente lo rendono meno adatto come meccanismo principale di trasporto DNS.

Altri protocolli di trasporto DNS:

Oltre a DNS over HTTPS, esistono diversi altri protocolli che forniscono trasporto DNS sicuro:

  • DNS over TLS (DoT) [RFC7858]: usa TLS per proteggere direttamente le query DNS su una porta dedicata, 853. DoT è più semplice di DoH, ma non può sfruttare le funzionalità HTTP e può essere più facile da identificare e bloccare.

  • DNS over QUIC (DoQ) [RFC9250]: usa il protocollo QUIC per trasportare query DNS. QUIC offre bassa latenza e buone prestazioni in mobilità, ma al momento della redazione di questo testo la distribuzione di QUIC era meno ampia di quella di HTTP/2.

  • DNSCrypt: un protocollo precedente per cifrare query DNS. DNSCrypt non è uno standard IETF, ma dispone di alcune implementazioni e distribuzioni.

Lezioni e influenza:

Questi lavori precedenti hanno fornito lezioni preziose per il progetto di DoH:

  1. Importanza dell'interoperabilità: le prime implementazioni proprietarie hanno mostrato la necessità di un protocollo standardizzato per assicurare interoperabilità tra implementazioni diverse.

  2. Considerazioni sulle prestazioni: l'efficienza del DNS Wire Format è importante per mantenere buone prestazioni, specialmente su dispositivi mobili e connessioni a bassa larghezza di banda.

  3. Compromessi di privacy: metodi diversi offrono livelli diversi di protezione della privacy e comportano compromessi diversi. DoH mira a fornire buona protezione della privacy mantenendo la compatibilità con l'infrastruttura esistente.

  4. Integrazione con HTTP: sfruttare le funzionalità HTTP, come cache e negoziazione del contenuto, può offrire vantaggi significativi, ma richiede un progetto attento per garantire semantica corretta.

  5. Praticità di distribuzione: usare una porta standard, 443, e un protocollo standard, HTTPS, rende DoH più facile da distribuire perché può sfruttare infrastruttura e regole firewall esistenti.

L'attuale protocollo DoH rappresenta una sintesi e un miglioramento di questi lavori precedenti, con l'obiettivo di fornire un protocollo DNS over HTTPS standardizzato, efficiente e sicuro.