Domäner och IP-adresser
Idag domineras World Wide Web av sökmotorer. För att besöka webbplatsen för Increase Your Skills GmbH är det till exempel väldigt få användare som direkt skriver in domänen increaseyourskills.com i URL-fältet i sin webbläsare. Istället skriver de flesta något i stil med "öka din kompetens kurser" eller "öka din kompetens dataskydd" för att få en sökmotor att lista några sökträffar, och klickar sedan på den första relevanta träffen för att slutligen komma till den önskade webbplatsen. Detta är bekvämt och för många det vanliga sättet att använda tjänster på World Wide Web. Men om vi redan känner till domänen för en tjänst är omvägen via en sökmotor i princip överflödig: vi kan då gå direkt till domänen för den önskade tjänsten. Detta sparar data för sökmotorerna och förhindrar också att vi av misstag väljer fel sökträff.
Domäner som increaseyourskills.com eller elearning.increaseyourskills.com eller shop.increaseyourskills.com tar över den uppgift på Internet och i World Wide Web som utförs av postadresser: de fungerar som adresser för respektive område som tillhör en viss person eller institution. Detta är i princip allt vi behöver veta om domäner och adressering på internet för att hitta rätt på World Wide Web. Men som så ofta när det gäller informationsteknik är detta bara halva sanningen. Tekniskt sett är det inte människor som utbyter data över Internet, utan datorer. Men datorer adresserar inte varandra via domäner som increaseyourskills.com, utan via så kallade internetprotokolladresser, förkortat IP-adresser, som 81.169.145.162 eller 195.201.99.19 eller 23.227.38.74. I slutändan är domänerna inget annat än vänligare pseudonymer för dessa IP-adresser eftersom ord och ordsekvenser är lättare för oss människor att komma ihåg än siffersekvenser.
Domännamnssystemet
Varje giltig domän tilldelas en sådan IP-adress. För att t.ex. en laptop eller smartphone ska kunna kontakta domänen increaseyourskills.com måste denna domän översättas till en motsvarande IP-adress. Det finns dock ingen dator som har lagrat en lista över alla domäner och deras motsvarande IP-adresser. Så hur får vår laptop eller smartphone reda på vilken IP-adress som ligger bakom domänen increaseyourskills.com? Det är här det så kallade Domain Name System (förkortat DNS) kommer in i bilden. Domain Name System är den nätverkstjänst där varje dator kan begära den IP-adress som tilldelats en giltig domän.
För en domän som en dator besöker ofta eller nyligen har besökt känner den redan till IP-adressen. Om så inte är fallet begär den IP-adressen från nästa DNS-server. Vid en fast internetanslutning är detta vanligtvis den lokala nätverksroutern, som reglerar datatrafiken mellan de datorer som är registrerade i det lokala WLAN eller LAN och internet. Om den lokala nätverksroutern inte heller känner till IP-adressen för en viss domän, frågar den efter denna information igen från den närmaste DNS-servern. Normalt är detta en DNS-server som drivs av den internetleverantör som ansvarar för den lokala internetanslutningen. De flesta internetleverantörer har flera DNS-servrar i drift för detta ändamål. Om internetleverantörens DNS-servrar inte heller känner till IP-adressen för en viss domän kontaktar de den närmaste DNS-servern igen. Det finns en strikt hierarki av sådana DNS-servrar på internet. För varje domän fastställs exakt vilken DNS-server som så att säga har sista ordet för denna domän. Detta förhindrar bland annat att DNS-servrarna på Internet i all oändlighet frågar varandra om den motsvarande IP-adressen för en fritt uppfunnen domän.
DNS-spoofing
En DNS-servers huvudsakliga uppgift är att besvara förfrågningar från datorer som vill veta vilken IP-adress som är kopplad till en viss domän. Om vi kan få en DNS-server att besvara en sådan förfrågan inte med den faktiska IP-adressen utan med en annan IP-adress som vi har angett, ägnar vi oss åt DNS-spoofing. På så sätt kan datautbytet mellan en användares terminal och en server på Internet omdirigeras till en annan server.
Ett enkelt mål för DNS-spoofing är den lokala nätverksroutern i hemnätverket eller företagsnätverket, eftersom det i de flesta fall är den första DNS-servern som datorerna i det lokala nätverket kommer i kontakt med. Antag att vi har administrativ åtkomst till nätverksroutern. I så fall är det lätt att göra ytterligare DNS-poster i den och att omdirigera datatrafiken för vissa domäner specifikt till andra servrar. Om det inte finns några ytterligare säkerhetsåtgärder skulle det till exempel vara lätt att lura användare i det lokala nätverket att tro att de besöker en viss webbplats, när de i själva verket besöker en manipulerad kopia av den webbplatsen.
Att manipulera DNS-servrarna hos en internetleverantör eller i den djupare internetinfrastrukturen på liknande sätt kräver däremot avancerade kunskaper om datornätverk och nätverksprotokoll. Det finns ett antal kända angreppsscenarier för DNS. Många av dessa är endast historiskt relevanta eftersom DNS kontinuerligt utvecklas och härdas mot sådana attacker. Med DNSSEC finns det till exempel en rad tillägg för Domain Name System som gör det möjligt att autentisera svaren från en DNS-server kryptografiskt. Tyvärr används DNSSEC ännu inte i någon större utsträckning.
Upptäcka DNS-spoofing
För nätverksadministratörer och andra teknikintresserade användare finns det programvara som kan användas för att genomföra en lämplig DNS-audit. Alla vanliga Linux-distributioner innehåller den fritt tillgängliga verktygslådan DNSDiag, som kan användas för att analysera DNS-svar, till exempel för att avgöra om en DNS-fråga är föremål för en man-in-the-middle-attack. Vid normal, vardaglig användning av Internet och World Wide Web är det för närvarande mycket svårt att avgöra om en falsk IP-adress har lurats på oss genom DNS-spoofing. Det faktum att vår slutenhet så att säga blint litar på svaren från DNS-servern ligger i sakens natur utan kryptografisk autentisering av DNS-svaren.
Lyckligtvis är dataöverföring på Internet idag i de flesta fall säkrad genom ett kryptografiskt protokoll som kallas TLS. På World Wide Web känner vi igen användningen av TLS på att adressen i URL-fältet inte börjar med http://, utan med https://. Moderna webbläsare visar också ett litet lås framför adressen för att indikera att anslutningen är säkrad med TLS. Om anslutningen till servern är säkrad med TLS kan DNS-spoofing fortfarande leda till att förfrågningar omdirigeras till en felaktig server, men tack vare TLS känner vår slutenhet av att det inte är rätt server och avbryter kommunikationen.
Så när du surfar dagligen, leta efter det lilla låset i URL-fältet och se till att https:// föregår alla webbadresser. Då kommer TLS-protokollet också att skydda dig mot konsekvenserna av en DNS-spoofing-attack.