La sicurezza in rete è un aspetto cruciale per le le aziende, tenute a garantire la riservatezza dei propri dati e a tutelarsi dai danni d’immagine provocati da un attacco andato a buon fine. Gli utenti privati, al contrario, non sono minacciati da pericoli tali da giustificare l’installazione massiccia di strumenti difensivi, che occupano risorse di sistema e spesso (specie gli antivirus) gravano pesantemente sulle prestazioni.
Le strategie difensive vanno studiate in ragione dei rischi reali. IP spoofing è una tecnica utili a nascondere il proprio indirizzo IP.
CENNI SULL’IP SPOOFING
Due host A e B che vogliano comunicare mediante il protocollo TCP devono preventivamente stabilire una connessione a tre vie (three ways handshake): A invia a B un pacchetto con flag SYN (synchronization flag) inizializzato con un valore casuale x. B replica impostando SYN con un altro valore casuale y ed ACK (acknowledgement flag) pari a x+1. A conclude la negoziazione inviando un pacchetto con flag ACK=Y+1.
Modificando il campo “Source IP address” dei pacchetti IP è possibile fingersi altri, con la limitazione di non poter ricevere le risposte, indirizzate al mittente fittizio che si sta impersonando. Tuttavia ci sono buone possibilità d’intercettarle se si utilizza un protocollo standard di livello d’applicazione (come SMTP, NNTP etc.) e si assume che non si verifichino errori di trasmissione.
Il problema più arduo sorge durante l’handshaking: individuare il valore del flag SYN selezionato dall’altro capo della connessione. In passato risalire a tale valore era piuttosto semplice, in quanto gli algoritmi impiegati generavano numeri pseudocasuali usando “semi” potenzialmente noti al pirata (ora di sistema, un contatore incrementato ogni intervallo di tempo costante). Attualmente il bug è stato corretto ed è assai improbabile trovare host ancora vulnerabili. Vista la difficoltà d’implementazione – che richiede un’intima conoscenza di TCP, IP e dello sviluppo con raw socket – e le svariate implicazioni illegali, non ci dilungheremo oltre.
L’attuale versione del protocollo IP (IPv4) non contempla meccanismi di sicurezza. Al contrario, IPv6 prevede le intestazioni “Authentication” e “Encapsulating Security Payload”, utili a garantire l’integrità dei dati, l’autenticazione dell’origine e la non duplicazionedei pacchetti. L’insieme di accordi fra i due host sugli algoritmi crittografici da impiegare, chiavi e relativi periodi di validità costituisce la SA (Security Association). Ciascun pacchetto reca un SPI (Security Parameter Index), un indice delle opzioni di sicurezza desiderate. Per maggiori informazioni riguardo alla sicurezza in IPv6 si consultino le RFC 2401 (Security Architecture for the Internet Protocol), 2402 (IP Authentication Header), 2406 (IP Encapsulating Security Protocol).