Articles

Wat is DNS en hoe werkt het?

Het DNS (Domain Name System) is een van de fundamenten van het internet, maar de meeste mensen buiten de netwerkwereld realiseren zich waarschijnlijk niet dat ze het elke dag gebruiken om hun werk te doen, hun e-mail te checken of tijd te verspillen op hun smartphone.

In de basis is DNS een directory van namen die overeenkomen met nummers. De nummers zijn in dit geval IP-adressen, die computers gebruiken om met elkaar te communiceren. In de meeste beschrijvingen van DNS wordt de vergelijking met een telefoonboek gebruikt, wat prima is voor mensen ouder dan 30 die weten wat een telefoonboek is.

Als je jonger bent dan 30, denk dan aan DNS als de contactenlijst van je smartphone, die de namen van mensen koppelt aan hun telefoonnummers en e-mailadressen. Vermenigvuldig die contactenlijst vervolgens met iedereen op deze planeet.

Een korte geschiedenis van DNS

Toen het internet heel, heel klein was, was het voor mensen gemakkelijker om specifieke IP-adressen te koppelen aan specifieke computers, maar dat duurde niet lang toen meer apparaten en mensen zich bij het groeiende netwerk aansloten. Het is nog steeds mogelijk om een specifiek IP-adres in een browser in te typen om een website te bereiken, maar toen, net als nu, wilden mensen een adres dat bestond uit gemakkelijk te onthouden woorden, van het soort dat we vandaag de dag zouden herkennen als een domeinnaam (zoals networkworld.com). In de jaren zeventig en begin jaren tachtig werden deze namen en adressen toegewezen door één persoon – Elizabeth Feinler van Stanford – die een hoofdlijst bijhield van elke op internet aangesloten computer in een tekstbestand met de naam HOSTS.TXT.

Dit was duidelijk een onhoudbare situatie naarmate het internet groeide, niet in de laatste plaats omdat Feinler alleen verzoeken behandelde vóór 18.00 uur Californische tijd, en vrij nam met Kerstmis. In 1983 kreeg Paul Mockapetris, een onderzoeker aan de USC, de opdracht om met een compromis te komen tussen de vele suggesties om het probleem op te lossen. Hij negeerde ze allemaal en ontwikkelde zijn eigen systeem, dat hij DNS noemde. Hoewel er sindsdien natuurlijk heel wat is veranderd, werkt het in de basis nog steeds hetzelfde als bijna 40 jaar geleden.

Hoe DNS-servers werken

De DNS-map die namen aan nummers koppelt, bevindt zich niet op één plek in een donker hoekje van het internet. Met meer dan 332 miljoen domeinnamen aan het eind van 2017, zou één enkele directory inderdaad erg groot zijn. Net als het internet zelf is de directory verspreid over de hele wereld, opgeslagen op domeinnaamservers (meestal DNS-servers genoemd) die allemaal zeer regelmatig met elkaar communiceren om updates en redundanties te bieden.

Authoratieve DNS-servers vs. recursieve DNS-servers

Wanneer uw computer het IP-adres wil vinden dat bij een domeinnaam hoort, doet hij zijn verzoek eerst aan een recursieve DNS-server, ook wel recursieve resolver genoemd. Een recursieve omzetter is een server die meestal wordt beheerd door een ISP of een andere derde partij provider, en het weet welke andere DNS-servers het moet vragen om de naam van een site om te zetten met zijn IP-adres. De servers die daadwerkelijk over de benodigde informatie beschikken, worden gezaghebbende DNS-servers genoemd.

DNS-servers en IP-adressen

Elk domein kan corresponderen met meer dan één IP-adres. Sommige sites hebben zelfs honderden of meer IP-adressen die corresponderen met een enkele domeinnaam. Zo is de server die uw computer bereikt voor www.google.com waarschijnlijk heel anders dan de server die iemand in een ander land zou bereiken door dezelfde sitenaam in zijn browser in te typen.

Een andere reden voor het gedistribueerde karakter van de directory is de hoeveelheid tijd die het zou kosten om een reactie te krijgen als u naar een site zocht, als er maar één locatie voor de directory was, gedeeld door de miljoenen, waarschijnlijk miljarden, mensen die ook op hetzelfde moment naar informatie zoeken. Dat is één lange rij om het telefoonboek te gebruiken.

Wat is DNS caching?

Om dit probleem te omzeilen, wordt DNS-informatie gedeeld tussen vele servers. Maar informatie over recent bezochte sites wordt ook lokaal op clientcomputers in de cache opgeslagen. De kans is groot dat u google.com meerdere malen per dag gebruikt. In plaats van dat uw computer de DNS-naamserver elke keer om het IP-adres van google.com vraagt, wordt die informatie op uw computer opgeslagen zodat deze niet naar een DNS-server hoeft te gaan om de naam met het IP-adres om te zetten. Extra caching kan voorkomen op de routers die worden gebruikt om clients met het internet te verbinden, en op de servers van de Internet Service Provider (ISP) van de gebruiker. Met zoveel caching is het aantal queries dat daadwerkelijk bij DNS-nameservers terechtkomt een stuk lager dan het lijkt.

Hoe vind ik mijn DNS-server?

In het algemeen wordt de DNS-server die u gebruikt automatisch door uw netwerkprovider ingesteld wanneer u verbinding maakt met het internet. Als u wilt zien welke servers uw primaire nameservers zijn – over het algemeen de recursieve resolver, zoals hierboven beschreven – zijn er webhulpprogramma’s die een groot aantal gegevens over uw huidige netwerkverbinding kunnen verschaffen. Browserleaks.com is een goede, en het biedt veel informatie, waaronder uw huidige DNS-servers.

Kan ik 8.8.8.8 DNS gebruiken?

Het is echter belangrijk om in gedachten te houden dat, hoewel uw ISP een standaard DNS-server zal instellen, u niet verplicht bent om deze te gebruiken. Sommige gebruikers kunnen reden hebben om de DNS van hun ISP te vermijden – sommige ISP’s gebruiken hun DNS-servers bijvoorbeeld om verzoeken voor niet-bestaande adressen om te leiden naar pagina’s met reclame.

Als u een alternatief wilt, kunt u in plaats daarvan uw computer richten op een openbare DNS-server die zal fungeren als een recursieve omzetter. Een van de meest prominente openbare DNS-servers is die van Google; zijn IP-adres is 8.8.8.8. Google’s DNS-services zijn over het algemeen snel, en hoewel er bepaalde vragen zijn over de bijbedoelingen van Google om de gratis service aan te bieden, kunnen ze niet echt meer informatie van je krijgen dan ze al niet van Chrome krijgen. Google heeft een pagina met gedetailleerde instructies over hoe u uw computer of router kunt configureren om verbinding te maken met Google’s DNS.

Hoe DNS efficiëntie toevoegt

DNS is georganiseerd in een hiërarchie die helpt om dingen snel en soepel te laten verlopen. Laten we ter illustratie doen alsof u networkworld.com.wilt bezoeken

Het eerste verzoek om het IP-adres wordt gedaan aan een recursieve omzetter, zoals hierboven besproken. De recursieve omzetter weet welke andere DNS-servers hij moet vragen om de naam van een site (networkworld.com) met het bijbehorende IP-adres om te zetten. Deze zoekopdracht leidt naar een rootserver, die alle informatie kent over topleveldomeinen, zoals .com, .net, .org en al die landendomeinen zoals .cn (China) en .uk (Verenigd Koninkrijk). Root-servers bevinden zich over de hele wereld, dus het systeem leidt je meestal naar de geografisch dichtstbijzijnde.

Als het verzoek eenmaal bij de juiste root-server is aangekomen, gaat het naar een top-level domain (TLD) name server, die de informatie voor het second-level domain opslaat, de woorden die worden gebruikt voordat je bij de .com, .org, .net komt (bijvoorbeeld, die informatie voor networkworld.com is “networkworld”). Het verzoek gaat dan naar de Domain Name Server, die de informatie over de site en zijn IP-adres bijhoudt. Zodra het IP-adres is ontdekt, wordt het teruggezonden naar de client, die het nu kan gebruiken om de website te bezoeken. Dit alles neemt slechts milliseconden in beslag.

Omdat DNS al meer dan 30 jaar werkt, beschouwen de meeste mensen het als vanzelfsprekend. Bij de bouw van het systeem is ook niet aan beveiliging gedacht, dus hackers hebben hier optimaal van geprofiteerd en een verscheidenheid aan aanvallen gecreëerd.

DNS-reflectieaanvallen

DNS-reflectieaanvallen kunnen slachtoffers overspoelen met grote hoeveelheden berichten van DNS-resolverservers. Aanvallers vragen grote DNS-bestanden op bij alle open DNS-resolvers die ze kunnen vinden en doen dit met het gespoofde IP-adres van het slachtoffer. Wanneer de resolvers reageren, ontvangt het slachtoffer een vloedgolf van ongevraagde DNS-gegevens die zijn machines overweldigt.

DNS cache poisoning

DNS cache poisoning kan gebruikers omleiden naar kwaadaardige websites. Aanvallers slagen erin valse adresrecords in de DNS in te voeren, zodat wanneer een potentieel slachtoffer een adresresolutie aanvraagt voor een van de vergiftigde sites, de DNS antwoordt met het IP-adres van een andere site, een die door de aanvaller wordt gecontroleerd. Eenmaal op deze nep-sites kunnen slachtoffers worden overgehaald om wachtwoorden op te geven of malware te downloaden.

DNS resource exhaustion

DNS resource exhaustion attacks kunnen de DNS-infrastructuur van ISP’s verstoppen, waardoor de klanten van de ISP’s geen sites op het internet kunnen bereiken. Dit kan worden gedaan door aanvallers die een domeinnaam registreren en de naamserver van het slachtoffer gebruiken als de gezaghebbende server van het domein. Dus als een recursieve oplosser het IP-adres dat bij de sitenaam hoort niet kan leveren, zal hij de naamserver van het slachtoffer vragen. Aanvallers genereren grote aantallen verzoeken voor hun domein en voegen daar onbestaande subdomeinen aan toe, wat leidt tot een stortvloed van resolutieverzoeken die op de naamserver van het slachtoffer worden afgevuurd en deze overweldigen.

Wat is DNSSec?

DNS Security Extensions is een poging om de communicatie tussen de verschillende niveaus van servers die betrokken zijn bij DNS-lookups veiliger te maken. Het is bedacht door de Internet Corporation for Assigned Names and Numbers (ICANN), de organisatie die verantwoordelijk is voor het DNS-systeem.

ICANN werd zich bewust van zwakke punten in de communicatie tussen de DNS-topservers, DNS-servers op het tweede niveau en DNS-servers op het derde niveau, waardoor aanvallers lookups zouden kunnen kapen. Daardoor zouden aanvallers op verzoeken om lookups naar legitieme sites kunnen reageren met het IP-adres van kwaadaardige sites. Deze sites zouden malware naar gebruikers kunnen uploaden of phishing- en pharming-aanvallen kunnen uitvoeren.

DNSSEC pakt dit aan door elk DNS-serverniveau zijn verzoeken digitaal te laten ondertekenen, wat ervoor zorgt dat de verzoeken die door eindgebruikers worden verzonden, niet door aanvallers worden gecommandeerd. Dit creëert een vertrouwensketen, zodat bij elke stap in de lookup de integriteit van het verzoek wordt gevalideerd.

DnSSec kan bovendien bepalen of domeinnamen bestaan, en als een domeinnaam niet bestaat, laat het dat frauduleuze domein niet leveren aan onschuldige aanvragers die een domeinnaam willen laten omzetten.

Naarmate er meer domeinnamen worden gemaakt en er meer apparaten aan het netwerk worden toegevoegd via apparaten van het internet der dingen en andere “slimme” systemen, en naarmate meer sites migreren naar IPv6, zal het nodig zijn een gezond DNS-ecosysteem in stand te houden. De groei van big data en analytics brengt ook een grotere behoefte aan DNS-beheer met zich mee.

SIGRed: Een wormable DNS-fout steekt de kop op

De wereld kreeg onlangs een goed beeld van het soort chaos dat zwakheden in DNS kunnen veroorzaken met de ontdekking van een fout in Windows DNS-servers. Het potentiële veiligheidslek, SIGRed genaamd, vereist een complexe aanvalsketen, maar kan ongepatchte Windows DNS servers misbruiken om mogelijk willekeurige kwaadaardige code op clients te installeren en uit te voeren. En de exploit is “wormable”, wat betekent dat het zich van computer naar computer kan verspreiden zonder menselijke tussenkomst. De kwetsbaarheid werd alarmerend genoeg geacht dat Amerikaanse federale agentschappen slechts een paar dagen de tijd kregen om patches te installeren.

DNS over HTTPS: een nieuw privacy-landschap

Op het moment van schrijven staat DNS aan de vooravond van een van de grootste verschuivingen in zijn geschiedenis. Google en Mozilla, die samen het leeuwendeel van de browsermarkt in handen hebben, moedigen een verschuiving aan naar DNS over HTTPS, of DoH, waarbij DNS-verzoeken worden versleuteld door hetzelfde HTTPS-protocol dat al het meeste webverkeer beschermt. In Chrome’s implementatie controleert de browser of de DNS-servers DoH ondersteunen, en als dat niet het geval is, worden DNS-verzoeken omgeleid naar Google’s 8.8.8.8.

Het is een stap die niet zonder controverse is. Paul Vixie, die in de jaren tachtig veel van het vroege werk aan het DNS-protocol verrichtte, noemt de stap een “ramp” voor de beveiliging: IT-bedrijven zullen het bijvoorbeeld veel moeilijker hebben om DoH-verkeer dat hun netwerk doorkruist, te controleren of te sturen. Chrome is echter alomtegenwoordig en DoH zal binnenkort standaard worden ingeschakeld, dus we zullen zien wat de toekomst brengt.

(Keith Shaw is een voormalige senior redacteur voor Network World en een bekroonde schrijver, redacteur en productrecensent die heeft geschreven voor vele publicaties en websites over de hele wereld.)

(Josh Fruhlinger is een schrijver en redacteur die in Los Angeles woont.)

Laat een antwoord achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *