Aller au contenu principal

Annexe B. Travaux antérieurs sur DNS over HTTP ou dans d'autres formats (Previous Work on DNS over HTTP or in Other Formats)

Avant la standardisation de DoH, il existait déjà plusieurs propositions et implémentations pour transporter le DNS via HTTP ou utiliser des formats DNS alternatifs. Cette annexe résume certains de ces travaux antérieurs.

Google DNS over HTTPS :

Avant la standardisation de DoH, Google proposait déjà une API JSON pour les requêtes DNS. Cette API utilise des requêtes HTTP GET et retourne des réponses au format JSON plutôt qu'au format DNS Wire Format. Bien que cette API soit toujours disponible, elle n'est pas conforme au protocole DoH défini dans ce document.

Exemple de requête :

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

La réponse est au format JSON et contient une représentation structurée des résultats de la requête.

Cloudflare DNS over HTTPS :

Cloudflare propose également un service DNS over HTTPS et a été un participant actif aux travaux de standardisation de DoH. Le service de Cloudflare prend en charge le protocole DoH défini dans ce document, en utilisant le type de média « application/dns-message ».

DNS Wire Format over HTTP :

Certaines propositions antérieures suggéraient simplement d'encapsuler les messages au format DNS Wire Format dans HTTP, sans utiliser de type de média ou de structure d'URI dédiés. Ces propositions ont influencé la conception du protocole DoH actuel, mais le protocole actuel est plus structuré et mieux intégré à la sémantique HTTP.

DNS-JSON :

Certaines propositions suggéraient d'utiliser JSON comme format d'échange pour les données DNS. Les avantages de JSON incluent la lisibilité humaine et une bonne intégration avec les technologies Web. Cependant, le format JSON est généralement plus volumineux que le format DNS Wire Format et nécessite une logique d'analyse et de sérialisation supplémentaire. Le protocole DoH actuel utilise principalement le format DNS Wire Format, mais permet la prise en charge future d'autres formats, y compris JSON, via le mécanisme de négociation de contenu.

DNS over WebSockets :

Certains travaux expérimentaux ont exploré l'utilisation de WebSockets comme transport DNS. Les WebSockets fournissent un canal de communication bidirectionnel et peuvent prendre en charge des fonctionnalités telles que les notifications push du serveur. Cependant, la complexité des WebSockets et les problèmes d'intégration avec l'infrastructure HTTP existante les rendent moins adaptés comme mécanisme de transport DNS principal.

Autres protocoles de transport DNS :

En plus de DNS over HTTPS, il existe plusieurs autres protocoles offrant un transport DNS sécurisé :

  • DNS over TLS (DoT) [RFC7858] : Utilise TLS pour sécuriser directement les requêtes DNS, en utilisant le port dédié 853. DoT est plus simple que DoH, mais ne peut pas tirer parti des fonctionnalités HTTP et peut être plus facilement identifié et bloqué.

  • DNS over QUIC (DoQ) [RFC9250] : Utilise le protocole QUIC pour transporter les requêtes DNS. QUIC offre une faible latence et de bonnes performances mobiles, mais au moment de la rédaction de ce document, le déploiement de QUIC n'est pas aussi répandu que celui de HTTP/2.

  • DNSCrypt : Un protocole plus ancien pour chiffrer les requêtes DNS. DNSCrypt n'est pas un standard IETF, mais dispose de quelques implémentations et déploiements.

Enseignements et influences :

Ces travaux antérieurs ont fourni de précieux enseignements pour la conception de DoH :

  1. L'importance de l'interopérabilité : Les premières implémentations propriétaires ont montré la nécessité d'un protocole standardisé pour assurer l'interopérabilité entre différentes implémentations.

  2. Considérations de performance : L'efficacité du format DNS Wire Format est importante pour maintenir de bonnes performances, en particulier pour les appareils mobiles et les connexions à faible bande passante.

  3. Compromis en matière de vie privée : Différentes approches offrent différents niveaux de protection de la vie privée et impliquent différents compromis. DoH vise à offrir une bonne protection de la vie privée tout en maintenant la compatibilité avec l'infrastructure existante.

  4. Intégration avec HTTP : Tirer pleinement parti des fonctionnalités HTTP (telles que la mise en cache et la négociation de contenu) peut offrir des avantages significatifs, mais nécessite une conception soigneuse pour assurer une sémantique correcte.

  5. Praticité du déploiement : L'utilisation du port standard (443) et du protocole standard (HTTPS) facilite le déploiement de DoH, car il peut tirer parti de l'infrastructure existante et des règles de pare-feu.

Le protocole DoH actuel représente une synthèse et une amélioration de ces travaux antérieurs, visant à fournir un protocole DNS over HTTPS standardisé, efficace et sécurisé.