Address Resolution Protocol
Da Wikipedia, l'enciclopedia libera.
| Livello applicazioni | HTTP, HTTPS , SMTP, POP3, IMAP, FTP, SFTP, DNS, SSH, IRC, SNMP, SIP, RTSP, Rsync, Telnet, DHCP, HSRP, BitTorrent, RTP, SysLog... |
| Livello di trasporto | TCP, UDP, SCTP, DCCP ... |
| Livello di internetworking | IPv4, IPv6, ICMP, BGP, OSPF, RIP, IGRP, IGMP,IPsec... |
| Livello di collegamento | Ethernet, WiFi, PPP, Token ring, ARP, ATM, FDDI, LLC, SLIP, WiMAX ... |
| Livello fisico | Doppino, Fibra ottica, Cavo coassiale, Codifica Manchester, Codifica 4B/5B, Cavi elettrici, ... |
Il protocollo ARP (Address Resolution Protocol), come specificato da RFC 826, è un protocollo che fornisce la "mappatura" tra l'indirizzo IP a 32bit (4byte) di un calcolatore e il suo MAC address, l'indirizzo fisico a 48bit (6 byte).
Indice[nascondi] |
Scopo del protocollo ARP [modifica]
ARP è un protocollo di servizio, utilizzato in una rete di calcolatori che utilizzi il protocollo di rete IP sopra una rete di livello datalink che supporti il servizio di broadcast. Se questo servizio non è disponibile, come ad esempio in ATM, devono essere utilizzati altri meccanismi.
Per inviare un pacchetto IP ad un calcolatore della stessa sottorete, è necessario incapsularlo in un pacchetto di livello datalink, che dovrà avere come indirizzo destinazione il mac address del calcolatore a cui lo si vuole inviare. ARP viene utilizzato per ottenere questo indirizzo.
Se il pacchetto deve essere inviato ad un calcolatore di un'altra sottorete, ARP viene utilizzato per scoprire il mac address del gateway.
In ogni calcolatore, il protocollo ARP tiene traccia delle risposte ottenute in una apposita cache, per evitare di utilizzare ARP prima di inviare ciascun pacchetto. Le voci della cache ARP vengono cancellate ogni 15 minuti.
Funzionamento [modifica]
L'host che vuole conoscere il mac address di un altro host, di cui conosce l'indirizzo IP, invia in broadcast una richiesta ARP (ARP-request), generata dal protocollo IP, contenente l'indirizzo IP dell'host di destinazione ed il proprio indirizzo MAC.
Tutti i calcolatori della sottorete ricevono la richiesta. In ciascuno di essi il protocollo ARP verifica se viene richiesto il proprio indirizzo IP. L'host di destinazione che riconoscerà il proprio IP nel pacchetto di ARP-request, provvederà ad inviare una risposta (ARP-reply) in unicast all'indirizzo MAC sorgente, contenente il proprio MAC.
In questo modo, ogni host può scoprire l'indirizzo fisico degli altri host sulla stessa sottorete.
Il comando per visualizzare la tabella arp è arp -a.
Per esempio il comando eseguito su Windows restituirà un risultato simile a questo:
C:\>arp -a Interfaccia: 10.10.22.156 --- 0x10004 Indirizzo Internet Indirizzo fisico Tipo 10.10.22.1 00-0d-b4-01-ab-b2 dinamico 10.10.22.155 00-1b-77-24-74-89 dinamico
Bisogna osservare che il protocollo ARP viene usato tutte le volte che un host collegato ad una LAN deve inviare un messaggio ad un host sulla stessa LAN di cui conosce unicamente l'indirizzo di livello rete (IP), quindi lavora solo in subnet locali (non può attraversare router).
Il procedimento inverso viene chiamato RARP.
Sicurezza [modifica]
Il protocollo ARP non prevede meccanismi per autenticare le risposte ricevute, quindi l'host che invia una richiesta "si fida" che la risposta arrivi dal "legittimo" proprietario dell'indirizzo IP richiesto, e identifica quell'indirizzo IP con il mac address che ha ricevuto. Questo crea le premesse per numerose vulnerabilità:
IP Spoofing [modifica]
È molto facile configurare abusivamente un indirizzo IP su un host, purché questo sia collegato alla sottorete giusta, e l'indirizzo sia inutilizzato, oppure il legittimo proprietario sia spento.
Di conseguenza, il fatto che un host risponda ad un certo indirizzo IP non ci autorizza a "fidarci" di quell'host. Significa soltanto che è fisicamente collegato alla rete locale giusta (oppure che anche il routing è stato compromesso).
Nonostante questo, molti utilizzano l'indirizzo IP per autenticare gli utenti e consentire l'accesso a servizi non pubblici.
ARP Spoofing [modifica]
La costruzione ad arte di un pacchetto ARP malizioso è semplice sia su Linux che su Windows, e infatti questa è una tra le maggiori vulnerabilità delle reti locali. Infatti inviando ad un host un ARP REPLY opportunamente contraffatto possiamo modificare la sua cache ARP, ottenendo ad esempio la possibilità di intercettare dati destinati ad altri host. Questa tecnica è detta ARP Spoofing o ARP cache Poisoning (in inglese, avvelenamento della cache ARP).