Din dator har två adresser på Internet: en permanent fysisk adress eller MAC-adress (Media Access Control) och en logisk IP-adress (Internet Protocol). Men när många datorer byter IP-adresser hela tiden, hur kan då nätverk koppla olika IP-adresser till en enda MAC-adress?
Här kommer ARP in i bilden, formellt känt som Address Resolution Protocol (adressupplösningsprotokoll).
ARP’s uppgift är att översätta mellan en dators MAC-adress och IP-adresser – en ganska användbar funktion för alla nätverk. Trots sin användbarhet så kan ARP dock även innebära flera säkerhetsrisker. Detta inkluderar exempelvis avlyssning av potentiellt känsliga uppgifter.
Men hur fungerar det hela?
I den här artikeln så kommer vi att definiera ARP, jämföra det med liknande nätverksprotokoll, samt utforska dess olika typer och användningsområden. Vi kommer dessutom att gå igenom riskerna med att använda det i ditt nätverk. Läs vidare för att lära dig mer om detta vanliga – och ibland riskabla – nätverksprotokoll.
Vad är ARP?
Address Resolution Protocol eller ARP är ett vanligt sätt för nätverk att översätta (eller lösa upp) en dators IP-adress till dess fysiska maskinadress.
Dessa två adresser skiljer sig åt i längd och format. ARP är därför viktigt för att datorer och andra enheter ska kunna kommunicera i ett nätverk. För att verkligen förstå varför detta är viktigt, låt oss dock få en snabb uppfräschning av dessa två typer av adresser och hur de relaterar till våra dagliga nätverksmodeller.
IP och MAC-adresser
Din dator, smartphone och andra anslutna enheter har två adresser på Internet: en IP-adress och en MAC-adress.
Men varför ska man ha två separata adresser för en enhet?
Föreställ dig för ett ögonblick att din dator är en husvagn. När husbilen kommer från tillverkningslinjen så kan den exempelvis ha ett serienummer (eller någon annan unik identifierare) som skiljer den från alla andra husbilar. Med andra ord så kan husbilen identifieras med hjälp av sitt serienummer.
Låt oss nu säga att du parkerar husbilen i ditt bostadsområde. Beroende på vilken parkeringsplats som du har parkerat den på så får husbilen en gatuadress – exempelvis ”27 Kinsta Lane” Om ditt husvagnshus parkeras på samma tomt så kommer dess gatuadress att förbli 27 Kinsta Lane. Du kan dock lika gärna flytta den längre bort och ge den en ny gatuadress, exempelvis ”93 Kinsta Lane.”
Två former av identifiering
Observera här att parkeringen av din husbil ger den två former av identifiering: dess serienummer och gatuadress. Gatuadressen talar om för alla var husbilen står i förhållande till resten av världen. Serienumret skiljer däremot husbilen från andra husbilar som kan stå på samma tomt.
Din dators IP- och MAC-adresser har exakt samma funktion, men grannskapet i vårt exempel är nu ett lokalt nätverk.
Här är datorns MAC-adress dess unika fysiska identifierare i ett nätverk – på samma sätt som ditt husbils serienummer var dess unika fysiska identifierare. Därför så kallas MAC-adressen ofta för en fysisk adress eller maskinvaruadress. Precis som ett serienummer så kan du inte ändra datorns MAC-adress.
Samtidigt så är datorns IP-adress dess ”gatuadress” i nätverket. När en dator ansluts till ett nätverk så tilldelas den en IP-adress precis som en husbil tilldelas en gatuadress när den parkeras på en parkeringsplats.
Om datorn kopplar bort sig från nätverket så förlorar den dock IP-adressen, precis som om en husbil avlägsnas från en tomt och därmed förlorar sin gatuadress. Att återansluta till nätet är därför detsamma som att parkera husbilen någon annanstans, där datorn får en ny IP-adress, precis som husbilen får en ny gatuadress.
IP- och MAC-adresser skiljer sig naturligtvis fortfarande mycket från gatuadresser och serienummer.
Medan en postanställd kan leverera post till ett husvagnshus utan att känna till dess serienummer, behöver Internetmotsvarigheten – Internetprotokollet eller IP-adressen – båda adresserna för att leverera post eller paket till rätt dator.
Skillnader mellan identifiering
Kort sagt så identifierar MAC-adresser och IP-adresser enheter i ett nätverk på olika sätt. Här är några av de viktigaste skillnaderna mellan dessa två:
Adresserar olika lager
MAC- och IP-adresser arbetar på olika lager i OSI-modellen (Open Systems Interconnection), som beskriver de olika steg som data går igenom när de skickas mellan datorer. Vi kommer inte att gå in på alltför många detaljer här. Det kan dock nämnas att MAC-adresser arbetar på datalänkskiktet (eller lager 2), som direkt översätter elektriska signaler som skickas över en tråd och logiska data. IP-adresser arbetar ett lager högre upp på nätverkslagret (eller lager 3), som hanterar adressering och dirigering i nätverket – nästan som att skriva en adress på ett kuvert.
Lokal respektive global räckvidd
MAC-adresser används för att identifiera olika enheter på en ”lokal” skala. Detta kan exempelvis handla om olika datorer som delar ett nätverk i en kontorsbyggnad. IP-adresser fungerar mer globalt och styr hur enheter på Internet lokaliserar och kommunicerar med varandra.
Olika adressformat
Eftersom MAC- och IP-adresser arbetar på olika lager och gör olika saker så har de även olika format. En MAC-adress har ett serienummer-liknande format med 12 siffror grupperade i par och separerade med bindestreck eller kolon (00:00:00:00:00:00:00:00). En typisk IPv4-adress är däremot en 32-bitars adress (bit betyder binär siffra) grupperad i fyra decimaltal (000.000.000.000.0000). Du behöver inte känna till detaljerna just nu, men notera att ARP’s huvudfunktion är att associera dessa två adressformat.
MAC-adresser är permanenta
MAC-adresser tilldelas en enhet av tillverkaren så snart som den byggs. Denna adress är i princip ”inbäddad” i enhetens nätverks-maskinvara. Som ett resultat så blir den permanent och oföränderlig – precis som vårt husbils-hems serienummer från tidigare. IP-adresser är tillfälliga och tilldelas när enheten ansluter till ett nätverk. Enheterna kan därför anta hur många olika IP-adresser som helst under sin livstid.
Fysisk vs. logisk
I förlängningen av ovanstående så kallas en MAC-adress dessutom för en fysisk adress eller maskinvaruadress, medan IP-adresser ibland (men inte lika ofta) kallas för logiska adresser.
Tilldelas vid olika tidpunkter
Som vi nämnde tidigare så tilldelas MAC-adresser en gång vid tillverkningstillfället. IP-adresser kan sedan tilldelas hur många gånger som helst efteråt, så många gånger som enheten ansluter till ett nätverk.
Så var kommer ARP in i bilden?
Eftersom varje dator har båda adresserna så måste det finnas något sätt att koppla ihop den ena med den andra. Paketen måste ju trots allt levereras till rätt ställe. Detta för oss till ARP’s kärnfunktion: att koppla en enhets MAC-adress till dess ständigt föränderliga IP-adress och vice versa.
Låt oss ta en närmare titt på hur detta fungerar.
Hur fungerar ARP?
Nu när vi har svarat på frågan ”Vad är ARP?” så ska vi förstå hur det fungerar. ARP upprätthåller en uppdaterad lista över MAC-adresser och deras tillhörande IP-adresser. Den här listan upprätthålls vanligtvis av en gateway eller router – i princip vilken nätverksväxel som helst som ansvarar för att hantera dataflödet mellan nätverk och enheter.
För att förstå detta så tar vi en titt på diagrammet nedan.
Här försöker ”HOST”-datorn till vänster skicka något till datorn till höger med IP-adressen 34.40.21.20. För att kunna skicka data till den här datorn så behöver HOST-datorn dess IP-adress och MAC-adress.
Som tur är så har HOST-datorn redan datorns IP-adress. Allt som den behöver nu är datorns MAC-adress, och det är här ARP kommer in i bilden.
Nätverksanslutna enheter och växlar (i det här fallet en router) upprätthåller en lista över kända översättningar av IP- till MAC-adresser i sina operativsystem. Denna lista kallas ARP-cache eller ARP-tabell, som kräver ständiga uppdateringar för att hålla jämna steg med de ständigt föränderliga IP-adresserna.
När en dator vill skicka något till en viss IP-adress så kontrollerar den först sin ARP-cache för att se om den har en matchande MAC-adress. Om så inte är fallet så skickar den sedan begärande-paket för MAC-adressen.
Illustration av processen
Låt oss illustrera den här processen med hjälp av de två datorerna i diagrammet:
- Datorn HOST kontrollerar sin ARP-cache för att se om den redan känner till MAC-adressen 34.40.21.20. Om så är fallet så har den allt som den behöver och skickar meddelandet.
- HOST-datorn skickar en begäran om 34.40.21.20’s MAC-adress.
- Routern tar emot begärandet om nätverksadresser från HOST-datorn och använder ARP för att försöka att hitta MAC-adressen.
- ARP försöker att referera till routerns befintliga ARP-cache. Om MAC-adressen inte kan hittas så skickar den en begäran till 34.40.21.20.
- 34.40.21.20 skickar sin MAC-adress (A5:22:98:5C:24:93) tillbaka till routern.
- Routern uppdaterar sin ARP-cache och skickar 34.40.21.20’s MAC-adress tillbaka till HOST-datorn, vilket avslutar begärandet.
- Datorn skickar något till 34.40.21.20.
Även om detta bara är ett grundläggande exempel så bör det ge dig en uppfattning om ARP’s kärnfunktion.
En annan huvudfunktion för ARP är dessutom att upprätthålla (och rensa) IP-till-MAC-översättningar i ARP-cachen. Att hålla ARP-cachen relativt ren är inte bara nödvändigt för att få den senaste informationen. Det hjälper dessutom till att eliminera felaktiga eller oanvända adresser. Som vi kommer att se senare så är det även nödvändigt att rensa översättningar för att förhindra att IP-adresser hamnar i fel händer.
Även posterna i en ARP-cache kan antingen vara dynamiska eller statiska. Dynamiska poster är poster som fylls på automatiskt på det sätt som vi redan har beskrivit. Användare kan dock även ange statiska poster som de vill behålla permanent manuellt . Detta är användbart för bestående nätverksenheter med fasta (dvs. statiska) IP-adresser.
ARP vs DHCP vs DNS: Vad är skillnaden?
Om du är någorlunda bekant med nätverk så har du förmodligen hört talas om DHCP (Dynamic Host Configuration Protocol) och/eller DNS (Domain Name System). Om så är fallet så kanske du även undrar hur ARP i nätverk skiljer sig från dessa liknande protokoll.
- DHCP vs ARP: ARP existerar till stor del eftersom IP-adresser alltid ändras och tilldelas på nytt i ett nätverk. En som är ansvarig för denna ständiga förändring är DHCP, det protokoll som konfigurerar en dynamisk IP-adress för host-datorer – därav namnet Dynamic Host Configuration Protocol. DHCP hjälper dessutom till att undvika konflikter, exempelvis när flera datorer tilldelas samma IP-adress.
- DNS vs ARP: Medan ARP associerar IP- och MAC-adresser så associerar DNS IP-adresser och domännamn (exempelvis ”kinsta.com”). Alla webbplatser förlitar sig på hosting för sina webbsidor, bilder och allt annat som ingår i dem. Precis som alla andra nätverksenheter så har hosting-servrar en IP-adress. Tack vare DNS så behöver du dock inte skriva in en host´s IP-adress för att komma åt en webbplats. Du skriver istället bara in en webbadress som ”www.example.com” så hämtar DNS-servern den matchande IP-adressen så att din webbläsare kan begära och visa webbsidorna från hosting-leverantören.
Användning och typer av ARP
Även om ARP kan verka som en stor, monolitisk process så kan den implementeras på många olika sätt.
När man förklarar vad ARP är så finns det fyra speciella typer: proxy ARP, gratuitous ARP, reverse ARP (RARP) och inverse ARP (IARP). Varje typ har olika användningsområden och i vissa fall tydliga för- och nackdelar.
Vad är proxy ARP?
En proxy-ARP innebär att en ARP-konfigurerad växel (t.ex. en router) hanterar ARP-begäranden (dvs. begäranden om MAC-adresser) från enheter/hostar utanför det egna nätverket. Växeln skickar sedan sin egen MAC-adress som svar och fungerar på så sätt som en ”representant” för varje host-dator i nätverket.
För att förtydliga detta så kan vi titta närmare på diagrammet ovan. Här betjänar den gröna routern i mitten två separata lokala nätverk: 10.0.0.0.0/24 och 10.0.4.0/24.
Låt oss säga att host B vill skicka ett meddelande till host D. Detta skulle inte vara något problem om host D befann sig i samma lokala nätverk (som host A). Tyvärr så befinner den sig i ett annat nätverk. Som ett resultat så befinner sig host B i en knepig situation: hur kan den få tag på MAC-adressen för host D?
Vanligt för VPN-anslutningar och brandväggar
Tack och lov så kommer routern till undsättning. När host B skickar en ARP-begäran till routern, så går routern in och ger sin egen MAC-adress som svar. Med routerns MAC-adress i handen så skickar host B sitt meddelande till routern, som nu bokstavligen fungerar som en ”proxy” för host B. Routern skickar sedan host B’s meddelande till host D, den avsedda mottagaren.
Som du kanske kan föreställa dig så är proxy ARP extremt vanligt i datornätverk, med typiska användningsområden som VPN-anslutningar och brandväggar.
Det finns dock vissa nackdelar med proxy ARP, varav de flesta beror på felaktiga konfigurationer. En sådan nackdel är exempelvis den ökade risken för att meddelanden skickas till fel ställen. Det kan ju nämligen hända att enheter utanför nätverket kanske inte är medvetna om felaktiga konfigurationer när de bara har att göra med en proxy ARP. Proxy ARP: er kan även fungera som vektorer för DoS-attacker (Denial of Service), vilket vi kommer att undersöka lite senare.
Vad är Gratuitous ARP?
En Gratuitous ARP är ett ARP-svar som inte har begärts tidigare. Med andra ord så är Gratuitous ARP Gratuitous när det gäller att skicka ARP-svar och sänder i själva verket sin IP-MAC-översättning till alla hostar/enheter i nätverket. Det är nästan som att någon skickar ett mass-meddelande för att låta alla få veta att de har uppdaterat sina kontaktuppgifter.
Gratuitous ARP har flera användbara tillämpningar. För det första så är den viktig för att uppdatera ARP-cacher och mappning, särskilt när en ny enhet eller nod ansluter sig till nätverket. När det gäller en ny enhet så undviker gratuitous ARP att skicka och svara på enskilda ARP-begäranden till alla andra enheter i det lokala nätverket.
Att säkerställa redundans är ett annat viktigt användningsområde för gratuitous ARP. Vissa redundanta nätverk kan exempelvis använda två eller flera routrar med samma IP-adress. När en av dessa routrar går sönder så skickar den ”överlevande” routern en gratuitous ARP för att informera nätverket om var meddelanden ska skickas.
Vad är Reverse ARP (RARP)?
Reverse ARP (RARP) gör exakt vad namnet antyder. Den skickar en IP-adress i stället för en MAC-adress.
Men varför göra detta överhuvudtaget? Är inte IP-adresser redan kända för hostarna i ett nätverk?
Inte alltid. Även om det kan verka osannolikt så känner vissa hostar inte ens till sina egna IP-adresser. Detta beror ofta på att en host helt enkelt inte har tillräckligt med minne eller utrymme för att lagra sin IP-information. Som ett resultat så är en RARP-begäran helt nödvändig för kommunikationen. Kom ihåg att endast MAC-adresser är permanent tilldelade. Det kan därför hända att hostarna inte känner till något annat än sin MAC-adress!
Vad är Inverse ARP (IARP eller InARP)?
Precis som RARP så skickar även invers ARP (förkortat IARP eller InARP) IP-adresser i stället för MAC-adresser. Men till skillnad från RARP så fungerar invers ARP exakt på samma sätt som traditionell ARP. Enda skillnaden är att den översätter MAC-adresser till IP-adresser i stället för IP-adresser till MAC-adresser.
IARP är särskilt användbart för ständigt ändrade IP-adresser (återigen tack vare DHCP). Här kan en host känna till MAC-adressen för en annan host eller router vars IP-adress sedan dess har ändrats. Med MAC-adressen i handen så är IARP nödvändigt för att hosten ska kunna få den nya IP-adressen och skicka sitt meddelande.
Vad är ARP-spoofing?
ARP Spoofing, även känt som ARP Poisoning, innebär att hackers skickar falska ARP-meddelanden till ett målnätverk i ett försök att koppla ihop sin egen MAC-adress med en legitim IP-adress i nätverket.
Om det lyckas så skickas meddelanden som är avsedda för datorn med den legitima IP-adressen i stället till hackaren. Som ett resultat så kan hackaren inleda flera andra typer av cyberattacker, exempelvis:
Man-in-the-Middle (MTM)
Ett MTM-angrepp (man-in-the-middle) innebär att en hacker ”tjuvlyssnar” på nätverkstrafiken och kan på så sätt snappa upp värdefulla uppgifter som lösenord, bankinformation osv. När det gäller ARP-spoofing-attacker så använder hackare falska ARP-meddelanden för att omdirigera nätverkstrafik genom sina datorer. Den skickas ofta vidare till den avsedda mottagaren för att få det att se ut som om ingenting har hänt.
Kapning av sessioner
Sessionskapning innebär att en hacker stjäl och tar över en användares sessions-ID Det är en särskild typ av data som ger användaren rätt att utföra vissa åtgärder på webbplatser. Sessions-ID: n distribueras ofta av webbplatser i form av cookies och gör det möjligt för användare att förbli inloggade eller få tillgång till sparade kundvagnar.
Genom att omdirigera trafiken genom ARP-spoofing så kan hackers lätt få tillgång till sessions-ID: n och utge sig för att vara användaren. Som ett resultat så kan de göra allt som användaren är auktoriserad att göra, exempelvis få tillgång till inloggade bankkonton.
Denial of Service (DoS)
En DoS-attack (Denial of Service) eller DDoS-attack (Distributed Denial of Service) kan ta sig två olika former: en hacker blockerar meddelanden till en host eller en hacker överöser en host med för många meddelanden. Det sistnämnda fallet är vanligare.
I båda fallen så är det dock ARP-spoofing som gör det möjligt för hackers att antingen blockera eller överföra meddelanden i stor skala. Genom att avlyssna vanlig nätverkstrafik så kan denna hacker blockera meddelanden till sina avsedda mottagare eller omdirigera dem till en enda måltavla.
Sammanfattning
Här har vi gett ett djupgående svar på frågan ”Vad är ARP?” – ett av de vanligaste och mest användbara protokollen i datornätverk. Tack vare ARP så kan datorer och nätverksenheter associera fysiska MAC-adresser med ständigt föränderliga IP-adresser. Som ett resultat så möjliggörs den enkla kommunikation som vi åtnjuter idag.
Men även den mest välmenande ARP kan leda till säkerhetsbrister och cyberattacker. Med säkerhetsfunktioner som DDoS-skydd så kan Kinsta’s hanterade WordPress-hosting hjälpa till att skydda mot många cyberattacker som är kopplade till ARP-spoofing.