Che cos’è Address Resolution Protocol (ARP)?
Address Resolution Protocol (ARP) è una procedura per mappare un indirizzo IP dinamico a un indirizzo fisico permanente in una rete locale (LAN). L’indirizzo fisico della macchina è anche noto come indirizzo MAC (Media Access Control).
Il lavoro di ARP è essenzialmente quello di tradurre indirizzi a 32 bit in indirizzi a 48 bit e viceversa. Questo è necessario perché gli indirizzi IP nella versione IP 4 (IPv4) sono 32 bit, ma gli indirizzi MAC sono 48 bit.
ARP lavora tra i livelli 2 e 3 del modello di interconnessione dei sistemi aperti (modello Open). L’indirizzo MAC esiste sul livello 2 del modello O, il livello di collegamento dati. L’indirizzo IP esiste sul livello 3, il livello di rete.
ARP può essere utilizzato anche per IP su altre tecnologie LAN, come token ring, fiber Distributed Data Interface (FDDI) e IP su ATM.
Come funziona ARP
Quando un nuovo computer entra in una LAN, viene assegnato un indirizzo IP univoco da utilizzare per l’identificazione e la comunicazione. Quando un pacchetto in arrivo destinato a una macchina host su una particolare LAN arriva a un gateway, il gateway chiede al programma ARP di trovare un indirizzo MAC che corrisponda all’indirizzo IP. Una tabella denominata ARP cache mantiene un record di ogni indirizzo IP e il relativo indirizzo MAC corrispondente.
Tutti i sistemi operativi in una rete Ethernet IPv4 mantengono una cache ARP. Ogni volta che un host richiede un indirizzo MAC per inviare un pacchetto a un altro host nella LAN, controlla la sua cache ARP per vedere se esiste già la traduzione dell’indirizzo IP in MAC. Se lo fa, una nuova richiesta ARP non è necessaria. Se la traduzione non esiste già, viene inviata la richiesta di indirizzi di rete e viene eseguita ARP.
ARP trasmette un pacchetto di richiesta a tutte le macchine sulla LAN e chiede se una qualsiasi delle macchine sta usando quel particolare indirizzo IP. Quando una macchina riconosce l’indirizzo IP come proprio, invia una risposta in modo che ARP possa aggiornare la cache per riferimenti futuri e procedere con la comunicazione.
Le macchine host che non conoscono il proprio indirizzo IP possono utilizzare il protocollo ARP inverso (RARP) per la scoperta.
La dimensione della cache ARP è limitata e viene periodicamente ripulita da tutte le voci per liberare spazio. Gli indirizzi tendono a rimanere nella cache solo per pochi minuti. Gli aggiornamenti frequenti consentono ad altri dispositivi della rete di vedere quando un host fisico cambia gli indirizzi IP richiesti. Nel processo di pulizia, le voci non utilizzate vengono eliminate insieme a qualsiasi tentativo non riuscito di comunicare con i computer che non sono attualmente accesi.
Proxy ARP
Proxy ARP consente a un proxy di rete di rispondere a query ARP per indirizzi IP esterni alla rete. Ciò consente di trasferire correttamente i pacchetti da una sottorete a un’altra.
Quando viene trasmesso un pacchetto di richiesta ARP, viene esaminata la tabella di routing per trovare quale dispositivo sulla LAN può raggiungere la destinazione più velocemente. Questo dispositivo, che spesso è un router, funge da gateway per l’inoltro dei pacchetti al di fuori della rete verso le destinazioni previste.
ARP spoofing e ARP cache poisoning
Le LAN che utilizzano ARP sono vulnerabili allo spoofing ARP, chiamato anche ARP poison routing o ARP cache poisoning.
ARP spoofing è un attacco dispositivo in cui un hacker trasmette falsi messaggi ARP su una LAN al fine di collegare l’indirizzo MAC di un utente malintenzionato con l’indirizzo IP di un computer o server legittimo all’interno della rete. Una volta che un collegamento è stato stabilito, il computer di destinazione può inviare fotogrammi destinati per la destinazione originale al computer dell’hacker prima così come tutti i dati destinati per l’indirizzo IP legittimo.
Lo spoofing ARP può compromettere seriamente le imprese. Se utilizzati nella loro forma più semplice, gli attacchi di spoofing ARP possono rubare informazioni sensibili. Tuttavia, gli attacchi possono anche facilitare attacchi di altro tipo, tra cui i seguenti:
- man-in-the-middle attacchi
- denial-of-service (ddos)
- il dirottamento di sessione
Storia e futuro di ARP
ARP è stato prima proposto e discusso nella Request for Comments (RFC) 826, pubblicato nel novembre del 1982, David C. Plummer. Il problema della risoluzione degli indirizzi era immediatamente evidente nei primi giorni della suite IP, perché Ethernet divenne rapidamente la tecnologia LAN preferita, ma i cavi Ethernet richiedevano indirizzi a 48 bit.
Gli indirizzi IPv6, che sono 128 bit, utilizzano il Neighbor Discovery protocol acquisisci informazioni di configurazione invece di ARP. Mentre gli indirizzi IPv4 sono attualmente più comuni, l’uso di IPv6 è in aumento. Questo aumento è in gran parte dovuto all’afflusso di dispositivi IoT che richiedono indirizzi IP. Neighbor Discovery opera nel livello 2 del modello O e utilizza Internet Control Message Protocol (ICMP) versione 6 per scoprire i nodi vicini.