Il vostro computer ha due indirizzi su Internet: un indirizzo fisico permanente o indirizzo Media Access Control (MAC) e un indirizzo logico Internet Protocol o IP. Ma dato che molti computer cambiano continuamente indirizzo IP, come possono le reti associare vari IP a un unico indirizzo MAC?

Ecco che entra in gioco l’ARP, formalmente noto come Address Resolution Protocol.

Il compito di ARP è quello di tradurre l’indirizzo MAC di un computer con l’indirizzo IP: una funzione piuttosto utile per qualsiasi rete. Nonostante la sua utilità, però, ARP può anche presentare diversi rischi per la sicurezza, tra cui quello di intercettare dati potenzialmente sensibili.

Ma come funziona?

In questo articolo definiremo l’ARP, lo confronteremo con altri protocolli di rete simili, esploreremo i suoi vari tipi e casi d’uso e i rischi legati al suo utilizzo nella vostra rete. Continuate a leggere per saperne di più su questo comune – e talvolta rischioso – protocollo di rete.

Cos’è l’ARP?

L’Address Resolution Protocol o ARP è un modo comune per le reti di tradurre (o risolvere) l’indirizzo IP di un computer con l’indirizzo fisico della macchina.

Poiché questi due indirizzi differiscono per lunghezza e formato, l’ARP è essenziale per consentire ai computer e agli altri dispositivi di comunicare in rete. Per capire davvero perché è importante, però, facciamo un rapido ripasso su questi due tipi di indirizzo e su come si relazionano ai nostri modelli di rete quotidiani.

L'ARP collega gli indirizzi MAC e IP di un computer
L’ARP collega gli indirizzi MAC e IP di un computer

Indirizzi IP e MAC

Il vostro computer, smartphone e altri dispositivi connessi hanno due indirizzi su Internet: un indirizzo IP e un indirizzo MAC.

Ma perché avere due indirizzi separati per un dispositivo?

Immaginate per un attimo che il vostro computer sia una casa mobile. Quando la casa mobile esce dalla linea di produzione, potrebbe avere un numero di serie (o qualche altro identificativo unico) che la distingue da tutte le altre case mobili. In altre parole, la casa mobile può essere identificata dal suo numero di serie.

Le case mobili hanno numeri di serie unici
Le case mobili hanno numeri di serie unici

Supponiamo che parcheggiate la casa mobile nel vostro quartiere. A seconda del lotto in cui l’avete parcheggiata, alla casa mobile verrà assegnato un indirizzo – diciamo “27 Kinsta Lane”. Se la vostra casa mobile viene parcheggiata nello stesso lotto, il suo indirizzo rimarrà 27 Kinsta Lane. Tuttavia, potreste facilmente spostarla lungo la strada e darle un nuovo indirizzo, ad esempio “93 Kinsta Lane”.

Si noti che parcheggiare la casa mobile le conferisce due forme di identificazione: il numero di serie e l’indirizzo stradale. In questo caso, l’indirizzo stradale indica a tutti dove si trova la casa mobile rispetto al resto del mondo, mentre il numero di serie la distingue dalle altre case mobili che potrebbero trovarsi nello stesso lotto.

Gli indirizzi IP e MAC del vostro computer servono esattamente allo stesso scopo, solo che il quartiere del nostro esempio è ora una rete locale.

In questo caso, l’indirizzo MAC del vostro computer è il suo unico identificativo fisico in una rete, proprio come il numero di serie della vostra casa mobile era il suo unico identificativo fisico. Per questo motivo, l’indirizzo MAC è spesso conosciuto come indirizzo fisico o indirizzo hardware. Come il numero di serie, anche l’indirizzo MAC del vostro computer non può essere modificato.

Un indirizzo MAC stampato direttamente sull'hardware
Un indirizzo MAC stampato direttamente sull’hardware (Fonte: LearnTomato)

L’indirizzo IP del vostro computer, invece, è il suo “indirizzo stradale” sulla rete. Quando un computer si connette a una rete, gli viene assegnato un indirizzo IP proprio come a una casa mobile viene assegnato un indirizzo stradale quando la si parcheggia.

Tuttavia, se il computer si disconnette dalla rete, perde l’indirizzo IP, proprio come se una casa mobile venisse rimossa da un parcheggio per dissociarsi dal suo indirizzo stradale. Riconnettersi alla rete equivale a parcheggiare la casa mobile da un’altra parte: in questo caso il computer riceverà un nuovo indirizzo IP, proprio come la casa mobile riceverà un nuovo indirizzo stradale.

Naturalmente, gli indirizzi IP e MAC sono ancora molto diversi dagli indirizzi stradali e dai numeri di serie.

Mentre un postino può consegnare la posta a una casa mobile senza conoscerne il numero di serie, l’equivalente di Internet – il Protocollo Internet o IP – ha bisogno di entrambi gli indirizzi per consegnare la posta o i pacchetti al computer giusto.

Differenze chiave tra indirizzi MAC e IP
Differenze chiave tra indirizzi MAC e IP (Fonte: TechTarget)

In breve, gli indirizzi MAC e IP identificano i dispositivi di una rete in modi diversi. Ecco alcune delle principali differenze tra i due:

  • Indirizzi a livelli diversi. Gli indirizzi MAC e IP operano su livelli diversi del Modello OSI (Open Systems Interconnection), che descrive le varie fasi attraverso le quali i dati vengono inviati tra i computer. Senza entrare troppo nel dettaglio, gli indirizzi MAC operano sul livello Data Link (o livello 2), che traduce direttamente i segnali elettrici inviati su un filo in dati logici. Gli indirizzi IP lavorano un livello più alto, il livello Network (o livello 3), che gestisce l’indirizzamento e l’instradamento in tutta la rete – quasi come scrivere un indirizzo su una busta.
  • Ambito locale e globale. Gli indirizzi MAC sono utilizzati per identificare diversi dispositivi su scala “locale”, come ad esempio diversi computer che condividono una rete in un edificio. Gli indirizzi IP funzionano in modo più globale, controllando il modo in cui i dispositivi in Internet si localizzano e comunicano tra loro.
  • Formati diversi degli indirizzi. Poiché gli indirizzi MAC e IP lavorano su livelli diversi e svolgono funzioni diverse, hanno anche formati diversi. Un indirizzo MAC ha un formato simile a un numero seriale di 12 cifre raggruppate a coppie e separate da trattini o due punti (00:00:00:00:00:00), mentre un tipico indirizzo IPv4 è un indirizzo a 32 bit (bit significa cifra binaria) raggruppato in quattro numeri decimali (000.000.000.0000). Anche se per ora non è necessario conoscere i dettagli, tenete presente che l’associazione di questi due formati di indirizzo è la funzione principale di ARP.
  • Gli indirizzi MAC sono permanenti. Gli indirizzi MAC vengono assegnati dal produttore a un dispositivo non appena viene costruito. Questo indirizzo è essenzialmente “incorporato” nell’hardware di rete del dispositivo, rendendolo permanente e immutabile – proprio come il numero di serie della nostra casa mobile di prima. Gli indirizzi IP sono temporanei e vengono assegnati ogni volta che il dispositivo si connette a una rete. Di conseguenza, i dispositivi possono assumere un numero qualsiasi di indirizzi IP diversi nel corso della loro vita.
  • Fisico e logico. Per estensione di quanto detto sopra, un indirizzo MAC è noto anche come indirizzo fisico o indirizzo hardware, mentre gli indirizzi IP sono talvolta (ma non altrettanto comunemente) noti come indirizzi logici.
  • Assegnati in momenti diversi. Come già detto, gli indirizzi MAC vengono assegnati una sola volta al momento della produzione. Gli indirizzi IP possono essere assegnati in seguito un numero qualsiasi di volte, per tutte le volte che il dispositivo si connette a una rete.

Quindi, dove entra in gioco l’ARP?

Dal momento che ogni computer ha entrambi gli indirizzi, deve esserci un modo per associare l’uno all’altro in modo che i pacchetti vengano consegnati al posto giusto. Questo ci porta alla funzione principale di ARP: collegare l’indirizzo MAC di un dispositivo al suo indirizzo IP in continua evoluzione e viceversa.

Vediamo più da vicino come funziona esattamente.

Come Funziona ARP?

Ora che abbiamo risposto alla domanda “Cos’è ARP?”, cerchiamo di capire come funziona. L’ARP mantiene un elenco aggiornato degli indirizzi MAC e degli indirizzi IP ad essi associati. Questo elenco è solitamente gestito da un gateway o da un router – in sostanza, un qualsiasi switch di rete responsabile della gestione del flusso di dati tra reti e dispositivi.

Per capire meglio, diamo un’occhiata al diagramma qui sotto.

ARP su una rete Ethernet
ARP su una rete Ethernet (Fonte: Fortinet)

In questo caso, il computer “HOST” a sinistra sta cercando di inviare qualcosa al computer a destra con l’indirizzo IP 34.40.21.20. Per inviare dati a questo computer, il computer HOST ha bisogno del suo indirizzo IP e del suo indirizzo MAC.

Fortunatamente, il computer HOST ha già l’indirizzo IP del computer. Ora ha solo bisogno dell’indirizzo MAC del computer, ed è qui che entra in gioco ARP.

I dispositivi connessi alla rete e gli switch (in questo caso, un router) mantengono un elenco di traduzioni di indirizzi IP-MAC noti nei loro sistemi operativi. Questo elenco è noto come cache ARP o tabella ARP, che richiede aggiornamenti costanti per tenere il passo con gli indirizzi IP in continua evoluzione.

Quando un computer vuole inviare qualcosa a un indirizzo IP specifico, per prima cosa controlla la sua cache ARP per vedere se esiste un indirizzo MAC corrispondente. In caso contrario, invia pacchetti di richiesta per l’indirizzo MAC.

Illustriamo questo processo utilizzando i due computer nel diagramma:

  1. Il computer HOST controlla la sua cache ARP per vedere se conosce già l’indirizzo MAC 34.40.21.20. In caso affermativo, ha tutto ciò che gli serve e invia il messaggio.
  2. Il computer HOST invia una richiesta per l’indirizzo MAC di 34.40.21.20.
  3. Il router riceve la richiesta di indirizzi di rete dal computer HOST e utilizza ARP per cercare di individuare l’indirizzo MAC.
  4. ARP cercherà di fare riferimento alla cache ARP esistente del router e, se l’indirizzo MAC non viene trovato, invierà una richiesta a 34.40.21.20.
  5. 34.40.21.20 invia il proprio indirizzo MAC (A5:22:98:5C:24:93) al router.
  6. Il router aggiorna la sua cache ARP e rimanda l’indirizzo MAC di 34.40.21.20 al computer HOST, completando la richiesta.
  7. Il computer HOST invia qualcosa a 34.40.21.20.

Anche se questo è solo un esempio di base, dovrebbe darvi un’idea della funzione principale di ARP.

Un’altra funzione fondamentale di ARP è il mantenimento (e la cancellazione) delle traduzioni IP-MAC nella cache ARP. Mantenere la cache ARP relativamente libera non è solo necessario per ottenere le informazioni più recenti, ma aiuta anche a eliminare gli indirizzi imprecisi o inutilizzati. Come vedremo più avanti, l’eliminazione delle traduzioni è necessaria anche per evitare che gli indirizzi IP finiscano nelle mani sbagliate.

Le voci di una cache ARP possono essere dinamiche o statiche. Le voci dinamiche sono quelle popolate automaticamente nel modo già descritto. Tuttavia, gli utenti possono anche specificare manualmente le voci statiche che vogliono mantenere in modo permanente. Questo è utile per i dispositivi di rete persistenti con indirizzi IP impostati (cioè statici).

ARP vs DHCP vs DNS: Qual è la Differenza?

Se avete anche solo un po’ di dimestichezza con il networking, probabilmente avrete sentito parlare del Dynamic Host Configuration Protocol (DHCP) e/o del Domain Name System (DNS). Se è così, vi starete chiedendo anche in che modo l’ARP nel networking si differenzia da questi protocolli simili.

  • DHCP vs ARP: L’ARP esiste soprattutto perché gli indirizzi IP vengono sempre cambiati e riassegnati in una rete. Il DHCP è responsabile di questo cambiamento costante, essendo il protocollo che configura un indirizzo IP dinamico per gli host – da qui il nome di protocollo di configurazione dinamica degli host. Il DHCP aiuta anche a evitare conflitti come l’assegnazione dello stesso indirizzo IP a più computer.
  • DNS vs ARP: Mentre l’ARP associa indirizzi IP e MAC, il DNS associa indirizzi IP e nomi di dominio (come “kinsta.com”). Tutti i siti web si affidano al web hosting per ospitare le loro pagine web, le immagini e tutto ciò che le compone. Come qualsiasi altro dispositivo di rete, i server di web hosting hanno un indirizzo IP. Grazie al DNS, però, non è necessario digitare l’indirizzo IP di un host per accedere a un sito web. Basta digitare un URL come “www.example.com” e il server DNS recupera l’indirizzo IP corrispondente in modo che il tuo browser web possa richiedere e servire le pagine web dell’host.
Il DNS collega un nome di dominio a un indirizzo IP
Il DNS collega un nome di dominio a un indirizzo IP (Fonte: GeeksforGeeks)

Usi e Tipi di ARP

Anche se l’ARP può sembrare un processo grande e monolitico, può essere implementato in molti modi diversi.

I quattro principali tipi di ARP
I quattro principali tipi di ARP (Fonte: IPXO)

Esistono quattro tipi diversi di ARP: ARP proxy, ARP gratuito, reverse ARP (RARP) e inverse ARP (IARP). Ogni tipo presenta casi d’uso diversi e, in alcuni casi, vantaggi e svantaggi distinti.

Cos’è il Proxy ARP?

Un ARP proxy è il caso in cui uno switch configurato per ARP (ad esempio un router) gestisce le richieste ARP (cioè le richieste di indirizzi MAC) provenienti da dispositivi/host al di fuori della propria rete. Lo switch invia il proprio indirizzo MAC in risposta, fungendo di fatto da “rappresentante” di ogni host della sua rete.

Router come proxy ARP per le richieste attraverso le reti
Router come proxy ARP per le richieste attraverso le reti (Fonte: Practical Networking)

Per chiarire, diamo un’occhiata più da vicino al diagramma qui sopra. In questo caso, il router verde al centro serve due reti locali separate: 10.0.0.0/24 e 10.0.4.0/24.

Supponiamo che l’host B voglia inviare un messaggio all’host D. Sebbene questo non sarebbe un problema se l’host D si trovasse sulla stessa rete locale (come l’host A), purtroppo si trova su una rete diversa. Di conseguenza, l’Host B si trova in una situazione difficile: come può ottenere l’indirizzo MAC dell’Host D?

Fortunatamente, il router viene in soccorso. Quando l’Host B invia un messaggio di richiesta ARP al router, quest’ultimo interviene e fornisce il proprio indirizzo MAC in risposta. Con l’indirizzo MAC del router in mano, l’Host B invia il suo messaggio al router, che ora agisce letteralmente come “proxy” per l’Host B. Il router invia quindi il messaggio dell’Host B all’Host D, il destinatario previsto.

Come si può immaginare, l’ARP proxy è estremamente comune nelle reti di computer, con utilizzi tipici come le connessioni VPN e i firewall.

Tuttavia, il proxy ARP presenta alcuni svantaggi, la maggior parte dei quali deriva da configurazioni non corrette. Uno di questi svantaggi è l’aumento del rischio di inviare messaggi nel posto sbagliato, in quanto i dispositivi al di fuori della rete potrebbero non essere a conoscenza di configurazioni improprie quando hanno a che fare solo con un ARP proxy. Gli ARP proxy possono anche servire come vettori per attacchi DoS (denial of service), che analizzeremo più avanti.

Cos’è l’ARP Gratuito?

Un ARP gratuito è una risposta ARP che non è stata richiesta in precedenza. In altre parole, l’ARP gratuito è libero nell’invio delle risposte ARP, trasmettendo di fatto la sua traduzione IP-MAC a tutti gli host/dispositivi della rete. È quasi come se qualcuno inviasse una “e-mail di massa” per far sapere a tutti che ha aggiornato le proprie informazioni di contatto.

Un host che notifica alla rete un indirizzo MAC aggiornato con un ARP gratuito
Un host che notifica alla rete un indirizzo MAC aggiornato con un ARP gratuito (Fonte: IPCisco.com)

L’ARP gratuito ha diverse applicazioni utili. Ad esempio, è essenziale per aggiornare le cache e le mappature ARP, soprattutto quando un nuovo dispositivo o nodo si unisce alla rete. Nel caso di un nuovo dispositivo, l’ARP gratuito evita di inviare e rispondere a singole richieste ARP a tutti gli altri dispositivi della rete locale.

Garantire la ridondanza è un altro importante utilizzo di ARP gratuito. Ad esempio, alcune reti ridondanti potrebbero utilizzare due o più router con lo stesso indirizzo IP. Quando uno di questi router si guasta, il router “superstite” invia un ARP gratuito per informare la rete su dove inviare i messaggi.

Cos’è il reverse ARP (RARP)?

Il reverse ARP, o ARP inverso, (RARP) fa esattamente ciò che suggerisce il suo nome. Invia un indirizzo IP invece di un indirizzo MAC.

Host che invia una richiesta RARP per conoscere il proprio indirizzo IP
Host che invia una richiesta RARP per conoscere il proprio indirizzo IP (Fonte: NetworkLessons)

Ma perché farlo? Gli indirizzi IP non sono già noti agli host della rete?

Non sempre. Per quanto possa sembrare improbabile, alcuni host non conoscono nemmeno il proprio indirizzo IP. Questo è spesso il risultato di un host che non ha la memoria o lo spazio per memorizzare le informazioni IP, rendendo necessaria una richiesta RARP per comunicare. Ricordate: solo gli indirizzi MAC sono assegnati in modo permanente e, di conseguenza, gli host potrebbero non conoscere altro che il loro indirizzo MAC!

Cos’è l’inverse ARP (IARP o InARP)?

Come RARP, anche l’inverse ARP, o ARP opposto, (abbreviato in IARP o InARP) invia indirizzi IP invece di indirizzi MAC. Tuttavia, a differenza di RARP, l’inverse ARP funziona esattamente come l’ARP tradizionale, solo che traduce gli indirizzi MAC in indirizzi IP anziché gli indirizzi IP in indirizzi MAC.

IARP è particolarmente utile per gli indirizzi IP in continua evoluzione (grazie ancora al DHCP). In questo caso, un host potrebbe conoscere l’indirizzo MAC di un altro host o router il cui indirizzo IP è cambiato nel frattempo. Avendo a disposizione solo l’indirizzo MAC, IARP è necessario per l’host per ottenere il nuovo indirizzo IP e inviare il messaggio.

Cos’è l’ARP Spoofing?

Conosciuto anche come ARP Poisoning, l’ARP Spoofing consiste nell’invio da parte degli hacker di falsi messaggi ARP a una rete target nel tentativo di collegare il proprio indirizzo MAC a un indirizzo IP legittimo della rete.

Come un hacker esegue l'ARP spoofing per intercettare il traffico di rete
Come un hacker esegue l’ARP spoofing per intercettare il traffico di rete (Fonte: OKTA)

In caso di successo, i messaggi destinati al computer con l’indirizzo IP legittimo vengono inviati all’hacker. In questo modo l’hacker può lanciare diversi altri tipi di attacchi informatici, tra cui:

Man-in-the-Middle (MTM)

Un attacco man-in-the-middle (MTM) consiste nel fatto che un hacker “origlia” il traffico di rete, intercettando potenzialmente dati preziosi come password, informazioni bancarie, ecc. Nel caso degli attacchi ARP spoofing, gli hacker utilizzano messaggi ARP fraudolenti per reindirizzare il traffico di rete attraverso i loro computer, spesso facendolo passare al destinatario previsto per far credere che non sia successo nulla.

Dirottamento di Sessione

Il dirottamento di sessione consiste nel fatto che un hacker ruba e assume l’ID di sessione di un utente, un tipo speciale di dati che autorizza gli utenti a eseguire determinate azioni sui siti web. Spesso distribuiti dai siti web sotto forma di cookie, gli ID di sessione consentono agli utenti di rimanere connessi o di accedere ai carrelli salvati.

Reindirizzando il traffico attraverso lo spoofing ARP, gli hacker possono facilmente accedere agli ID di sessione e impersonare l’utente. Ciò significa che saranno in grado di fare tutto ciò che l’utente è autorizzato a fare, come ad esempio accedere ai conti bancari registrati.

Negazione del Servizio (DoS)

Un attacco denial of service (DoS) o distributed denial of service (DDoS) può assumere due forme: un hacker che blocca i messaggi a un host o un hacker che sovraccarica un host con troppi messaggi. Quest’ultima è la forma più frequente.

In entrambi i casi, tuttavia, l’ARP spoofing consente agli hacker di bloccare o trasmettere messaggi in massa. Intercettando il normale traffico di rete, l’hacker può bloccare i messaggi ai destinatari previsti o reindirizzarli verso un unico obiettivo.

Riepilogo

Abbiamo fornito una risposta approfondita alla domanda “Cos’è l’ARP?”: uno dei protocolli più comuni e utili nelle reti informatiche. Grazie ad ARP, i computer e i dispositivi di rete possono associare gli indirizzi MAC fisici con gli indirizzi IP in continua evoluzione, consentendo la facile comunicazione di cui godiamo oggi.

Tuttavia, anche l’ARP con le migliori intenzioni può portare a vulnerabilità di sicurezza e attacchi informatici. Grazie a funzioni di sicurezza come la protezione DDoS, l’hosting WordPress gestito di Kinsta può aumentare la protezione da molti cyberattacchi legati all’ARP spoofing.