Utviklerne av DNS-serveren BIND har annonsert at de har lagt til serverstøtte for teknologiene 'DNS over HTTPS' (DoH) og DNS over TLS (DoT) i den eksperimentelle grenen 9.17, samt mekanismen XFR-over-TLS for sikker overføring av DNS-sonedata mellom serverne. DoH er tilgjengelig for testing i versjon 9.17.10, mens støtte for DoT er til stede fra versjon 9.17.7. Etter stabilisering vil støtten for DoT og DoH bli bakportert til den stabile grenen 9.16.
Implementeringen av protokollen HTTP/2, som brukes i DoH, er basert på bruken av biblioteket nghttp2, som er inkludert blant byggeavhengighetene (i fremtiden planlegges biblioteket å bli flyttet til kategori valgfrie avhengigheter). Både krypterte (TLS) og ukrypterte forbindelser over HTTP/2 støttes. Med de riktige innstillingene kan én prosess named nå håndtere ikke bare tradisjonelle DNS-forespørsel, men også forespørsel sendt med DoH (DNS-over-HTTPS) og DoT (DNS-over-TLS). Støtte for HTTPS på klientsiden (dig) er foreløpig ikke implementert; støtte for XFR-over-TLS er tilgjengelig for både innkommende og utgående forespørsel.
Behandling av forespørsel med DoH og DoT aktiveres ved å legge til alternativene http og tls i direktivet listen-on. For å støtte ukryptert DNS-over-HTTP må innstillingene inkludere 'tls none'. Nøklene defineres i seksjonen 'tls'. Standard nettverksporter 853 for DoT, 443 for DoH og 80 for DNS-over-HTTP kan overstyres gjennom parametrene tls-port, https-port og http-port. For eksempel: 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;}; }
En av de spesielle egenskapene ved implementeringen av DoH i BIND er integreringen som et felles transportlag, som kan brukes ikke bare for håndtering av forespørsel fra klienter til resolveren, men også ved datadeling mellom serverne, ved overføring av soner fra autoritative DNS-servere og ved behandling av alle forespørsel som støttes av andre DNS-transporter.
En annen funksjon er muligheten for å flytte krypteringsoperasjoner for TLS til en annen server, noe som kan være nødvendig når TLS-sertifikatene lagres på et annet system (for eksempel i en infrastruktur med webservere) og håndteres av annet personell. Støtte for ukryptert DNS-over-HTTP er implementert for å forenkle feilsøking og som et nivå for å videreformidle i det interne nettverket, hvor kryptering kan organiseres på en annen server. På den eksterne serveren for å generere TLS-trafikk kan nginx brukes, analogt med hvordan HTTPS-binding er organisert for nettsteder.
La oss minne om at DNS-over-HTTPS kan være nyttig for å hindre lekkasje av informasjon om etterspurte vertsnavn gjennom DNS-servere fra leverandører, bekjempe MITM-angrep og forfalskning av DNS-trafikk (for eksempel når man kobler til offentlig Wi-Fi), motvirke blokker på DNS-nivå (DNS-over-HTTPS kan ikke erstatte VPN i forhold til å omgå blokker som er implementert på DPI-nivå) eller for å organisere arbeid når direkte tilgang til DNS-servere ikke er mulig (for eksempel ved bruk av proxy). Hvis DNS-forespørslene vanligvis sendes direkte til systemkonfigurerte DNS-servere, så i tilfelle av DNS-over-HTTPS innkapsles forespørselen om å bestemme IP-adresser vertsnavnet i HTTPS-trafikken og sendes til en HTTP-server, hvor resolveren behandler forespørslene via Web API.
«DNS over TLS» skiller seg fra «DNS over HTTPS» ved å bruke standard DNS-protokoll (vanligvis benytter den nettverksport 853), innpakket i en kryptert kommunikasjonskanal opprettet ved hjelp av TLS-protokollen med validitetskontroll av vertsnavn via TLS/SSL-sertifikater sertifisert av en sertifiseringsmyndighet. Den eksisterende standarden DNSSEC bruker kryptering kun for autentisering av klienten og serveren, men beskytter ikke trafikken mot avlytting og garanterer ikke konfidensialitet av forespørslene.
Kilde: opennet.ru
