Les développeurs du serveur DNS BIND ont annoncé l'ajout dans la branche expérimentale 9.17 de la prise en charge serveur des technologies « DNS sur HTTPS » (DoH, DNS over HTTPS) et DNS sur TLS (DoT, DNS over TLS), ainsi qu'un mécanisme XFR-over-TLS pour le transfert sécurisé du contenu des zones DNS entre serveurs. DoH est disponible pour test dans la version 9.17.10, et le support de DoT est présent depuis la version 9.17.7. Une fois stabilisé, le support de DoT et DoH sera rétro-porté dans la branche stable 9.16.
L'implĂ©mentation du protocole HTTP/2, utilisĂ© dans DoH, est basĂ©e sur l'utilisation de la bibliothĂšque nghttp2, qui fait partie des dĂ©pendances de construction (Ă l'avenir, la bibliothĂšque devrait devenir l'une des dĂ©pendances facultatives). Des connexions Ă la fois chiffrĂ©es (TLS) et non chiffrĂ©es via HTTP/2 sont prises en charge. Avec les paramĂštres appropriĂ©s, un processus named peut dĂ©sormais traiter non seulement les requĂȘtes DNS traditionnelles, mais aussi les requĂȘtes envoyĂ©es Ă l'aide de DoH (DNS-over-HTTPS) et DoT (DNS-over-TLS). Le support HTTPS du cĂŽtĂ© client (dig) n'est pas encore implĂ©mentĂ©. Le support de XFR-over-TLS est disponible pour les requĂȘtes entrantes et sortantes.
Le traitement des requĂȘtes utilisant DoH et DoT s'active en ajoutant les options http et tls dans la directive listen-on. Pour prendre en charge DNS-over-HTTP non chiffrĂ©, il faut spĂ©cifier « tls none » dans les paramĂštres. Les clĂ©s sont dĂ©finies dans la section « tls ». Les ports rĂ©seau standard 853 pour DoT, 443 pour DoH et 80 pour DNS-over-HTTP peuvent ĂȘtre redĂ©finis via les paramĂštres tls-port, https-port et http-port. Par exemple : tls local-tls { key-file «/path/to/priv_key.pem»; cert-file «/path/to/cert_chain.pem»; }; http local-http-server { endpoints { «/dns-query»; }; }; options { https-port 443; listen-on port 443 tls local-tls http myserver {any;}; }
Parmi les caractĂ©ristiques de l'implĂ©mentation de DoH dans BIND, on note l'intĂ©gration en tant que transport commun, pouvant ĂȘtre utilisĂ© non seulement pour traiter les requĂȘtes des clients vers un rĂ©solveur, mais aussi pour l'Ă©change de donnĂ©es entre serveurs, lors du transfert de zones par le serveur DNS autoritaire et pour le traitement de toutes les requĂȘtes prises en charge par d'autres transports DNS.
Une autre caractĂ©ristique est la possibilitĂ© de transfĂ©rer les opĂ©rations de chiffrement pour TLS vers un autre serveur, ce qui peut ĂȘtre nĂ©cessaire dans des situations oĂč le stockage des certificats TLS est effectuĂ© sur un autre systĂšme (par exemple, dans une infrastructure de serveurs web) et gĂ©rĂ© par un autre personnel. La prise en charge de DNS-over-HTTP non chiffrĂ© est mise en Ćuvre pour faciliter le dĂ©bogage et servir de niveau pour le transfert dans un rĂ©seau interne, sur lequel le chiffrement peut ĂȘtre organisĂ© sur un autre serveur. Nginx peut ĂȘtre utilisĂ© sur le serveur externe pour gĂ©nĂ©rer le trafic TLS, analogiquement Ă la façon dont le HTTPS est encadrĂ© pour les sites.
Rappelons que DNS-over-HTTPS peut ĂȘtre utile pour Ă©viter les fuites d'informations concernant les noms d'hĂŽtes demandĂ©s par les serveurs DNS des fournisseurs, lutter contre les attaques MITM et la substitution de trafic DNS (par exemple, lorsque vous vous connectez Ă un Wi-Fi public), et contrer les blocages au niveau DNS (DNS-over-HTTPS ne peut pas remplacer VPN les mĂ©thodes de contournement des blocages mises en Ćuvre au niveau DPI) ou pour organiser le travail en cas d'incapacitĂ© Ă se connecter directement aux serveurs DNS (par exemple, lors d'un travail via un proxy). Dans une situation normale, les requĂȘtes DNS sont envoyĂ©es directement aux serveurs DNS spĂ©cifiĂ©s dans la configuration du systĂšme, mais dans le cas de DNS-over-HTTPS, la requĂȘte pour la dĂ©termination adresses IP de l'hĂŽte est encapsulĂ©e dans le trafic HTTPS et envoyĂ©e Ă un serveur HTTP, sur lequel le rĂ©solveur traite les requĂȘtes via une API Web.
"DNS over TLS" se distingue de "DNS over HTTPS" par l'utilisation du protocole DNS standard (utilisant gĂ©nĂ©ralement le port rĂ©seau 853), encapsulĂ© dans un canal de communication chiffrĂ© organisĂ© par le protocole TLS, avec vĂ©rification de la validitĂ© de l'hĂŽte Ă travers des certificats TLS/SSL signĂ©s par une autoritĂ© de certification. La norme DNSSEC existante utilise le chiffrement uniquement pour l'authentification du client et du serveur, mais ne protĂšge pas le trafic contre l'interception et ne garantit pas la confidentialitĂ© des requĂȘtes.
Source : opennet.ru
