Sei sulla pagina 1di 180

Security Specialist Courseware

Manuale di sicurezza informatica per la preparazione alla CompTIA Security+ certification

VOLUME SECONDO
Capitolo 5: Monitorare la
rete

Firewall
Lo strumento più diffuso per tenere sotto controllo quello che entra ed
esce nella rete è il firewall.
Un firewall è un dispositivo hardware oppure un sistema software
interposto tra due o più reti con lo scopo di controllare il traffico IP tra le
stesse in quanto in grado di analizzare il contenuto dei pacchetti che
viaggiano tra le reti e decidere se inoltrarli o meno al destinatario;
inoltre, un firewall registra il volume di traffico e le informazioni sui
tentativi di accesso non autorizzato. E’ considerato un sistema di difesa
“perimetrale” perché difende dalle intrusioni non autorizzate provenienti
dall’esterno. Per perimetro si intende “il punto” in cui una rete fidata
(trusted) si connette ad una rete non fidata (untrusted).
L'esigenza di un firewall nasce quando le reti interconnesse hanno livelli
di sicurezza diversi, come nel caso di Internet e della rete locale di
un'azienda. Un firewall permette o impedisce il traffico tra reti in funzione
di una politica di sicurezza, che può essere in parte implicita nei
comportamenti di default e in parte esplicita sotto forma di regole che
descrivono, in generale o in dettaglio, quali flussi di traffico sono
ammessi in base ai nodi e alle reti di origine e destinazione, alle
direzioni di attraversamento, a protocolli e porte utilizzati, allo stato della
connessione, al volume di traffico e ad altri criteri. Le regole sono
raccolte in una lista ordinata, in modo da stabilire una precisa sequenza
di esecuzione. Un firewall svolge generalmente le funzioni di difendere i
4
computer interni (server e client) da attacchi alla rete e d’imporre regole
di utilizzo e di accesso alle reti e ai servizi mantenendo sotto controllo il
traffico e avvisando in caso di tipi di accesso sospetti. Il presupposto per
il corretto utilizzo e l'efficacia di un firewall è che sia l'unico punto di
contatto tra le reti; in caso contrario, il traffico che il firewall è incaricato
di bloccare potrebbe trovare un percorso alternativo.

Un
esempio tipico è una rete aziendale con l'accesso a Internet protetto da
un firewall, ma con singoli utenti che si collegano a Internet via modem
(per aggirare filtri sui contenuti web) o che si collegano da casa al PC
dell'ufficio (via modem), col rischio d'infettare la rete aziendale. Un
firewall è vitale per mitigare una serie di rischi di sicurezza, ma è solo un
elemento dell'architettura generale della scurezza, visto che la sua
azione presenta alcuni limiti:

 non protegge dal traffico autorizzato (bug delle applicazioni, virus


annidati nell'e-mail, connessioni peer-to-peer mimetizzate nel
normale traffico HTTP, ecc.);
 è efficace quanto lo sono le regole con cui è stato configurato;
regole permissive o mal definite (magari perché mal capite)
possono aprire percorsi che dovrebbero restare chiusi;

5
 non protegge dagli attacchi di social engineering (sfruttamento
furbesco dei contatti personali per procurarsi accesso al sistema),
né dall'uso da parte di personale autorizzato ma male intenzionato;
 non pone rimedio a cattive pratiche amministrative o a politiche di
sicurezza mediocri;
 non blocca un attacco che passa per un'altra strada.
Sebbene un firewall sia indispensabile per la protezione della rete
interna da attacchi esterni, in primo luogo da Internet, esso è utile anche
quando si interconnettono sottoreti con diversi gradi o requisiti di
sicurezza, per esempio tra una LAN e una WLAN (Wireless LAN)
interne all'azienda. Un firewall è un sistema che può essere
implementato in molte forme a seconda dei requisiti, delle prestazioni
richieste e dall'ampiezza delle funzioni svolte. Su un singolo PC può
essere installato un firewall software per uso personale, che può essere
anche incluso nel sistema operativo. Per reti di dimensioni piccole e
medie un firewall può essere un'appliance, ossia un dispositivo
hardware autonomo dotato di sistema operativo e di software applicativo
in firmware (registrato in memoria Flash); talvolta, può esserci anche un
hard disk. Per le grandi organizzazioni esistono firewall interamente
software che si appoggiano a sistemi operativi commerciali (come
Windows, Linux e Solaris) o ad appliance con proprio sistema operativo
(per esempio Nokia). Ad eccezione dei firewall software per uso
personale, che possono anche essere presenti in aggiunta ai firewall
centralizzati (al fine d'incorporare ulteriori funzioni di sicurezza), il
firewall che deve proteggere una rete è bene che sia un sistema
dedicato solo al controllo del traffico e alle funzioni riconducibili a tale
funzione. Un firewall è un componente critico per la sicurezza di una
rete: più funzioni svolge, più è soggetto a errori e a vulnerabilità. Non
può essere destinato anche ad altre attività perché l'aggiunta di servizi
(soprattutto di tipo server come Web e posta) aumenta la vulnerabilità
del sistema, e perché non ci possono essere compromessi tra sicurezza
e usabilità. Pertanto, le funzioni di un firewall sono quelle di controllo dei
pacchetti che entrano ed escono, più funzioni opzionali come il
bilanciamento del carico, la gestione di classi di servizio e la ripartizione
del traffico.

6
Personal firewall
I firewall software per uso personale utilizzati sui PC, soprattutto in
ambiente Windows, eseguono su scala locale operazioni che sono
svolte anche dai firewall che proteggono una rete. In primo luogo, questi
firewall impediscono gli accessi illeciti e indesiderati da Internet, inclusa
la scansione delle porte TCP e UDP alla ricerca di vulnerabilità. Quindi,
non solo non sono accettati pacchetti IP non richiesti, ma le porte
diventano invisibili, in modo che l'attaccante non sappia quali sono le
porte dove c'è un servizio in ascolto (che potrebbe essere manipolato
per penetrare nel sistema). Solitamente, i personal firewall gratuiti (e
anche il firewall di Windows XP) si limitano a filtrare i pacchetti in
ingresso, ma non quelli in uscita; se quindi il computer fosse infettato da
qualche software maligno che comunica informazioni all'esterno o
partecipa ad attacchi DOS (Denial of Service) o DDOS (Distributed
DOS), l'utente ne resterebbe all'oscuro, pur conservando piena
responsabilità morale e legale per i danni causati ad altri utenti. I
personal firewall commerciali per poche decine di euro assicurano una
protezione molto più completa, che non si limita a filtrare i pacchetti in
arrivo (ignorando quelli che non giungono in risposta a connessioni
originate dal sistema locale) e a controllare la regolarità dei pacchetti in
uscita, ma riconoscono e sventano varie tipologie di intrusione e
permettono di impostare individualmente i diritti di accesso alla rete
locale e a Internet di ciascuna delle applicazioni eseguite sul computer.
Soprattutto i PC domestici connessi a banda larga, tra i bersagli preferiti
dei cracker, hanno bisogno di una linea di difesa per impedire i vari tipi
di accesso che preludono a un attacco. Il firewall blocca i pacchetti
riconoscibili come illegali. Il malware mimetizzato nel traffico lecito
(come worm e trojan portati dall'e-mail) che supera indenne il firewall
deve essere bloccato dall'antivirus e dall'antispyware, oggi diventato
altrettanto importante dell'antivirus. Normalmente un personal firewall,
dopo l'installazione, configura automaticamente l'accesso a Internet per
le applicazioni installate. In seguito, la prima volta che un nuovo
7
programma cerca di trasmettere su Internet, viene chiesta
l'autorizzazione all'utente. Questo permette di evitare problemi legati a
worm e trojan, anche se non impedisce l'accesso alla rete attraverso
applicazioni autorizzate, come il browser e il client di posta. Inoltre, il
traffico entrante e uscente non autorizzato o sospetto viene registrato in
un log, utile sia per scoprire i tentativi di intrusione, sia per diagnosticare
problemi di accessibilità (una configurazione imperfetta può bloccare il
traffico lecito tra sottoreti interne). Il livello dei messaggi di allarme
presentati all'utente è selezionabile, in modo da evitare falsi allarmi o
frequenti comunicazioni che un end-user non saprebbe come
interpretare.

Tipologie di firewall basate su filtraggio dei


pacchetti
Esistono diverse tecnologie per la realizzazione dei firewall che
differiscono, in primo luogo, per i livelli a cui operano nella pila dei
protocolli di rete. Di seguito vediamo le tecnologie principali, facendo
riferimento al caso di un firewall interposto tra una rete aziendale e
Internet. Le implementazioni di base operano su un numero limitato di
strati (soprattutto lo strato 3 - rete - del modello OSI, dove opera il
protocollo IP); quelle più complete e avanzate controllano un maggior
numero di strati, quindi offrono un controllo più efficace e una maggiore
flessibilità di configurazione. Un firewall che opera agli strati 2 (data link
o collegamento) e 3 (rete) non distingue tra utenti diversi, mentre un
firewall che ispeziona lo strato applicativo può occuparsi
dell'autenticazione degli utenti e inviare segnalazioni a specifici utenti,
oltre a entrare nel merito dei messaggi scambiati.

Filtraggio statico dei pacchetti


I firewall del tipo packet filter (filtro di pacchetti) sono quelli più semplici,
ma anche di modesta efficacia di fronte ad attacchi che sono diventati
sempre più sofisticati. Di base, si tratta di router (strato 3) che includono
8
una funzione di controllo d'accesso governato da una serie di regole
(ruleset) eseguite in sequenza. Meccanismi di questo tipo sono
implementati sulla maggior parte dei router, che costituiscono un primo
elemento di filtraggio.

Regole statiche possono essere scritte anche con strumenti solitamente


disponibili nelle distribuzioni di tipo Unix e, di fatto, molte firewall
appliance utilizzano un kernel Linux ridotto (residente in memoria flash)
e istruzioni iptables del firewall Netfilter di Linux per implementare le
regole che formano la politica di sicurezza (prima del kernel 2.4.x erano
utilizzate le istruzioni ipchains). In Linux le regole sono scritte sotto
forma di catene di comandi iptables suddivise in Input, Output e Forward
(inoltro), corrispondenti al trattamento dei pacchetti in arrivo, in uscita e
in trasferimento. Nelle appliance, la definizione di regole (in aggiunta al
set di base) è facilitata da applicazioni con interfaccia Web, dove l'utente
compila una serie di campi di significato intuitivo senza essere costretto
(pur avendone facoltà) a usare i comandi del sistema operativo.
Consideriamo un esempio di rete protetta da un firewall di tipo packet
filter, e impostiamo un set minimo di regole a scopo illustrativo.
Nell'esempio, la regola 1 permette alla subnet 128.5.6.0/24 (equivalente
a dire che 128.5.6 è il numero di rete e l'ultimo ottetto dell'indirizzo IP è il
numero di host) di accedere al server SSH (Secure Shell), che ha
9
indirizzo 129.1.5.155 e usa la porta 22 TCP. Come è abituale per le
porte di origine della comunicazione, il numero di porta è casuale e
maggiore di 1023, mentre i numeri di porta di destinazione sono quelli di
default dei vari servizi. La regola 2 permette a connessioni originate da
qualunque indirizzo IP e porta superiore a 1023 di accedere al server
HTTP (Web server) 129.1.5.154 sulla porta 80 TCP. La regola 3
permette a connessioni originate da qualunque indirizzo IP e porta
superiore a 1023 di accedere al server SMTP (mail server) 129.1.5.150
sulla porta 25 TCP. Le regole 4 e 5 permettono a connessioni originate
da qualunque indirizzo IP e porta superiore a 1023 di accedere ai due
server DNS (Domain Name Service) 129.1.5.152 e 129.1.5.153 sulla
porta 53 UDP. Dato che le regole vengono eseguite in cascata dall'alto
in basso, se nessuna delle prime cinque regole è stata applicata scatta
la regola 6, che blocca esplicitamente qualunque pacchetto di
qualunque provenienza e destinazione. Tale esempio rappresenta solo
un frammento di ruleset, dove mancano le regole per gli utenti delle
sottoreti interne. Nel controllo di ciascuna regola bisogna verificare che
tutte le relative clausole eseguano l'azione prevista: protocollo/ porta di
origine e protocollo/porta di destinazione. Le regole dovrebbero essere
elencate dalla più specifica alla più generale, per evitare che una regola
generale "calpesti" una regola più specifica, ma in conflitto. Allo stesso
tempo, le regole dovrebbero essere ordinate dall'alto in basso seguendo
la frequenza d'impiego, per non penalizzare le prestazioni; appena una
regola si applica cessa infatti l'elaborazione della catena. Tale
meccanismo di filtraggio del traffico offre alcuni vantaggi: è economico,
non causa un rallentamento significativo di prestazioni ed è efficace per
regolare il traffico. Tuttavia presenta anche numerose limitazioni, tra cui:

 non distingue i pacchetti che sono parte di connessioni in corso da


quelli che hanno solo header IP e TCP/UDP simili; riconoscere se
un pacchetto è parte di una connessione richiede di mantenere
traccia dello stato delle connessioni.
 Lascia molti varchi nel perimetro della rete, non potendo
distinguere se un pacchetto di un protocollo applicativo è valido o
proviene da un intruso che vuole sfruttare alcune vulnerabilità.

10
 Non permette di gestire protocolli che utilizzano porte dinamiche,
eventualmente comunicando tali porte all'interno dei protocolli; un
esempio è FTP (File Transfer Protocol) che, con filtri statici come
quelli descritti, richiede di aprire l'accesso a interi intervalli di porte.
 La scrittura di regole richiede di valutare il modo in cui diversi
protocolli applicativi potrebbero interagire, nel tentativo di
selezionare quelli ammessi.
 Permette connessioni dirette da client esterni a host interni.
 Presenta difficile gestione e scalabilità in ambienti complessi e con
diversi firewall da sincronizzare.
 E' vulnerabile ad attacchi dove l'indirizzo di origine sia spoofed
(contraffatto in modo da corrispondere allo schema interno degli
indirizzi IP), in assenza di regole specifiche per impedirlo.
 Non offre alcuna autenticazione degli utenti.

Stateful inspection
I limiti dei sistemi packet filter derivano dal fatto che un singolo
pacchetto in transito non contiene sufficienti informazioni per
determinare se dovrebbe essere bloccato, dato che esso è parte di una
più ampia comunicazione che prevede lo scambio di vari pacchetti. Tutti
i filtri di pacchetti che implementano qualche forma di stateful inspection
mantengono in memoria lo stato di tutte le comunicazioni che
attraversano il firewall e determinano se bloccare i singoli pacchetti in
base a interi flussi di comunicazione, non semplicemente sulla base dei
singoli pacchetti. Perciò, i firewall del tipo stateful inspection (o stateful
packet inspection, SPI) permettono o bloccano il passaggio di un
pacchetto non solo in base a indirizzi IP e porte, ma anche utilizzando
SYN, ACK, numeri di sequenza e altri dati contenuti nell'header TCP
(strato 4) e informazioni applicative (strato 7). La maggior parte dei
packet filter statici (stateless, senza stato) permette a tutti i pacchetti con
porta di origine superiore a 1023 di passare attraverso il firewall perché
tali porte sono usate per i socket di ritorno (indirizzo più porta) delle
connessioni originate dalla rete interna. Questo è un meccanismo assai
insicuro, perché nulla impedisce a un cavallo di Troia di ascoltare,
11
all'interno della rete, su porte superiori alla 1023; un filtro stateless non
può impedire tale intrusione, bloccata invece da un filtro stateful. La
tecnologia stateful inspection è stata inventata e brevettata all'inizio
degli anni 1990 da Check Point, e si è trasformata in uno standard di
fatto nella realizzazione di firewall di fascia alta. E' anche nota come
dynamic packet filtering, e prevede il monitoraggio dei pacchetti
attraverso un lungo arco di tempo e non solo l'analisi del traffico agli
strati 3 e 4 (trasporto, ovvero TCP/UDP), ma anche un monitoraggio
dello stato delle varie applicazioni attive. Vengono esaminati i pacchetti
sia in entrata sia in uscita, e si accettano solo i pacchetti in entrata che
costituiscono una risposta appropriata a quelli in uscita. Un firewall di
questa classe spende la maggior parte del proprio tempo a esaminare
pacchetti agli strati 3 e 4 per velocità, ma esamina e tiene traccia anche
di alcuni pacchetti vitali originati nello strato applicativo (7), come ad
esempio il pacchetto che avvia una connessione. Se il pacchetto in
questione soddisfa una delle regole impostate lo si lascia passare, e se
ne registra il passaggio in una tabella interna. Da quel momento in poi i
pacchetti di quella particolare connessione corrispondono alla voce
registrata in tabella, e vengono lasciati passare senza eseguire ulteriori
verifiche allo strato 7 (che ridurrebbero le prestazioni). Ci si limita a
controllare che le informazioni di strato 3 e 4 corrispondano a quanto
definito nella tabella. Vediamo un esempio minimo di dialogo tra un
client e un Web server attraverso un firewall SPI, con la presenza di un
hacker che tenta di intromettersi. L'esempio mostra come il firewall
tenga una connection table (tabella delle connessioni) dove registra lo
stato di ciascuna connessione. Nel caso di UDP, che è un protocollo
connectionless (senza connessione, ovvero senza stato, con ogni
pacchetto indipendente dagli altri), i firewall SPI di rango tengono uno
stato virtuale del dialogo. Il client, porta 1220, intende comunicare col
server sulla porta 80 (HTTP); il firewall apre, per la durata della
connessione, la porta 1220 per la risposta che il Web server invierà al
client. Poi apre la connessione in uscita verso il Web server e invia il
pacchetto. Quando il firewall intercetta la risposta del Web server al
client, verifica se la porta 1220 del client (la destinazione) è aperta a
messaggi provenienti dall'indirizzo del server; ciò è vero, e il pacchetto

12
ha via libera verso il client. Ora un intruso cerca di approfittare del varco
aperto (la porta 1220 verso il client) per aggregarsi e inviare un
messaggio al client. Il firewall verifica se la porta 1220 del client è aperta
per l'indirizzo IP dell'hacker; non è così, e il pacchetto viene bloccato.
Quando la connessione viene chiusa, il firewall rimuove dalla connection
table i varchi (le porte aperte) che erano serviti a far passare i messaggi
di risposta a comunicazioni nate all'interno della rete. Nell'esempio,
viene chiusa la porta 1220 e, se l'hacker riprova a mandare un
pacchetto al client fingendo di essere il Web server (indirizzo IP del
mittente spoofed), il firewall, avendo cancellato la connessione appena
completata, non trova nessuna regola applicabile e blocca il pacchetto.
A volte per stateful inspection s'intende anche un esame del traffico a
strato 4, anziché semplicemente allo strato 3 come nei packet filter
statici. Un esempio è costituito dalle reflexive access list di Cisco, così
chiamate perché il loro contenuto cambia dinamicamente come risposta
che riflette lo stato delle singole sessioni in corso. Un altro esempio
viene dal modulo states per iptables. Con tali strumenti, il firewall tiene
traccia delle connessioni aperte e, quindi, riconosce i pacchetti che ne
fanno parte autorizzandone il passaggio. Ne conseguono due vantaggi:
la maggiore precisione nel selezionare il traffico permesso e
nell'apertura di porte, e la semplificazione nella scrittura delle regole, più
leggibili e meno soggette a errori. Tra i firewall SPI sono comuni
funzionalità che permettono di entrare nel merito anche di alcuni
protocolli applicativi particolarmente semplici e comuni, come FTP, in
modo da riconoscere le parti in cui sono gestite le porte variabili, così da
tenerne conto nell'autorizzare le corrispondenti connessioni. riguardano
principalmente la difficoltà di gestire politiche (e quindi regole) che
entrino nel merito di protocolli applicativi, e il fatto che i pacchetti
attraversano comunque il firewall; è quindi possibile che attacchi agli
strati bassi dello stack OSI raggiungano i sistemi interni.

Packet filter con content inspection


Esistono diverse interpretazioni del termine stateful inspection, la cui
definizione non è univoca e ha avuto evoluzioni diverse legate ai
13
produttori e alle loro tecnologie. La macchina virtuale di ispezione dei
pacchetti si colloca tra lo strato 2 e lo strato 3, e abbraccia tutti i
protocolli superiori fino a quello applicativo. In generale, per content
inspection s'intende l'aggiunta di controlli applicativi più sofisticati ai
packet filter dotati di stateful inspection. Il risultato è l'abbinamento
dell'efficienza dei packet filter al grado di controllo permesso dall'esame
dei dati contenuti nei pacchetti applicativi. Questo non significa che le
decisioni sul far passare o meno il traffico siano semplici e perfette,
perché a volte richiedono valutazioni complesse su più pacchetti.
Sarebbe questo il caso se il firewall dovesse bloccare certi tipi di allegati
di posta. Quando i controlli sono sofisticati, i firewall si appoggiano ad
applicazioni complesse che possono essere esterne al prodotto. Un
esempio è la protezione antivirus centralizzata, che può essere
coordinata col firewall e, a volte, eseguita su un server separato
collegato con il firewall da protocolli di connessione. I firewall di ultima
generazione già contenevano l'ispezione dei dati applicativi di alcuni
protocolli comuni, come HTTP, SMTP e FTP. Con l'introduzione di altri
componenti, il firewall protegge la rete da intere classi di attacchi senza
dover contrastare individualmente ogni attacco man mano censito,
come avviene nei sistemi di Intrusion Detection. Tali classi di attacchi
includono DoS, attacchi IP, scansioni della rete e vulnerabilità delle
applicazioni. Queste tecnologie verificano rigorosamente la correttezza
dei dati dell'header e del protocollo, in modo da bloccare pacchetti mal
formati. Per esempio, anziché verificare tutti i possibili attacchi utilizzabili
contro i server DNS, verificano la conformità dei pacchetti agli standard
RFC definiti per tali pacchetti. Questo modo di operare protegge contro
un gran numero di attacchi presenti e futuri indipendentemente dalla
costante rincorsa tra vulnerabilità e contromisure. Neanche il più evoluto
firewall con stateful inspection e content inspection può garantire
protezione totale, perché ci sono attacchi molto difficili da distinguere dai
normali flussi di traffico, e un comportamento troppo restrittivo
porterebbe a bloccare traffico valido delle applicazioni. Per questo è
possibile modificare, anche nei prodotti di fascia media e bassa, il livello
di intervento del firewall, fino a disattivarne del tutto la protezione
quando necessario.

14
Architetture di rete e DMZ
Al di là delle tecnologie utilizzate per esaminare il traffico e determinare
quali pacchetti bloccare o far passare, riveste particolare importanza
l'architettura generale, in termini di topologia della rete e componenti
attivi utilizzati. Consideriamo alcuni principi di progettazione
fondamentali.

 Separazione tra reti con requisiti di sicurezza e criticità diversi: se


reti con grado di affidabilità diverso e criticità diversa non sono
separate, è possibile attaccarne una per poi attaccarne più
facilmente l'altra. Un firewall separa Internet dalla rete aziendale;
altri firewall possono separare la LAN dalla WLAN o le sottoreti
degli utenti dalle sottoreti dei server (web, e-mail, DNS, database,
ecc.).

15
 La ridondanza delle protezioni. Dato che tutti i sistemi sono
soggetti ad anomalie, i componenti critici dovrebbero essere
ridondanti per preservare la disponibilità e la sicurezza dei servizi
a fronte di difetti, guasti, errori di configurazione e altri eventi
dannosi. Nel combinare due o più firewall in un gruppo (firewall
cluster) si può abbinare la ridondanza ad altre funzioni, come il
bilanciamento del carico e il backup della connessione Internet.
 La difesa in profondità. In caso di attacco o di altre minacce per la
sicurezza è consigliabile avere una seconda linea di difesa,
qualora la prima ceda. Un'architettura single tier (a singolo strato)
prevede un solo livello di difesa; e offre basso costo e basso
impegno gestionale. Se il firewall viene compromesso l'intera rete
diventa accessibile, inoltre possono verificarsi colli di bottiglia
16
perché lo stesso strato gestisce tutti i servizi, sia in ingresso che
in uscita. Un'architettura two-tier (a doppio strato) utilizza un
firewall per separare la rete interna dalla rete perimetrale (dove
risiedono, ad esempio, Web server e mail server server),e un altro
firewall per separare la rete aziendale da Internet. La robustezza
migliora ma il progetto è poco flessibile e, nel tempo, può portare
a problemi di scalabilità se i due strati sono mal dimensionati. In
un'architettura multi-tier (multi-strato) c'è un'ulteriore
differenziazione tra aree pubbliche e aree private della rete
aziendale, e ogni area pubblica è dotata del proprio firewall. In tal
modo non c'è propagazione di eventuali cadute di sicurezza, e la
configurazione è diversa per ogni area. I vantaggi sono: maggiore
sicurezza derivante dal maggior numero di zone protette,
configurate ad-hoc; prestazioni e disponibilità, visto che non tutti i
servizi dipendono da un unico punto d'ingresso/uscita;
separazione del traffico in ingresso da quello in uscita, con regole
specifiche che aumentano la sicurezza dei servizi pubblici. Gli
svantaggi sono: complessità, gestibilità e costo.
 Flessibilità. Un firewall deve potersi adattare alle nuove esigenze
della rete: se è perfetto per le necessità correnti ma non può
gestire nuovi servizi senza troppi problemi, diventerà di ostacolo
per le attività legittime. Ciò può portare all'apertura indiscriminata
di varchi per far passare quello che il firewall non gestisce,
all'apertura di nuove connessioni fra le reti e, in generale, alla
perdita di efficacia e affidabilità dello strumento.
 Semplicità. Dato che un firewall è uno strumento critico, è
particolarmente necessario avere adeguate garanzie sul suo
corretto funzionamento, difficili da ottenere se lo strumento è
complesso. Per lo stesso motivo, deve essere facile da
configurare correttamente. Tale requisito abbraccia la
documentazione, l'interfaccia utente e i meccanismi di
aggiornamento (idealmente automatici online sia per le funzioni di
sistema, sia per quelle applicative.
 Controllo. Come è normale per gli strumenti di sicurezza, non
basta installare e configurare un firewall: occorre che esso
produca un report periodico degli eventi significativi, e che tali
eventi siano valutati regolarmente in modo da riconoscere attacchi
in corso, problemi ed errori di configurazione.

17
Una conseguenza di questi principi è il concetto di DMZ (Demilitarized
Zone, zona demilitarizzata). Questo termine di origine militare indica
un'area tampone tra una zona fidata e una non fidata all'interno della
quale non sono consentite le armi. Applicata al networking, una DMZ è
una sottorete alla quale sono connessi sistemi accessibili da reti con
diversi livelli di fiducia e criticità. Un tipico esempio di DMZ è la sottorete
aziendale contenente i server pubblici, che devono essere accessibili
sia da Internet che dalla rete locale interna. Tali server non possono
essere collocati su Internet privi di protezione, né a maggior ragione
possono risiedere nelle rete locale, visto che la loro compromissione
renderebbe accessibili i sistemi interni. Si crea una rete protetta sia da
Internet, sia dalla rete locale.
La DMZ fisicamente è collocata accanto alla LAN ma a livello IP ne è
del tutto separata, quindi la LAN stessa risulta fortemente più sicura in
quanto dall’esterno l’unica rete accessibile è quella DMZ. Per essere
implementata c’è necessità di almeno due indirizzi IP pubblici, dal
momento che uno sarà assegnato al firewall o al router mentre l’altro
potrà essere usato solo per il o i server che si desidera rendere pubblici.

18
Nell'uso corrente, il termine DMZ è interscambiabile con screened
subnet (sottorete schermata); per la precisione, una DMZ è la piccola
sottorete collocata tra il router Internet e l'interfaccia esterna del firewall,
mentre una screened subnet è una rete isolata accessibile solo
attraverso una delle interfacce del firewall, e non connessa
direttamente alla rete interna. Una seconda conseguenza è che un
firewall realizzato con un singolo componente non soddisfa buona parte
dei principi esposti, quindi si presta solo a piccole installazioni con
basso livello di rischio. Quando si utilizzano più componenti che
forniscono una difesa in profondità, bisogna evitare di configurare un
componente in funzione delle difese fornite dall'altro. Supponiamo, ad
esempio, che tra le rete A e la rete B ci sia un firewall suddiviso in due
componenti, e che sia necessario bloccare due servizi: HTTP e SNMP.
Il primo componente blocca SNMP; il secondo blocca http, ma lascia
passare SNMP, nell'ipotesi che sia già bloccato dal primo componente.
In tal caso non si ha una difesa in profondità (a più livelli) né una
ridondanza, perché un fallimento di un componente determina una
violazione della politica di sicurezza alla quale l'altro componente non
pone rimedio. Si ha, inoltre, un'interdipendenza tra le configurazioni dei
due componenti che è più complessa da capire e da realizzare
correttamente (nonché da documentare), situazione che dovrebbe
essere evitata. Le immagini che seguono mostrano esempi di
architetture con alcune considerazioni specifiche. Si tratta di
esemplificazioni a scopo didattico, e ne vengono segnalati i limiti. La
scelta dell'architettura da utilizzare deve essere basata sulle esigenze
dell'azienda e sulla comprensione delle caratteristiche della rete.

19
Firewall basati su proxy
Una tecnologia completamente diversa da quella dei filtri di pacchetti,
con o senza stato, è quella utilizzata dai firewall basati su proxy. Il
concetto di proxy (procuratore) è quello di un server che si frappone fra
un'applicazione client (come un browser) e un reale server (come un
Web server). Al server, il proxy appare come se fosse il client, mentre al
client esso appare come se fosse il vero server. Un firewall basato su
proxy (detto anche application gateway, proxy gateway e proxy server)
richiede un'applicazione specifica per ogni protocollo. Vengono usate
applicazioni che accettano connessioni dai client, esaminano il traffico e
aprono corrispondenti connessioni verso i server. Il meccanismo è
analogo a quello utilizzato dai proxy cache per HTTP, che mantengono
in cache le pagine Web più frequentate per migliorare le prestazioni
della rete. La caratteristica principale è che i pacchetti non attraversano
il firewall: quelli della connessione client-proxy e quelli della
connessione proxy-server sono pacchetti differenti, relativi a diverse
connessioni. Di regola, i firewall basati su proxy non eseguono il routing
tra le diverse interfacce. Un firewall proxy esamina non solo la testata
20
dei pacchetti, come avviene nella stateful inspection di strato 3 e 4, ma
anche il loro "carico utile", cioè il campo dati. E rispetto alla stateful
inspection con verifica applicativa (strato 7), il proxy firewall controlla
tutti i singoli pacchetti e non solo quelli significativi per la tracciatura di
una connessione. In tal modo, il firewall può riconoscere contenuti
dannosi (per esempio codice eseguibile) e modificarli o bloccarli. Per
fare questo, un proxy firewall deve contenere un modulo software
(agente) per ciascun tipo di applicazione da monitorare e filtrare; su
alcuni prodotti il numero di agenti può raggiungere la ventina. La
differenza sta nel fatto che un proxy introduce un elemento additivo che
spezza la continuità del modello client-server, rende più difficile la
configurazione, limita il numero di applicazioni supportate e ha
prestazioni inferiori, seppure con analogo grado di sicurezza.
Nella figura che segue, un esempio di firewall basato su proxy messo a
protezione della rete interna.

Consideriamo più in dettaglio alcune differenze tra proxy e filtraggio dei


pacchetti:

 gli attacchi ai livelli bassi dello stack TCP/IP non possono superare
il firewall, dato che i pacchetti non lo attraversano. In questo modo,
si ottiene una protezione anche contro attacchi non ancora noti.
 Il mantenimento dello stato è gestito implicitamente dallo stack
TCP/IP del firewall.
21
 Automaticamente, vige una politica di blocco di default: il solo
traffico che può attraversare il firewall è quello per cui ci sono
applicazioni proxy attive.
 E' immediato gestire il traffico a livello applicativo, visto che i dati
sono gestiti allo stesso livello dell'applicazione.
 La topologia delle reti connesse, e in particolare gli indirizzi IP,
sono nascosti dall'uso del proxy, che normalmente apre le
connessioni con il proprio indirizzo IP e non con quello del client.
Quando questo fosse uno svantaggio, è possibile utilizzare proxy
trasparenti tra client e server, che non richiedono la
riconfigurazione del client. Si noti che per poter aprire connessioni
con indirizzo diverso da quello dell'interfaccia, il proxy deve
disporre di privilegi adeguati.
 I dati subiscono un trattamento più complesso sul firewall: devono
essere aperte due connessioni invece di una, devono essere
schedulati diversi processi, e i dati devono essere copiati più volte
tra aree di memoria. Ciò significa maggiore carico elaborativi e
maggiore latenza (tempo di attraversamento del firewall).
 Per gestire un protocollo applicativo complesso, con porte
assegnate dinamicamente e contrattate fra client e server
all'interno del protocollo applicativo, è necessario un componente
specifico. Se esso non è disponibile, può essere impossibile far
passare il protocollo attraverso il firewall.
Mentre sono evidenti i vantaggi dal punto di vista della sicurezza, le
ultime due considerazioni hanno limitato notevolmente la diffusione di
questa tecnologia; la preoccupazione per prestazioni insufficienti (a
volte un problema sovrastimato) e il rischio di non poter gestire
un'applicazione necessaria hanno fatto preferire in molti casi tecnologie
meno sicure ma più flessibili.
La tecnologia basata su proxy è a sua volta suddivisa in due categorie:
1. proxy generici, detti anche circuit level gateways: si tratta di proxy
che permettono il transito di traffico TCP/UDP generico, senza
entrare nel merito del protocollo applicativo trasportato. Sono
utilizzabili solo per protocolli semplici allo scopo di non avere il
passaggio diretto dei pacchetti tra le reti, e di poter autenticare le
connessioni. Un caso particolare è, però, l'utilizzo del protocollo
SOCKS, che permette l'interazione di client e server con il firewall,

22
con la possibilità di gestire l'apertura e la chiusura di connessioni,
l'autenticazione e la delega di credenziali.
2. Gli application-level gateways, che utilizzano proxy specifici per i
singoli protocolli applicativi; in tal caso, il protocollo applicativo
viene gestito e i controlli raggiungono la loro piena efficacia. Ci
sono protocolli per cui il meccanismo dei proxy è particolarmente
naturale, come ad esempio HTTP/HTTPS e SMTP, con il suo
store-and-forward (memorizza e inoltra) dei messaggi. Di fatto,
quando avvengono più passaggi tra server diversi per la consegna
dei messaggi (come un server aziendale interno e un mail server
esterno), quello che si realizza è un meccanismo di proxy.
Utilizzare quindi firewall basati su proxy per questi protocolli è
particolarmente facile; nel caso della posta elettronica, un proxy
può servire ad aggiungere diverse funzionalità:
 antivirus centralizzato;
 modifica degli header dei messaggi in transito, cancellando o
uniformando alcune parti, ad esempio verificando che gli
indirizzi di origine siano conformi alle politiche aziendali;
 eliminazione o quarantena degli allegati ritenuti pericolosi;
 politiche di protezione dello spam, per esempio blocco di
messaggi provenienti da siti elencati in black list di spammer.

Uso dei proxy


L'utilizzo di proxy tra una rete aziendale e Internet permette di generare
sul proxy tutte le connessioni verso Internet. Una conseguenza è che la
topologia della rete aziendale, compresi gli indirizzi IP e le
caratteristiche degli apparati attivi, non sono riconoscibili da Internet. Da
un lato ciò è un vantaggio, ma non deve essere sopravvalutato per non
cadere nell'eccesso della security through obscurity, ovvero sicurezza
basata sulla speranza che l'attaccante non capisca con che cosa ha a
che fare, che è una posizione assai debole. Un altro vantaggio è che
dall'esterno non è possibile accedere direttamente ai sistemi interni,
raggiungibili solo attraverso le connessioni che questi aprono verso
Internet o quelle esplicitamente permesse verso i server pubblici. Ciò,
tuttavia, non costituisce un vantaggio da sopravvalutare. I proxy
possono essere utilizzati in due modi fondamentali: per gestire il traffico
23
da Internet verso i server pubblici, e per gestire il traffico dai client verso
Internet.

Reverse proxy
Reverse proxy (proxy inverso) è il termine che indica un proxy utilizzato
per la protezione di un server, tipicamente un Web server
(HTTP/HTTPS) su Internet. Gli usi più comuni dei reverse proxy
riguardano il bilanciamento del carico e la continuità del servizio, che
costituiscono anche un aspetto di disponibilità. Dal punto di vista del
controllo del traffico, oltre ai vantaggi già visti per l'uso dei proxy, l'uso
dei reverse proxy ne presenta alcuni altri: 1. permette di fornire un unico
indirizzo IP a fronte di un insieme di server, anche eterogenei, connessi
a una rete complessa; 2. permette di utilizzare meccanismi centralizzati
per la verifica delle richieste, ad esempio di pattern matching per
riconoscere e bloccare eventuali richieste illegali che potrebbero
causare malfunzionamenti o sovraccarichi; 3. permette d'implementare
SSL (HTTPS) sul proxy, lasciando in chiaro il traffico tra proxy e server,
facilitando il dimensionamento dell'hardware dedicato a tale scopo.
Analogamente, è possibile continuare a usare i controlli del proxy, come
il pattern matching, anche per il traffico SSL, che altrimenti sarebbe
cifrato fino ai server; nello stesso modo, si possono interporre sistemi di
Intrusion Detection tra proxy e server. 4. Permette di centralizzare i
meccanismi di autorizzazione e autenticazione; anche in questo caso,
uno dei vantaggi è permettere di utilizzare architetture eterogenee. L'uso
di reverse proxy è comune in molti siti anche di grandi dimensioni, a
dimostrazione del fatto che si possono ottenere buone prestazioni
anche con questa tecnologia.

Proxy a protezione dei client


Per la protezione di client, i proxy sono utilizzati nel modo tradizionale. Il
controllo particolarmente stretto esercitato sul traffico a basso livello
offre una protezione implicita nei confronti di molti cavalli di Troia e

24
simili, infatti un server maligno in ascolto sul client non è contattabile
attraverso il firewall. Un'eccezione può essere rappresentata dagli
attacchi FTP bounce o simili, peraltro sempre meno frequenti perché è
sempre minore il numero di server FTP che li permettono. Un attacco
FTP bounce (rimbalzo FTP) sfrutta una vulnerabilità del protocollo FTP
per cui un attaccante è in grado di usare il comando PORT per chiedere
accesso alle porte indirettamente, attraverso l'uso del computer della
vittima usato come intermediario nella richiesta. La tecnica può essere
usata per eseguire una scansione delle porte degli host senza farsi
notare, e per accedere a porte specifiche inaccessibili da una
connessione diretta. Nmap è uno scanner di porte che può utilizzare un
attacco FTP bounce per la scansione di altri server. Nella pratica,
l'attacco FTP bounce si sviluppa spesso nel modo seguente: si
trasferisce sul server FTP un file contenente i comandi da eseguire, ci si
collega quindi allo stesso server mediante Telnet e gli si chiede, a
distanza, di collegarsi alla macchina da attaccare e di eseguire i
comandi contenuti nel file che avevamo precedentemente trasmesso. In
pratica, si tratta di inviare al server FTP comandi PORT in cui indirizzo e
la cui porta corrispondono al server che si desidera contattare, anziché
ai propri. Tali comandi, legali dal punto di vista del protocollo, non hanno
ragione di essere accettati e, generalmente, sono rifiutati dai recenti
server FTP. Uno svantaggio dell'impiego di un server proxy client
consiste invece nell'impossibilità di usare comandi come ping e tracert
(traceroute, tracciamento del percorso da origine a destinazione). In
alcuni casi, sul firewall sono realizzate applicazioni accessibili dall'utente
che li emulano.

Uso dei proxy e controlli applicativi


Uno dei vantaggi dei proxy è la relativa facilità con cui si possono
implementare controlli a livello applicativo. Nell'esaminare i controlli che
un proxy può eseguire, e quindi i parametri di selezione del traffico, è
bene distinguere i casi di protezione dei client da quelli di protezione dei
server, che hanno esigenze diverse. D'altra parte, le funzionalità dei
prodotti commerciali sono spesso assai più limitate di quelle
25
potenzialmente consentite dalla tecnologia, quindi occorre accertare ciò
che un prodotto realmente offre. La confusione a questo riguardo può
generare un eccesso di fiducia nella tecnologia e, quindi, comportamenti
pericolosi non riconosciuti come tali, nella falsa convinzione che il
firewall blocchi tutti gli attacchi. Un esempio tipico è l'installazione
indiscriminata di programmi scaricati da Internet, ritenendoli innocui solo
perché passano attraverso il firewall. Inoltre, esigenze aziendali di
gestione o usabilità delle connessioni possono impedire di utilizzare
appieno le funzionalità di protezione offerte dal firewall. Viste le carenze
dei controlli a livello applicativo, alcuni prodotti cominciano a offrire
funzionalità di deep packet inspection, che non si limitino ai controlli
indicati in questa sezione, ma coprono in modo più esteso le esigenze di
verifica dei protocolli applicativi e dei dati trasportati.

Protezione server
Nella maggior parte dei casi, oltre a un generico controllo sulla sintassi
di alcuni protocolli (HTTP, SMTP, FTP) e il blocco di alcuni comandi,
come EXPN e VRFY per SMTP, il massimo disponibile è un pattern
matching sulle richieste, complesso da configurare e con grossi limiti;
configurarlo correttamente, spesso, è come sapere in anticipo quali
sono i problemi potenziali del servizio, il che solitamente non avviene. E'
bene tenere presente i limiti di questa tecnologia, e dei firewall in
generale, quando si tratta di proteggere un server e, particolarmente,
un'applicazione Web-based. Si tratta di applicazioni personalizzate,
spesso scritte ad-hoc per un sito, e il significato dei parametri forniti
nelle richieste dipende molto dall'uso specifico sul sito. Perciò è molto
improbabile che un firewall, commerciale o programmato su misura,
possa entrare nel merito del traffico di tali applicazioni. Al di là della
selezione delle porte, quindi, non ci si deve aspettare troppe protezioni
da un firewall in termini di abusi delle applicazioni: cross site scripting,
buffer overflow, SQL injection sono tutti attacchi comuni nei confronti dei
quali difficilmente i firewall rappresentano una difesa. Le funzionalità di
deep packet inspection, quando presenti, possono aiutare, almeno
quando gli attacchi sono portati con modalità note a prodotti diffusi. Si
tenga conto che il consumo di risorse della deep inspection è di un
26
ordine di grandezza superiore rispetto alla stateful inspection. Inoltre,
occorre accertare che il termine deep inspection non si limiti a uno
slogan marketing ma riguardi, in concreto, un gran numero di protocolli
monitorati e d'intrusioni sventate.

Protezione client
In termini di controlli applicativi, i prodotti commerciali sono
particolarmente focalizzati sui protocolli che nell'insieme corrispondono
alla maggior parte del traffico legittimo generato da una workstation:
HTTP, SMTP e FTP. Per questi, le funzionalità più comuni sono le
seguenti: 1. blocco del contenuto attivo del traffico HTTP: Java,
Javascript, ActiveX. Diversi problemi possono essere associati a questo
tipo di codice, tuttavia bloccarlo può rendere inutilizzabili molti siti Web;
è un caso tipico di compromesso tra sicurezza e funzionalità. 2. Blocco
di siti corrispondenti a black list, ovvero elenchi di siti da bloccare
secondo l'argomento: pornografia, violenza, droghe, armi, hacking, ecc.
Le black list possono essere fornite da appositi servizi commerciali o
dallo stesso produttore del firewall. In questi casi, l'aspetto sicurezza
riguarda principalmente la violazione delle politiche aziendali d'uso della
rete e, in secondo luogo, il rischio di infezioni (soprattutto spyware)
contratte visitando siti di cattiva reputazione. 3. Blocco o quarantena di
messaggi e file contenenti virus (generalmente appoggiandosi ad
antivirus esterni) e di allegati ritenuti pericolosi, come programmi
eseguibili e simili. 4. Selezione mediante pattern matching delle URL
accessibili; ad esempio, se alcuni utenti sono autorizzati ad accedere a
Internet per sole attività di lavoro, possono essere selezionati i siti
necessari per tali attività: i siti con normative oppure gli uffici i cui servizi
sono accessibili via Internet. Inoltre, è utile autenticare gli utenti quando
accedono a Internet, sia per tutelarsi in caso di azioni illegali svolte dalla
propria rete, sia per ridurre la possibilità che strumenti automatici, tra cui
virus e worm, accedano a Internet in modo incontrollato. Le attività di
logging, necessariamente associate ai controlli del firewall, devono
essere conformi alle normative vigenti, ad esempio in materia di privacy.

27
Selezione del traffico con filtri IP
Il filtraggio dei pacchetti IP avviene in base alle caratteristiche
dell'header IP ed, eventualmente, in base alle caratteristiche dell'header
del protocollo trasportato: TCP, UDP o ICMP. I parametri principali sono
quindi: 1. indirizzo IP del destinatario; 2. indirizzo IP del mittente; 3.
protocollo 4. in caso di protocollo TCP o UDP, la porta mittente e/o
quella destinataria; 5. in caso di protocollo ICMP, il tipo e il codice. Altri
parametri importanti utilizzati, non riconducibili alle caratteristiche del
pacchetto, sono fra gli altri l'interfaccia di rete dalla quale il pacchetto
proviene e/o quella a cui è destinato; in questo modo, è possibile
riconoscere il traffico proveniente da Internet da quello proveniente dalla
rete aziendale, applicando politiche diverse. Le regole che si possono
costruire sono semplici e grossolane, ma già in grado di limitare
notevolmente gli attacchi possibili. Ad esempio, se un server aziendale
o una workstation non devono accedere direttamente a Internet,
bloccare sul firewall i pacchetti da o per i relativi indirizzi è una
protezione efficace. In tali casi, ci si può aspettare che le workstation
accedano a un mail server interno, e che l'accesso al Web avvenga
attraverso un proxy cache. Nell'utilizzo degli indirizzi IP come parametro
di selezione è bene valutare quando essi siano affidabili; ad esempio,
un indirizzo IP di origine può essere facilmente falsificato, quindi non è
corretto utilizzarlo come criterio per selezionare il traffico da Internet. Il
firewall valuta le regole nell'ordine in cui sono elencate. La prima regola
che corrisponde al pacchetto esaminato viene applicata, e le regole
successive sono ignorate. Questo meccanismo rende fondamentale
l'ordine in cui sono elencate le regole. Questo rende la scrittura delle
regole complessa e soggetta a errori: Molti prodotti sono in grado di
mantenere informazioni sullo stato della connessione (stateful filtering),
e gestiscono tale traffico con apposite funzionalità. Come regola
generale, è bene che una politica di controllo del traffico permetta
esplicitamente il traffico legittimo e blocchi tutto il resto. Tale approccio,
detto di default deny, è molto più sicuro rispetto a bloccare il traffico
ritenuto pericoloso e permettere il resto (default permit Un ulteriore
controllo che può essere realizzato riguarda la selezione dell'interfaccia
28
dalla quale può provenire un pacchetto, per limitare le possibilità di
spoofing degli indirizzi. Ad esempio, è necessario impedire che da
Internet vengano inviati alla rete locale pacchetti con mittente nella rete
locale, che altrimenti il firewall potrebbe autorizzare. Regole di questo
tipo, che associano indirizzi a interfacce dalle quali sono autorizzati,
sono dette regole di antispoofing. La loro applicazione diffusa per
controllare il traffico in uscita dalla rete locale (egress filtering)
ridurrebbe la praticabilità di molti attacchi, in primo luogo quelli DDoS
(Denial of Service distribuito). In effetti, l'utilizzo da parte dei provider di
filtri statici (poco pesanti) per realizzare l'egress filtering sarebbe,
probabilmente, il meccanismo più efficace per ridurre notevolmente il
successo degli attacchi DDoS. I filtri permettono anche di selezionare
vari tipi di pacchetti ICMP (Internet Control Message Protocol), che può
essere più o meno opportuno lasciar passare attraverso il firewall. Nello
scegliere quali pacchetti consentire o bloccare è opportuno distinguere i
pacchetti di cui si permette l'ingresso o l'uscita dalla rete, nonché quello
che si permette ai server pubblici o agli altri sistemi. Il blocco completo
del traffico ICMP ha un'alta probabilità di causare disservizi anche
difficili da diagnosticare, come avviene per esempio se si bloccano i
pacchetti Fragmentation Needed/ DF set (il datagram dev'essere
frammentato perché troppo lungo, ma il bit DF lo impedisce, quindi il
datagram è scartato). Infine, può essere opportuno bloccare traffico IP
che manifesta diverse caratteristiche potenzialmente pericolose, tra cui i
pacchetti con l'opzione di source routing abilitata (con cui il mittente del
pacchetto specifica il percorso che il pacchetto dovrà seguire attraverso
la rete, anziché lasciarlo decidere ai router) ed i pacchetti frammentati
con frammenti che difficilmente possono corrispondere a situazioni
legittime, per esempio troppo piccoli.

Network Address Translation


La Network Address Translation (NAT, traduzione degli indirizzi di rete)
è un meccanismo che converte indirizzi IP privati della rete locale

29
interna in indirizzi IP pubblici accessibili da Internet. Fu introdotta come
soluzione alla carenza di indirizzi pubblici su Internet, in via di
esaurimento, ma ha avuto anche un beneficio collaterale dato che
nasconde gli host interni alla vista esterna. La RFC 1918 è stata
pubblicata allo scopo di offrire blocchi di indirizzi IP "privati", e stabilisce
gli intervalli liberamente utilizzabili dalle aziende all'interno delle loro reti.
Poiché tali indirizzi non sono visibili da Internet, possono essere replicati
senza conflitti su ogni rete locale (mentre gli indirizzi IP su Internet
devono essere unici). Una volta assegnati indirizzi privati a una rete
locale occorre instradare il traffico tra la rete privata e Internet, creando
una corrispondenza tra gli indirizzi privati e uno o più indirizzi pubblici. A
ciò provvede la Network Address Translation, una funzione incorporata
nei router e firewall che separano la rete interna da quella esterna
(anche Windows, dalla versione 2000 in poi, può fungere da router con
NAT per condividere la connessione a Internet con altri PC della LAN).
Per eseguire la NAT, il firewall mantiene una tabella di socket interni
(indirizzo e porta) associati a socket esterni. Quando un client interno
stabilisce una connessione con un host esterno, il firewall modifica il
socket di origine in uno dei propri socket esterni e crea una nuova voce
nella tabella di traduzione, che riporta il vero socket interno di origine, il
socket di destinazione e il corrispondente socket del firewall. Quando un
host esterno risponde al socket corrispondente all'host interno, il firewall
opera la traduzione inversa. Se non esiste alcuna voce nella tabella di
traduzione per il socket indirizzato, o l'IP del mittente è diverso da quello
che il firewall si aspetta di vedere, il pacchetto viene scartato.

30
Consideriamo, ad esempio, che l'host interno 192.168.1.9 voglia
stabilire una sessione Web con l'host esterno 10.50.23.11 (un Web
server). Usando la prima porta libera, 192.168.1.9:1234 trasmette un
pacchetto TCP a 10.50.23.11:80. Il firewall (indirizzo interno
192.168.1.1, indirizzo esterno 10.0.30.2) riceve il pacchetto e crea la
voce seguente nella sua tabella di traduzione: Origine 192.168.1.9:1234
Host pubblico 10.50.23.11:80 Traduzione 10.0.30.2:15465 dopo di che,
trasmette il pacchetto su Internet usando l'indirizzo IP e numero di porta
tradotto. Pertanto, 10.50.23.11:80 (il server pubblico) riceve un tentativo
di connessione da 10.0.30.2:15465 (indirizzo esterno del firewall).
Quando l'host pubblico risponde, lo fa verso quello che vede come
indirizzo di origine del pacchetto: 10.0.30.2:15465 (indirizzo esterno del
firewall). Dopo aver ricevuto il pacchetto di risposta, il firewall cerca nella
tabella di traduzione un socket corrispondente e lo trova. Quindi, verifica
che l'origine del pacchetto sia la stessa dell'host pubblico registrato nella
tabella di traduzione quando fu creato il record. La presenza di un
record nella tabella conferma che il pacchetto è stato richiesto da un
host interno; se il pacchetto non fosse stato richiesto, non ci sarebbe
alcun record nella translation table corrispondente sia al socket tradotto,
sia al socket dell'host pubblico. Se non viene trovata una voce
corrispondente nella tabella, il pacchetto è scartato e l'evento viene
31
registrato nel log. Il firewall modifica quindi il pacchetto ricevuto
inserendo il socket dell'host interno, e lo passa alla rete interna per la
trasmissione al client originario. La NAT è descritta dalla RFC 1631, ed
è implementata solo allo strato 4 (trasporto). Eventuali dati dannosi
nascosti nei dati (di pertinenza dei protocolli di strato superiore) devono
essere bloccati da servizi a livello applicativo, come proxy o stateful
inspection a tutto campo. Il meccanismo di sostituzione degli indirizzi
sopra descritto non è, di per sé, sufficiente a permettere ogni tipo di
traffico. Alcuni protocolli trasmettono informazioni sull'indirizzo all'interno
del protocollo applicativo. Per consentire questo tipo di traffico, quando
gli indirizzi trasmessi sono relativi a connessioni entranti verso la rete
privata, deve essere modificato anche il contenuto del protocollo
applicativo; questo, tipicamente, si ottiene con l'uso di moduli NAT
specifici. Un caso tipico è FTP: il comando PORT e la risposta al
comando PASV contengono informazioni sull'indirizzo, che devono
essere modificate. Esistono diverse modalità NAT supportate dai
firewall. Quelle principali sono le seguenti: 1. Dynamic NAT (NAT
dinamica, detta anche NAPT - Network Address and Port Translation,
Hide NAT e IP Masquerade): un vasto gruppo di client interni condivide
un singolo indirizzo IP esterno, o un piccolo gruppo di indirizzi IP esterni.
I sistemi interni non sono accessibili dall'esterno, e la mappatura tra
indirizzi interni e globali cambia costantemente. Il massimo numero di
connessioni simultanee è circa 64.000. 2. Static NAT (NAT statica): un
blocco specifico di indirizzi pubblici è tradotto staticamente in un blocco
di indirizzi privati di uguali dimensioni. 3. Load Balancing Translation: un
singolo IP e la relativa porta sono tradotti in un pool di server
ugualmente configurati; un singolo indirizzo Internet può, quindi, essere
servito da parecchi server per bilanciare il carico di lavoro. 4. Network
Redundancy Translation: più connessioni Internet sono collegate a un
unico firewall NAT che le sceglie e le usa in base a larghezza di banda,
congestione e disponibilità. In generale, se vi sono server accessibili
pubblicamente devono avere indirizzo pubblico, o la mappatura tra
indirizzo pubblico e privato deve essere costante. Gli indirizzi dei client
sono mappati dinamicamente sul gruppo di indirizzi pubblici (se
disponibile) o sull'unico IP pubblico. Quando gli indirizzi pubblici sono

32
tutti impegnati in connessioni, sono possibili diverse opzioni: 1. si può
liberare un indirizzo pubblico e riassegnarlo, ad esempio perché
l'indirizzo interno a cui era assegnato non genera traffico da un certo
tempo; 2. non è possibile liberare indirizzi pubblici, quindi nessun altro
sistema sulla rete privata al momento può accedere a Internet; 3. più
sistemi condividono gli stessi indirizzi pubblici, e le connessioni sono
distinte in base alle altre caratteristiche della connessione, come le
porte TCP o UDP mittenti; se queste coincidono, è necessario
rimappare anche le porte. La PAT (Port Address Translation) permette
di mappare l'intero spazio d'indirizzi interni su un unico indirizzo IP
esterno: il firewall tiene traccia, nella translation table, delle connessioni
aperte e dei numeri di porta assegnati. La traduzione dinamica di
indirizzi e porte supporta un massimo teorico di 64K connessioni,
perché il pool di porte per il multiplexing delle connessioni di un client è
largo 16 bit. La maggior parte dei firewall limita questo numero a circa
50.000 connessioni perché molte porte sono riservate. Le impostazioni
di default di IP Masquerade di Linux permettono la traduzione di 4.096
porte, ma il numero è modificabile. In pratica, il numero di porte
disponibili è adeguato, salvo nei casi in cui gli utenti mantengano
centinaia di connessioni attive (il collegamento a un sito Web può
consumare decine di connessioni); la soluzione diventa allora disporre
di più indirizzi IP pubblici.
La Network Address Translation è spesso presentata anche come
meccanismo di sicurezza in virtù di due motivi: 1. mascherando gli
indirizzi IP, sono rese disponibili meno informazioni sulla topologia
interna della rete. A volte, tale protezione si perde quando poi le stesse
informazioni sono divulgate a livello applicativo; tipici esempi sono gli
header di risposta dei server Web o i campi Received: negli header di
posta elettronica. 2. Soprattutto, un pacchetto che non trovi
corrispondenza nella translation table del firewall o router non viene in-
stradato verso la rete privata. Il secondo punto merita di essere
approfondito. Gli indirizzi IP della rete privata non sono gestiti dal routing
di Internet, quindi qualunque pacchetto che abbia come destinatario un
indirizzo privato (come da RFC 1918) viene scartato. I pacchetti inviati
agli indirizzi pubblici del pool di NAT sono ritradotti e instradati dal router
33
o firewall verso la rete privata solo se esistono, nella tabella di
traduzione NAT, record di corrispondenza con indirizzi e porte della rete
privata. Tale corrispondenza, a parte i casi di mappatura statica usati
tipicamente per i server pubblici, viene creata solo in corrispondenza di
accessi a Internet da parte degli indirizzi privati, e solo per un tempo
limitato. Ci sono quindi sistemi e porte che non sono accessibili da
Internet per assenza di routing, e quindi sono protetti. D'altra parte, tale
protezione presenta molti limiti. Per cominciare, non è applicabile ai
server pubblici, mappati staticamente, e ai servizi che devono essere
accessibili pubblicamente. Inoltre, non è applicabile alle connessioni
aperte dai client, dato che in questi casi la mappatura esiste. Sono
invece protetti i sistemi che non accedono a Internet, come i server
interni. In caso di PAT (Port Address Translation), che prevede la
traduzione anche dei numeri di porta, sono protetti anche i servizi attivi
su sistemi che accedono a Internet; un caso tipico è la condivisione
della connessione Internet in Windows. D'altra parte, non mancano i
modi per raggiungere un client dietro NAT/PAT, come dimostrano i
servizi di instant messaging e i servizi peer-to-peer.

Consideriamo i principali canali di attacco ai sistemi di una rete. Spesso


sono i server pubblici o i client attraverso la posta elettronica o le pagine
Web; nessuna di queste connessioni è infatti protetta da NAT/PAT.
Questa è, in effetti, una protezione a livello di indirizzi e, quindi, non è in
34
grado di ridurre le vulnerabilità legate ad esempio ai protocolli
applicativi. Come protezione in sé è quindi, in generale, piuttosto
debole, mentre è un componente utile all'interno di un firewall più
complesso. Un’ulteriore considerazione relativa alla NAT riguarda il fatto
che la protezione è data essenzialmente dall'assenza di record relativi al
routing delle reti private sui router Internet. Questi record sono però
presenti sul sistema che esegue la NAT; pertanto se viene
compromesso un nodo adiacente, ad esempio quello che connette il
router al resto di Internet, su questo nodo è possibile attivare una route
per la rete privata verso il router che esegue la NAT. Quest'ultimo, in
assenza di altre protezioni, instraderà i pacchetti verso la rete privata; di
conseguenza, la compromissione del nodo precedente (rispetto a quello
che esegue la NAT) permette di aggirarne le protezioni. Per evitare
questa possibilità, è necessario bloccare sul router che esegue la NAT
gli eventuali pacchetti provenienti da Internet che abbiano come
destinatario un indirizzo della rete privata.

Uso dei firewall per nascondere la topologia della rete


I moderni router e firewall permettono di utilizzare intervalli di indirizzi IP
privati sulla rete interna tramite la traduzione dinamica tra indirizzi interni
e indirizzi pubblici. La NAT (Network Address Translation) modifica
indirizzi e porte nei pacchetti mantenendo una corrispondenza tra nodi
interni e nodi esterni per la durata della connessione. Questa
corrispondenza, registrata nella translation table, da un lato permette di
usare un solo indirizzo IP pubblico (o un set limitato di indirizzi pubblici)
per un gran numero di indirizzi privati; d'altro lato, ha l'effetto di
nascondere gli indirizzi IP interni (e quindi la topologia della LAN) agli
host esterni. Va notato che per proteggere i client la NAT non fa altro
che impedire agli host esterni di connettersi con gli host interni. Se un
client è indotto a connettersi con un host esterno maligno o sull'host
interno è installato un trojan, il client può essere compromesso come se
il firewall fosse assente. Per questo, la NAT non è una misura sufficiente
per proteggere la rete; il firewall deve essere affiancato da altre

35
contromisure (come antivirus e antispyware) in modo da proteggere la
rete interna da un vasto spettro di minacce.

Intrusion Detection System


I sistemi di rilevamento delle intrusioni, o Intrusion Detection Systems
(IDS), sono sistemi hardware o software che automatizzano il processo
di monitoraggio degli eventi che avvengono in un sistema o in una rete,
analizzandoli alla ricerca d'indicatori riconducibili a problemi di
sicurezza. Un'intrusione è qualunque attività non autorizzata su un
sistema o sulla rete di un individuo o di un'organizzazione. Può
manifestarsi, ad esempio, come l'azione di un utente legittimo per
procurarsi privilegi superiori a quelli che gli sono concessi, il tentativo di
un utente remoto non autorizzato di compromettere un servizio di
sistema per creare un account, l'installazione di codice maligno
trasportato dalla posta elettronica, o in tanti altri modi. Non esiste una
definizione legale d'intrusione che sia univoca e di facile applicazione. I

36
criteri variano da nazione a nazione e non sono uniformi, neppure in
ambito nazionale. Non sempre è chiaro se un'intrusione è illegale (si
pensi alla scansione delle porte, un'attività pressoché costante su
Internet che, in sé, non è un atto ostile, ma può preludere a un tentativo
di attacco). Su un piano concreto, l'intrusion detection è il processo di
monitorare gli eventi che avvengono in un sistema, o in una rete, e di
analizzarli alla ricerca di segni d'intrusione, intesi come tentativi di
compromettere riservatezza, integrità e disponibilità delle informazioni (i
cardini della politica di sicurezza) o di aggirare i meccanismi di sicurezza
di un computer o di una rete. Il termine IDS indica un'ampia classe di
prodotti e tecnologie. La caratteristica che hanno in comune è quella di
rilevare segni d'intrusione, cioè possibili violazioni della politica di
sicurezza. In generale, un IDS si limita a rilevare le intrusioni senza
impedirle; le informazioni raccolte servono per predisporre le
contromisure e ridurre gli effetti delle violazioni. Questa non è,
comunque, una regola assoluta; esistono modalità e strumenti di
risposta attiva (active response), a volte implementati tramite
applicazioni esterne, che permettono a un IDS di attuare una risposta
immediata e automatica all'attacco, così da minimizzarne (o annullarne)
gli effetti dannosi.
Nel 2003 varie campagne di marketing iniziarono a promuovere gli
Intrusion Prevention Systems (IPS) come eredi degli IDS, presentati
come un fallimento perché non impedivano gli attacchi e fornivano troppi
falsi positivi, cioè messaggi d'intrusione che si rivelavano falsi allarmi. A
qualche anno di distanza, dissipato il polverone delle promesse non
mantenute dagli IPS, lo scenario è più chiaro. Gli IDS continuano a
evolversi e hanno consolidato la loro presenza nell'industria.

37
Lo standard di fatto degli IDS, Snort, sviluppato a livello individuale da
Marty Roesch (fondatore della società Sourcefire) nel 2005 è stato
38
acquisito da Check Point. Anche se Snort verrà integrato nei prodotti
Check Point, continuerà comunque a essere sviluppato e distribuito
come software libero sotto GPL (General Public License) per una
comunità di centinaia di migliaia di utenti. Anche gli IPS proseguono
nella loro evoluzione, spesso integrandosi con i firewall, con cui
condividono la funzione di bloccare traffico illegale o sospetto. D'altra
parte, IDS e IPS hanno ruoli e collocazioni diversi. Un IDS non è
intrusivo come un firewall o un IPS, e agisce in primo luogo allo strato di
rete, sebbene ci siano IDS in grado di esaminare anche lo strato
applicativo. Un IPS, per essere efficace, deve invece essere in grado di
far fronte alle complessità dello strato applicativo, senza farsi ingannare
dalle tecniche di evasione. Inoltre, un IPS deve essere tarato con molta
precisione per riconoscere gli attacchi e, insieme, evitare di bloccare
traffico lecito. IDS e IPS sono complementari; anche in presenza di IPS
sulla rete, solo l'utilizzo degli IDS a monte e a valle delle protezioni può
confermare l'efficacia dei blocchi attuati da firewall e IPS. Un IDS è, di
fatto, l'ultima risorsa per rilevare tentativi di attacco passati indenni
attraverso le altre barriere. Oltre a non essere intrusivi, gli IDS hanno il
vantaggio di non introdurre complessità di controllo del traffico difficili da
gestire. E' vero, tuttavia, che nessun IDS è efficace in assenza di una
struttura di supporto competente e tempestiva nell'azione di
monitoraggio e negli interventi correttivi. Solo personale esperto è in
grado di eseguire il tuning (taratura) delle regole di riconoscimento e dei
criteri di segnalazione, in modo da isolare gli eventi significativi e limitare
il numero di segnalazioni, solitamente ingente.

Tipologie di sistemi di IDS


Il tipo di traffico maligno che allerta un IDS dipende dal tipo di IDS e
dalla sua collocazione. Gli IDS sono generalmente classificati in base
alle seguenti categorie:
1. Network-Based Intrusion Detection System(NIDS), cioè IDS basati
su rete
2. Host-Based Intrusion Detection System (HIDS), IDS basati su host

39
3. Distributed Intrusion Detection System (DIDS), IDS distribuiti o
ibridi.
4. Application-Based IDS, può essere considerata un subset di quella
HIDS, e comprende IDS che analizzano gli eventi nell'ambito di
un'applicazione software.

Network-Based IDS
Come suggerisce il nome, i NIDS tengono sotto controllo un intero
segmento di rete (o sottorete). A tale scopo, modificano la modalità
operativa della scheda di rete a cui sono connessi, da non promiscua (il
default) a promiscua. Ciò significa che la scheda passa agli strati di rete
superiori non solo i pacchetti diretti all'indirizzo MAC (Media Access
Control) della scheda, ma tutti i pacchetti che transitano in quel punto
della rete, qualunque sia il destinatario. L'IDS si comporta quindi da
sniffer di tutto il traffico in transito, che viene analizzato con metodi
diversi.

Qualunque sia la terminologia usata dai produttori per promuovere i


propri metodi di analisi, i meccanismi fondamentali usati per riconoscere
segni d'intrusione sono tre: 1. Pattern matching, ovvero il
riconoscimento dei pacchetti a fronte di un database di "firme" che
40
identificano i vari tipi di attacco; nella maggior parte dei casi, gli IDS
supportano anche uno stateful pattern matching, dove i pacchetti sono
esaminati nel contesto della connessione, rendendo così più difficile a
un cracker aggirare la protezione. 2. Analisi dei protocolli: meno
specifica del pattern matching, esamina il pattern (la struttura) del
traffico, anziché il campo dati dei pacchetti. Qui sono verificati gli header
e la loro coerenza con la struttura dei pacchetti. 3. Rilevamento delle
anomalie: suddivisibili in anomalie basate sul comportamento e in
anomalie basate sul protocollo. Il rilevamento delle anomalie si basa
sull'esame del traffico a livello superiore rispetto al pattern matching e
all'analisi dei protocolli. Anziché i singoli pacchetti, si osserva il traffico
nel suo complesso; ci sono vari modi per implementare questa
metodologia. Un esempio è il monitoraggio delle connessioni tra gli host:
se compaiono pacchetti non corrispondenti allo stato della connessione
o vistosamente fuori sequenza, scatta l'allarme. Un altro esempio è un
Web server che inizi ad accettare connessioni su una porta alta (>1023)
anziché la consueta 80, oppure che origini una connessione con un host
su Internet.

Anche picchi di traffico dovuto ad applicazioni peer-to-peer (solitamente


illegali in azienda perché implicano un controllo esterno sui sistemi
interni) possono ricadere in tale categoria. Generalmente, gli IDS sul
mercato utilizzano una combinazione dei tre metodi di analisi sopra
citati. Di solito il motore centrale utilizza un metodo specifico, e si affida
a pre e post-processor per l'implementazione degli altri due metodi.

41
Vediamo un esempio pratico: Snort articola il proprio operato in varie
fasi e componenti. Innanzitutto, utilizza una serie di decoder che
scompongono i pacchetti ai vari strati (data link, IP, TCP). Una volta
completata la scomposizione, invoca alcuni preprocessor che si
occupano, ad esempio, di seguire lo stato della connessione e di
riconoscere eventuali anomalie in tale ambito. Il traffico passa quindi al
detection engine vero e proprio, che verifica circa 2.500 regole generali
di vario tipo. Un'altra classe di componenti, i cosiddetti output plug-in,
permette di configurare i log (che cosa registrare dell'attività svolta) e gli
allarmi. Un NIDS esamina il traffico di rete senza né modificarne il
contenuto, né influenzarne il transito. Ciò permette d'installare i sensori
con facilità; d'altra parte, l'assenza di controllo sul traffico richiede un
accurato dimensionamento e configurazione del sistema e dell'IDS, per
riuscire a eseguire l'analisi su tutti gli strati previsti (stateful inspection,
analisi dei dati applicativi) senza perdere pacchetti. Altrimenti, si può
lasciar passare un attacco e perdere lo stato delle connessioni. A
pesare ulteriormente sul carico del sistema possono contribuire
particolari tecniche di attacco, come la frammentazione dei pacchetti.
Un IDS come Snort, dopo anni di evoluzione e dopo la riscrittura del
detection engine attraverso un algoritmo di ricerca multipattern che
verifica più regole in parallelo, ha raggiunto le prestazioni necessarie per
ispezionare una rete dell'ordine dei gigabit/secondo. In generale, se il
motore dell'IDS (e il resto del sistema) non è abbastanza sofisticato per
reggere un alto carico di lavoro, bisogna limitare la complessità dei
controlli a forme di pattern matching sul payload (campo dati) dei
pacchetti e di controlli sugli header TCP/UDP/IP. Analisi più
approfondite possono essere demandate a una consolle centralizzata,
anziché essere eseguite in tempo reale; in tal caso, le azioni correttive
vengono ulteriormente ritardate. L'automazione delle azioni di risposta
(active response), quando supportate, si limita di solito all'invio di
pacchetti TCP Reset per interrompere connessioni pericolose, o
all'aggiunta dinamica di regole di filtraggio sul firewall. Tali azioni vanno
usate tuttavia con cautela, per non rischiare di bloccare traffico legittimo
in risposta a pacchetti falsificati (un esempio è il blocco del traffico DNS
a causa di pacchetti contraffatti apparentemente provenienti dal

42
nameserver). L'installazione di uno o più NIDS non ha impatti sul
funzionamento della rete, ma può averne sulla sua topologia. La
strategia di controllo può essere centralizzata (una consolle centrale
controlla il monitoraggio e il reporting), parzialmente distribuita
(monitoraggio centrale e reporting a una o più postazioni), o
completamente distribuita (monitoraggio basato sull'uso di agenti e
decisioni prese nel punto di analisi). Inoltre, il traffico può essere
raggruppato e suddiviso tramite switch, in modo da sottoporre ai sensori
solo il traffico che è opportuno analizzare, isolato dal traffico meno
interessante. In caso contrario, i sensori dovranno essere più numerosi
e dimensionati per gestire una maggiore quantità di traffico e di controlli.
Un problema generale degli IDS è quello del tuning per ridurre i falsi
positivi (falsi allarmi) e i falsi negativi (attacchi passati inosservati). Se ci
si limita a ispezionare ogni pacchetto e a eseguire semplici controlli di
pattern matching si usa un approccio troppo generale, che produce molti
falsi positivi. Se il pattern matching diventa molto specifico, si rischia di
mancare gli attacchi (falsi negativi). Il tuning della configurazione e l'uso
dei preprocessor per riconoscere le anomalie fanno parte della
soluzione. Come nella difesa a più livelli (detta anche defense in depth,
o difesa in profondità) citata a proposito dei firewall, anche gli IDS
dovrebbero essere collocati in ogni punto in cui una rete si connette a
un'altra rete: connessioni Internet, DMZ (Demilitarized Zone), banchi di
modem, gateway VPN (Virtual Private Network) e via dicendo. Inoltre,
un IDS dovrebbe essere presente ovunque ci siano server la cui
compromissione sia ritenuta una grave violazione di sicurezza. Di fronte
alla enorme quantità di dati (log, messaggi, dump) che possono essere
prodotti dagli IDS, un requisito vitale è la presenza di un amministratore
competente nella sicurezza delle reti e nel tuning degli IDS, così da
minimizzare i falsi positivi e utilizzare gli appropriati strumenti di analisi
per estrarre le informazioni utili da migliaia (o centinaia di migliaia) di
record.

43
Host-Based IDS
Un IDS basato su host (HIDS) differisce da un NIDS in due modi:
protegge solo il sistema su cui è installato (anziché la sottorete), e la
scheda di rete del sistema su cui è installato funziona in modo non
promiscuo (non ascolta i pacchetti destinati agli altri nodi della
sottorete). Di conseguenza, il carico di lavoro di un HIDS è inferiore e il
set di regole su cui esso opera può essere personalizzato in modo molto
specifico per il particolare sistema host (per esempio, non occorre
monitorare i servizi non attivi). Il rovescio della medaglia è che un HIDS
dev'essere compatibile con il sistema operativo installato sul sistema, il
che costituisce un inconveniente soprattutto negli ambienti multi-
piattaforma. Un altro aspetto è che l'installazione di un HIDS su un host,
soprattutto un server, causa un incremento del carico di lavoro che
potrebbe essere mal sopportato.

Le caratteristiche degli HIDS possono essere molto varie. In particolare,


i sensori possono avere diverse tipologie: 1. sensori che esaminano i
log di sistema e applicativi; sono poco intrusivi, ma la loro efficacia è
condizionata dalle informazioni che il sistema e le applicazioni
44
registrano nei file di log. 2. sensori che rilevano le modifiche apportate ai
file critici di sistema e al registry di Windows, che potrebbero essere
effetto d'intrusioni; tra i prodotti della categoria change audit
(monitoraggio e registrazione dei cambiamenti) citiamo, ad esempio,
quelli di Tripwire e di Active Reasoning. 3. sensori collocati tra il
software (servizi, sistema, applicazioni) e la rete, che intercettano il
traffico e possono bloccare le attività sospette o pericolose. Tali sensori,
capaci di attività preventiva, sono presenti in diversi personal firewall
commerciali; rispetto ai NIDS, hanno il vantaggio di una maggiore
disponibilità d'informazioni sul contesto in cui avviene il traffico con la
rete, inclusa l'applicazione che invia e riceve i dati. 4. sensori che
intercettano le chiamate di sistema di un processo, con possibilità di
segnalarle o di bloccarle; tali sistemi, per lo più sperimentali, richiedono
una valutazione del carico di lavoro aggiunto al sistema. Gli HIDS di
questo e del precedente tipo sono spesso utilizzati per proteggere
singole applicazioni, come i Web server. Gli HIDS hanno una
caratteristica comune agli antivirus: in caso di malfunzionamento o
compromissione del sistema, anche l'HIDS può essere bloccato o
disattivato. Un comportamento tipico del software maligno è individuare
e cercare di chiudere gli antivirus e i personal firewall; in particolare, il
firewall di Windows XP può essere disattivato tramite la sua stessa API
(Application Programming Interface).

45
46
Distributed IDS
Un IDS distribuito, o DIDS, è una combinazione di sensori NIDS e
sensori HIDS, distribuiti attraverso la rete aziendale, che riportano le
informazioni a un sistema centrale di coordinamento. I log degli attacchi
sono generati sui sensori e trasferiti, periodicamente o continuamente,
alla stazione server centrale dove possono essere archiviati in un
database. Le firme dei nuovi attacchi sono caricate sulla stazione di
management man mano che si rendono disponibili, e quindi vengono
trasferite ai sensori secondo necessità. Da notare che gli sviluppatori di
Snort, entro pochi giorni - se non ore - dal rilascio di un nuovo malware,
aggiornano il ruleset di Snort sulla mailing list di NANOG (North
American Network Operators' Group). I diversi tipi di sensori possono
essere gestiti o meno dallo stesso server, e i server di gestione sono
spesso distinti dai server che raccolgono i log. Ogni sensore può avere
un set di regole personalizzato per le necessità della rete o dell'host
monitorati dai sensori. I messaggi di allerta possono essere inoltrati a un
sistema di messaggistica ubicato sulla stazione centrale di
coordinamento, in modo da tenere informato l'amministratore dell'IDS.
Le transazioni tra sensori e stazione di gestione possono avvenire su
una rete privata, come nello schema dell'esempio, oppure sulla rete
aziendale. In quest'ultimo caso è vitale che tutti i messaggi riguardanti la
sicurezza e il rilevamento delle intrusioni siano cifrati, magari utilizzando
una VPN.

47
Accesso al traffico
L'avvento delle reti switched (basate su switch anziché su hub) ha
ostacolato il monitoraggio in modo promiscuo delle reti. La soluzione è
stata di configurare gli switch in modo da replicare i dati di tutte le porte
o VLAN (Virtual LAN) su una singola porta di mirroring (che deve
supportare il traffico cumulativo delle porte da controllare). Tale funzione
ha diversi nomi, come Port Mirroring, Spanning Port, Monitoring Port,
SPAN port e Link Mode Port. Spesso Port Mirroring indica la capacità di
copiare il traffico da una singola porta a una porta di mirroring,
disattivandone il traffico bidirezionale. Spanning Port indica la possibilità
di copiare il traffico da tutte le porte a una singola porta, disattivandone
anche in questo caso il traffico bidirezionale. Per Cisco, SPAN significa
Switch Port ANalyzer. Alcuni switch non permettono alle porte SPAN di
trasmettere pacchetti, impedendo di usare contromisure di risposta
attiva come il TCP Reset. Un'alternativa al mirroring o span delle porte
di uno switch (soluzione costosa e sotto il controllo del gruppo di
networking, anziché del gruppo di sicurezza) è l'uso dei network tap
(test access port), dispositivi hardware che si innestano direttamente nel
cavo di rete e che inviano una copia del traffico di rete a un altro
dispositivo. I network tap possono essere usati con i NIDS e con gli
analizzatori di rete, come Ethereal. A differenza delle porte span, i tap
48
forniscono il 100% del traffico di pacchetti, compresi gli errori di strato 1
(fisico) e 2 (data link), normalmente filtrati dagli switch.

Un NIDS può operare in modo invisibile (stealth mode), ovvero non


visibile dalla rete che tiene sotto controllo. Ciò avviene solitamente
evitando di assegnare un indirizzo IP all'interfaccia di rete del NIDS, e
usando un network tap che consente solo la ricezione e non l'invio di
traffico. Un fattore chiave per impedire agli attaccanti di accorgersi del
NIDS.

49
Honeypots/Honeynets
Un honeypot è un sistema esca, distinto e complementare rispetto a un
IDS, progettato per attirare gli attaccanti lontano dai sistemi critici. Gli
scopi degli honeypot sono: 1. sviare gli attaccanti dall'accesso ai sistemi
critici; 2. raccogliere informazioni sulle attività degli attaccanti; 3.
incoraggiare gli attaccanti a restare nel sistema abbastanza a lungo
perché gli amministratori attuino una risposta. Gli honeypot possono
comporre una honeynet, che simula una rete vulnerabile, attirandovi
l'attaccante con l'illusione di trovare materiale interessante. Nessun
utente legittimo accederebbe all'honeypot o honeynet, quindi qualunque
accesso a questa parte della rete è sospetto. Il sistema è attrezzato con
monitor sensibili (IDS) e logger degli eventi, in modo da raccogliere tutte
le informazioni utili. L'implementazione e configurazione di tali strumenti
deve essere accurata e realistica. Se l'attaccante si accorge della
trappola, evita l'honeypot e inizia ad attaccare i sistemi reali; per questo,
l'uso di honeypot non deve creare false aspettative di sicurezza che
potrebbero rivelarsi controproducenti (ad esempio, notando troppo tardi
che la quiete sull'honeynet non significa assenza di attacchi, ma attacco
alle altre reti). Inoltre, un attaccante che ha scoperto un honeypot lo può
sfruttare come base di partenza per attaccare i sistemi e le reti reali. Per
queste considerazioni, gli honeypot dovrebbero essere usati in sinergia
50
con gli IDS per prevenire, rivelare e rispondere agli attacchi. A
differenza di un sistema di produzione sotto attacco, un honeypot può
essere facilmente analizzato, visto che tutte le attività sono ostili e che il
sistema può essere messo offline ed esaminato a piacere. L'attacco a
un honeypot può anche attivare meccanismi di difesa più efficaci, fino
allo shutdown dei sistemi reali in base alle policy di sicurezza e alle
informazioni sugli attacchi in corso.

VPN
Per decenni, per collegare fisicamente due sedi di una società era
necessario affittare una connessione dedicata con collegamento punto a
punto dalle compagnie telefoniche. Il canale così creato è privato, e la
velocità di trasmissione dei dati è scelta in funzione del numero di utenti
che si vogliono connettere e del volume di traffico della rete. Lo
svantaggio di tale soluzione è il costo elevato, perciò, con la diffusione
di Internet, un numero sempre maggiore di organizzazioni ha
abbandonato le connessioni dedicate a favore delle reti private virtuali.

51
La VPN (Virtual Private Network) è una connessione cifrata tra reti
private utilizzando una rete pubblica come Internet; è costruita sulla
base di reti fisiche esistenti che possono essere sia reti locali (aziendali
o meno) sia reti pubbliche; è virtuale perché le informazioni della rete
sono trasportate attraversando reti membri di una rete pubblica come
Internet. E’ privata perché i dati che viaggiano sono cifrati e, per questo,
garantiscono la confidenzialità. Gli apparati end-to-end in grado di
implementare una VPN sono in genere router, firewall o apparati
specializzati per la funzione detti concentrator. Le aziende usano le VPN
per stabilire collegamenti sicuri (uso della crittografia) chiamati tunnel
utilizzando una infrastruttura di rete pubblica, come Internet. Le VPN
realizzano un trasporto sicuro tra due posti attraverso una rete pubblica.
Ci sono essenzialmente due tipi di VPN:

 Remote Access : fornisce connettività alla rete aziendale dagli


accessi remoti da parte di utenti mobili o utenti da casa che
attraverso una chiamata al locale ISP possono entrare nella LAN
aziendale;
 Site to site: consente connessioni tra diverse sedi di un’azienda
ovvero consente di estendere la LAN aziendale a sedi remote della
stessa azienda utilizzando la rete pubblica Internet; a questa
soluzione è in genere affiancato un sistema di difesa perimetrale
come un Firewall.
52
La VPN può essere realizzata secondo 2 architetture di seguito
descritte:

Da gateway a gateway
La comunicazione sicura tra due reti, attraverso Internet (o altra rete
TCP/IP), è realizzata dislocando un gateway VPN in ciascuna delle due
reti. Il gateway, molto spesso, è incorporato in un firewall o router, ma
può essere un dispositivo dedicato, come un server o un'appliance.
Nell'illustrazione, il tratto continuo indica la connessione protetta, che è
solo quella tra i due gatway; le connessioni tra i gateway e gli host sulle
reti locali (tratteggiate) non sono protette. Questo è il modello più
semplice da realizzare: la VPN è trasparente per gli utenti, che non
devono eseguire un'autenticazione separata per accedere alla VPN e
non hanno bisogno di alcun software client VPN. Tra due gateway in
connessione stabile la protezione richiesta è superiore rispetto a una
connessione occasionale, e l'autenticazione avviene solitamente tramite
certificati digitali.
53
Da host a gateway
Nell'architettura host-to-gateway, un utente remoto (che può anche
essere un amministratore) accede alla rete in modo sicuro. La
protezione si estende dall'host remoto fino al gateway aziendale.
Quando l'utente remoto ha bisogno di connettersi alla rete aziendale,
inizia la comunicazione con il gateway VPN. L'host ha bisogno di un
software client che può essere fornito dal sistema operativo o essere
un'applicazione commerciale. In tal caso, il gateway è un firewall o un
server VPN dello stesso produttore. Quando l'host desidera stabilire una
connessione VPN con il gateway, quest'ultimo gli chiede di autenticarsi
prima che la connessione possa essere attuata. Lo scambio
d'informazioni avviene tramite certificati (il metodo preferibile) o chiavi
condivise, secondo i tipi di VPN e il grado di sicurezza richiesto, finché
le due parti non si sono reciprocamente autenticate.

Da host a host
Si tratta del modello di VPN usato meno di frequente, e serve per scopi
particolari, come l'amministrazione remota di un singolo server
(normalmente, l'amministratore remoto può utilizzare la connessione
54
host-to-gateway). Il server deve essere configurato in modo da fornire
servizi VPN, e l'host dell'amministratore funge da client VPN. Anche in
questo caso il client origina la richiesta di connessione, che viene
stabilita dopo la fase di autenticazione e scambio di informazioni. Il più
delle volte, la VPN host-to-host è usata quando un piccolo numero di
utenti fidati ha bisogno di amministrare un sistema remoto che richiede
l'uso di protocolli insicuri, e che può essere aggiornato in modo da
supportare servizi VPN che incapsulino le comunicazioni insicure.
La principale suite di protocolli usata per creare VPN è IPSec (Internet
Protocol Security), sviluppata dall'IETF (Internet Engineering Task
Force). IPSec fornisce funzioni di protezione a livello del protocollo IP.
Nella pratica, salvaguarda i datagrammi IP definendo un metodo per
specificare il traffico da proteggere, come quel traffico deve essere
protetto e a chi il traffico è inviato. Un IP datagram protetto con IPSec,
tuttavia, resta sempre un pacchetto IP.
IPSEC offre:

 Confidenzialità : è garantita dal fatto che le informazioni inviate


sulla rete sono cifrate dal mittente, quindi, anche se intercettate
sono inutilizzabili; gli algoritmi usati nella cifratura sono simmetrici,
le chiavi sono scambiate in modo sicuro.
 Integrità dei dati: il destinatario può verificare che i dati ricevuti non
sono cambiati o alterati.
 Autenticazione dell’origine dei dati: il destinatario ha la certezza
che i dati provengano da quella origine;
 Univocità :garantisce la non duplicazione dei pacchetti;
Possiamo immaginare IPSEC come un tunnel privilegiato all’interno di
un sistema di reti complesso. Per stabilire il tunnel IPSEC è necessario
che i due nodi, mittente e destinatario, scambino quattro chiavi: due
servono per l’autenticazione da una direzione e dall’altra, mentre le altre
2 servono a cifrare i dati da ciascuna delle due direzioni. Tali chiavi sono
scambiate in modo sicuro con l’algoritmo Diffie Hellmann.
Per il suo funzionamento IPSEC prevede:

 una suite di protocolli: IKE, AH, ESP


55
 un insieme di entità: SA, SAD, SPD
Vediamo i meccanismi nel dettaglio.
Il modo in cui IPSec protegge i pacchetti IP è attraverso l'uso di uno dei
suoi due protocolli, ESP (Encapsulation Security Payload) o AH
(Authentication Header). AH fornisce la prova di origine dei pacchetti
ricevuti, l'integrità dei dati e la protezione da replay. ESP offre tutto ciò
che fornisce AH con, in più, la riservatezza ottenuta attraverso la
cifratura del traffico. Il protocollo IKE (Internet Key Exchange) fornisce
un modo dinamico automatico per autenticare gli interlocutori, negoziare
i servizi di sicurezza e generare chiavi condivise. L'uso di chiavi
asimmetriche (troppo lento per la cifratura del traffico) è limitato
all'autenticazione iniziale durante lo scambio di chiavi, dopo di che, sono
usate chiavi simmetriche per la cifratura dei dati e per il calcolo dei MAC
(Message Authentication Code, usati per l'integrità dei dati). La
RFC2401 definisce l'architettura di base, riferimento per tutte le
implementazioni di IPSec. Definisce i servizi di sicurezza forniti, come e
dove possono essere usati, come sono costruiti ed elaborati i pacchetti
e l'interazione tra l'elaborazione IPSec e la politica di sicurezza. I
protocolli IPSec, AH e ESP, possono essere usati per proteggere l'intero
payload IP (il pacchetto ricevuto dallo strato di trasporto), o solo la parte
dati relativa ai protocolli di strato superiore. Tale distinzione si riflette
nelle due modalità d'uso di IPSec. Il Transport mode è usato per
proteggere i protocolli di strato superiore; il Tunnel mode serve per
proteggere interi datagrammi. In Transport mode, un header IPSec è
inserito tra l'header IP e l'header del protocollo superiore (ad esempio
TCP). In Tunnel mode, l'intero pacchetto IP da proteggere è incapsulato
in un altro IP datagram, e un header IPSec viene inserito tra il nuovo
header IP esterno e l'header IP interno. Sia AH, sia ESP possono
operare in Transport o Tunnel mode. Il Transport mode può essere
usato solo per proteggere pacchetti laddove il punto terminale della
comunicazione coincida con il punto terminale crittografico. Il Tunnel
mode può essere usato al posto del Transport mode e permette, inoltre,
di essere utilizzato dai gateway di sicurezza per fornire servizi a
beneficio di altre entità della rete, come una VPN. In tal caso, i punti
terminali della comunicazione sono specificati dall'header IP interno, che
56
è protetto, e i punti terminali crittografici sono quelli dell'header IP
esterno. Un gateway di sicurezza estrae il pacchetto IP incapsulato a
conclusione dell'elaborazione IPSec, e inoltra il pacchetto alla sua
destinazione finale. Per poter incapsulare ed estrarre i pacchetti IPSec,
è necessario un modo per associare i servizi di sicurezza e una chiave
con il traffico da proteggere e con l'interlocutore con cui viene scambiato
il traffico. Tale costruzione prende il nome di Security Association (SA).
E' unidirezionale: definisce i servizi di sicurezza in una direzione,
associati ai pacchetti in uscita o in entrata. Tali servizi sono identificati
da un Security Parameter Index (SPI) presente negli header IPSec, dal
protocollo IPSec e dall'indirizzo di destinazione associato alla SA. Le SA
esistono tipicamente in coppie (una per direzione), e sono create
dinamicamente dal protocollo IKE. Le SA risiedono nel Security
Association Database (SADB). Un'altra struttura centrale di IPSec è il
Security Policy Database (SPD); ogni suo record definisce il traffico da
proteggere, come proteggerlo e con chi la protezione è condivisa. Per
ogni pacchetto che entra o esce dallo stack IP, l'SPD viene consultato
per verificare la possibile applicazione di servizi di sicurezza.
Ora analizziamo i dettagli dei protocolli utilizzati da IPSEC

Authentication Header
Il protocollo AH di IPSec assicura l'autenticazione d'origine, l'integrità e
la protezione da replay dei datagrammi IP in modo connectionless,
ovvero pacchetto per pacchetto. L'integrità è garantita dalla checksum
generata da un Message Authentication Code (MAC); l'autenticazione
dell'origine dei dati è assicurata inserendo una chiave condivisa nei dati
da autenticare; la protezione da replay è ottenuta tramite un numero di
sequenza nell'header AH. AH viene usato in Tunnel mode, ad esempio,
in un'architettura gateway-to-gateway (detta anche site-to-site), oppure
LAN-to-LAN (tra LAN della stessa azienda). L'indirizzo di destinazione
nel nuovo header IP è l'indirizzo della VPN di destinazione. La funzione
di autenticazione si applica all'intero pacchetto, eccetto che per alcuni
campi nel nuovo header IP (come il time to live, un campo decrementato
da ogni router che instrada il pacchetto), che possono venire modificati
durante il percorso verso destinazione. Tali campi sono anche chiamati
57
campi mutevoli. L'autenticazione copre sia l'indirizzo di origine, sia quel
lo di destinazione. Ciò permette al ricevente di riconoscere eventuali
attacchi con spoofing del mittente. AH è usato in Transport mode, ad
esempio, nell'architettura host-to-host. La differenza principale è che
viene mantenuto l'header IP originale. L'autenticazione riguarda ancora
l'intero pacchetto. L'autenticazione non fornisce alcuna riservatezza, una
funzione che spetta al protocollo ESP.

Encapsulation Security Payload


Il protocollo ESP di IPSec assicura sempre la riservatezza (tramite
cifratura) e, opzionalmente, l'integrità, l'autenticazione dell'origine dei
dati e la protezione da replay. Quando è usato per fornire le funzioni di
autenticazione, ESP utilizza gli stessi algoritmi impiegati da AH, ma con
una diversa copertura: i campi autenticati non comprendono il nuovo
header IP, quindi ESP non fornisce protezione contro lo spoofing
dell'indirizzo di origine. Lo schema del pacchetto ESP in Tunnel mode
mostra l'aggiunta di un header ESP. L'indirizzo di destinazione nel
nuovo header IP è l'indirizzo della VPN di destinazione. L'autenticazione
non include il nuovo header IP. Anche lo schema del pacchetto ESP in
Transport mode mostra l'aggiunta dell'header ESP; la principale
differenza è che viene mantenuto l'header IP originale. A differenza del
Transport mode di AH, l'autenticazione non include l'header IP. Le
funzioni AH ed ESP possono essere utilizzate insieme. Una potenziale
combinazione è usare ESP in Transport mode e AH in Tunnel mode. In
questa combinazione di AH ed ESP, il payload originale e il trailer
(coda) ESP sono le uniche porzioni che vengono cifrate (come ESP in
Transport mode). L'autenticazione copre l'intero pacchetto, tranne per i
campi mutevoli del nuovo header IP.

Internet Key Exchange


IKE è un protocollo che ha la funzione di negoziare in modo protetto le
SA (Security Associations) e fornire il materiale autenticato usato per la
costruzione delle chiavi. I processi che implementano IKE possono
essere usati per la negoziazione delle VPN e per fornire a un utente
remoto (con indirizzo IP non noto in anticipo) l'accesso sicuro a un host
58
o a una rete. IKE richiede il completamento di due fasi prima che il
traffico possa essere protetto con AH o ESP. Lo scopo della prima fase
è che i due endpoint IPSec negozino con successo un canale sicuro
attraverso il quale possa essere negoziata una SA IPSec. Il canale
sicuro così creato è detto IKE SA; il suo scopo è fornire una cifratura e
un'autenticazione bidirezionale per gli altri scambi IKE: le negoziazioni
della fase due, il trasferimento delle informazioni di stato e di errore, e la
creazione di informazioni per la costruzione delle chiavi attraverso
l'algoritmo Diffie- Hellman di scambio chiavi (che ha dato origine alla
crittografia asimmetrica). La fase uno può avvenire in due modi: main
mode, che prevede tre paia di messaggi, o aggressive mode, che
utilizza solo tre messaggi, ma è meno flessibile e sicuro. Lo scopo della
fase due è di stabilire una SA per l'effettiva connessione IPSec (detta
IPSec SA). A differenza della IKE SA, che è bidirezionale, le IPSec SA
sono monodirezionali, quindi una connessione IPSec tra due sistemi
richiede due SA. L'utilizzo di IPSec può riservare due difficoltà. La prima
è relativa alla Network Address Translation (NAT). La SA è legata agli
indirizzi di mittente e destinatario, quindi, se viene modificato un
indirizzo nel pacchetto durante il percorso, l'autenticazione fallisce. Ciò
non permetterebbe a IPSec di attraversare un router che applica la
NAT. Ci sono diverse soluzioni per l'uso di NAT con IPSec: 1. eseguire
la NAT prima di applicare IPSec (per esempio, il gateway può eseguire
prima la NAT e poi IPSec per i pacchetti in uscita); 2. usare UDP per
l'incapsulamento dei pacchetti ESP in Tunnel mode. L'incapsulamento
UDP aggiunge un header UDP a ogni pacchetto che fornisce un
indirizzo e porta UDP utilizzabili da NAT/NAPT; ciò elimina conflitti tra
IPSec e NAT nella maggior parte dei casi (vedere le RFC 3947 e 3948).
3. nelle abitazioni e piccoli uffici si può configurare il router ADSL che
esegue la NAT in modo da permettere l'attraversamento di IPSec. Una
seconda difficoltà riguarda la gestione, in caso di Tunnel mode, dei
parametri legati alla Class of Service (CoS - gestione del traffico per
tipo, ad esempio posta, trasferimento file, streaming video, con classi di
priorità diverse). Infatti, non è ovvio se e come i parametri CoS del
pacchetto incapsulato debbano essere utilizzati dal gateway per il nuovo
header generato, o se esso ne debba generare di propri; in questo caso,

59
il link cifrato potrebbe non rispettare i requisiti dell'header interno senza
che, però, la cosa risulti evidente al mittente.

Altri protocolli di tunneling


IPSec offre la flessibilità e sicurezza che lo rendono la soluzione
preferita per la maggior parte delle VPN. Esistono, tuttavia, anche
diverse alternative.

Protocolli VPN di strato data link


Mentre IPSec opera allo strato di rete e supporta solo il protocollo IP, i
protocolli VPN di strato 2 (data link) possono essere usati con diversi
protocolli di rete, come IP, IPX e NetBEUI (oggi IPX e NetBEUI sono
obsoleti). I più comuni protocolli VPN di strato 2 sono usati tipicamente
in abbinamento al Point-to-Point Protocol (PPP), e per lo più servono a
rendere sicure le connessioni via modem. PPP, non il protocollo VPN,
fornisce tipicamente i servizi di autenticazione e cifratura del traffico.
Tuttavia, lo standard PPP prevede solo la cifratura DES (Data
Encryption Standard, obsoleto perché insicuro) e l'autenticazione via
60
PAP (Password Authentication Protocol) e CHAP (Challenge
Handshake Authentication Protocol), anch'essi insicuri, mentre i
protocolli VPN di strato 2 utilizzano spesso protocolli aggiuntivi per
offrire autenticazione e cifratura più robuste. I protocolli VPN più usati
sono i seguenti:

 Point-to-Point Tunneling Protocol (PPTP) Version 2. Fornisce un


tunnel protetto tra un client (per esempio un personal computer) e
un server, entrambi abilitati a PPTP. Richiede agli utenti
l'installazione e la configurazione del software client (incluso in
Windows). Per il trasporto dei dati, PPTP utilizza il protocollo IP 47
(GRE, Generic Routing Encapsulation), che viene bloccato dalla
maggior parte dei dispositivi di filtraggio dei pacchetti, quindi può
essere necessaria una loro riconfigurazione per lasciarlo passare.
Oltre alla connessione GRE, PPTP apre un canale di controllo
usando la porta TCP 1723. Microsft ha creato un proprio
meccanismo di cifratura per PPTP, l'MPPE (Microsoft Pointto-
Point Encryption), che usa una chiave da 40 o 128 bit con
l'algoritmo RC4 di RSA. Microsoft ha anche sviluppato MSCHAP e
MSCHAPv2 per fornire un'autenticazione più robusta, ma neppure
questi protocolli sono esenti da vulnerabilità. Il PPTP originale era
affetto da gravi lacune di sicurezza. PPTPv2 ha risolto molti
problemi, ma i ricercatori hanno individuato punti deboli che ne
sconsigliano l'utilizzo, se non per connessioni occasionali senza
alti requisiti di sicurezza. PPTP può essere utilizzato, ad esempio,
per connettersi alla rete domestica o SOHO (Small Office-Home
Office) quando si è in viaggio.
 Layer 2 Tunneling Protocol (L2TP). Alla pari di PPTP, protegge le
comunicazioni tra un client e un server entrambi abilitati a L2TP.
Sui computer degli utenti dev'essere installato e configurato un
client L2TP. A differenza di PPTP, L2TP utilizza un proprio
protocollo di tunneling che fa uso della porta UDP 1701. Inoltre,
L2TP supporta sessioni multiple nello stesso tunnel. Oltre ai
metodi di autenticazione forniti da PPP, L2TP supporta altri
metodi, come l'uso dei server di autenticazione RADIUS e
TACACS+. Spesso, L2TP utilizza IPSec per i servizi di cifratura e
gestione delle chiavi.

61
 Layer 2 Forwarding (L2F). A differenza di PPTP e L2TP, L2F è
destinato all'uso tra dispositivi di rete, come il server di accesso
alla rete di un ISP (Internet Service Provider), e il gateway VPN di
un'azienda. Gli utenti stabiliscono una connessione non protetta
dal loro computer all'ISP. Quest'ultimo riconosce che il traffico
degli utenti deve essere incapsulato in un tunnel verso l'azienda,
perciò autentica ogni utente e il gateway dell'azienda, quindi
fornisce la protezione del traffico tra il proprio server e l'azienda.
L'uso di L2F richiede il supporto e la partecipazione dell'ISP.
Poiché L2F non è basato sui client, i sistemi non hanno bisogno di
software client o di configurazione, ma la comunicazione tra i
computer degli utenti e i l'ISP non è protetta. Come L2TP, anche
L2F può usare protocolli di autenticazione come RADIUS e
TACACS+, ma L2F non supporta la cifratura dei dati. L2TP è stato
introdotto per rimpiazzare PPTP e L2F. Quando configurato in
modo appropriato, L2TP combinato con IPSec può fornire
autenticazione forte e cifratura. PPTP non dovrebbe essere usato
per proteggere le comunicazioni, a causa dei suoi punti deboli.
Poiché L2F fornisce solo una protezione limitata a porzioni delle
comunicazioni che coinvolgono un ISP partecipante, si dovrebbe
usare L2TP al posto di L2F. L2TP con IPSec è un'opzione valida
per fornire riservatezza e integrità alle comunicazioni dialup
(chiamata via modem), specialmente per organizzazioni che
contrattano servizi VPN con un ISP. Oltre a proteggere le
connessioni dial-up, i protocolli VPN di strato data link sono usati
anche negli ambienti ad alta sicurezza per proteggere particolari
collegamenti fisici, come i circuiti dedicati tra due edifici. La VPN
può essere creata collocando un gateway di cifratura e decifratura
alle estremità del circuito, oppure aggiungendo servizi VPN a punti
62
terminali come gli switch. Si parla di Provisioner-provided VPN
(PPVPN) quando il service provider del collegamento offre la
protezione VPN del collegamento stesso. In carico del provider,
non dell'azienda utente. Il gruppo di lavoro Layer 2 Virtual Private
Networks (L2VPN) dell'IETF sta sviluppando gli standard per le
PPVPN di strato 2.
Protocolli VPN di strato di trasporto
I protocolli di strato 4 come TLS (Transport Layer Security) sono
utilizzati principalmente per fornire comunicazioni sicure a singole
applicazioni basate su HTTP, benché possano proteggere sessioni di
comunicazione di altro tipo. Dato che tutti i principali browser
supportano SSL e TLS, gli utenti non hanno bisogno d'installare un
client software o di riconfigurare il sistema (salvo attivare TLS nel
browser se non è attivo per default). Una differenza importante tra le
protezioni TLS e IPSec è che IPSec autentica automaticamente ciascun
punto terminale con l'altro, mentre l'autenticazione TLS è tipicamente
monodirezionale, dal server (provvisto di certificato) al client (la maggior
parte delle implementazioni non sfrutta l'opzione di autenticare anche il
client dotandolo di certificato). Uno sviluppo recente è l'uso dei reverse
proxy server TLS (chiamati anche SSL proxy server, TLS VPN e SSL
VPN) per offrire una soluzione VPN più robusta agli utenti remoti.
L'utente remoto che ha bisogno di usare un'applicazione aziendale
inserisce nel browser l'URL (Uniform Resource Locator) del proxy
server, a cui si connette in modo HTTP protetto da TLS. L'utente viene
autenticato dal proxy server, quindi può accedere all'applicazione
desiderata, come specificato nei controlli d'accesso del proxy. L'utente
non si collega all'applicazione direttamente; il suo sistema usa una
connessione HTTP protetta da TLS con il proxy server, che a sua volta
stabilisce un'altra connessione con il server applicativo che può essere
protetta o meno, secondo necessità. Tale metodo può essere adattato
anche ad applicazioni non Web, tramite appositi client software forniti
dai produttori e da installare sulle macchine degli utenti. In generale, il
metodo del proxy server è adatto soprattutto per proteggere un numero
significativo di applicazioni Web, altrimenti non offre vantaggi sostanziali
rispetto alla protezione individuale delle applicazioni tramite TLS.

63
Protocolli VPN di strato applicativo
Ogni protocollo di strato applicativo è in grado di proteggere una singola
applicazione; in molti casi, la protezione riguarda solo una parte dei dati
applicativi. Per esempio, programmi di cifratura come PGP (Pretty Good
Privacy) e GPG (GnuPG) possono essere usati in combinazione con un
client di e-mail per cifrare il corpo di un messaggio di posta elettronica,
ma non l'intestazione (che include le informazioni sugli indirizzi).
Protocolli VPN applicativi possono anche essere incorporati nelle
applicazioni per fornire la protezione dei dati senza richiedere
applicazioni separate. Se il software in commercio o in distribuzione non
comprende protezione allo strato applicativo, la protezione deve essere
aggiunta attraverso un altro prodotto (allo strato applicativo, oppure a un
altro strato), per esempio avvolgendo l'applicazione basata su HTTP
con TLS o realizzando una VPN basata su IPSec. Un protocollo di strato
applicativo comunemente usato è Secure Shell (SSH), che contiene i
sostituti sicuri di parecchi protocolli applicativi, tra cui telnet, rcp e FTP.
Lo stesso programma SSH client, in sé, fornisce la protezione per il
login remoto a un altro sistema. Alcune aziende estendono l'uso
dell'applicazione SSH stabilendo tunnel SSH tra host, e quindi facendo
passare altre comunicazioni attraverso i tunnel. Ciò permette di
proteggere più applicazioni alla volta attraverso un singolo tunnel, il che,
tecnicamente, fa di SSH un protocollo VPN di strato 4 (trasporto),
anziché di strato applicativo. Tali strumenti sono utilizzati soprattutto
dagli amministratori, a causa della competenza tecnica necessaria per
installare e configurare il software SSH.

Servizi locali
I principi da seguire nell’attivazione dei servizi sulla rete locale sono gli
stessi che valgono per le reti pubbliche, tuttavia per le LAN si accetta
comunemente un compromesso tra funzionalità e sicurezza, in virtù del
maggiore livello di fiducia su una LAN rispetto a Internet. Perciò, sulla
LAN vengono attivati servizi che riducono la sicurezza (per esempio
quelli per la condivisione di risorse – file e stampanti – tra sistemi anche
64
eterogenei connessi alla LAN) per due motivi: si tratta di servizi
indispensabili per la normale operatività, o si valuta che l’ambiente più
controllato sia un’adeguata garanzia contro certe classi di attacchi. Tali
valutazioni non sono affatto ovvie ed è bene che siano documentate
esplicitamente. Per esempio, l’ampia libertà di accesso al personale
interno, giustificabile nel periodo formativo di un’azienda, può essere
pagata a caro prezzo quando, in un periodo di espansione, non c’è
tempo per accorgersi che un brillante collaboratore sfrutta la libertà di
accesso alle risorse condivise per passare informazioni riservate alla
concorrenza. Un aspetto positivo delle reti locali è che gli accessi, di
principio, possono essere tutti autenticati, a meno che il tipo di servizio
non lo impedisca. Dopo qualche perdita consistente, gli istituti finanziari
hanno adottato Smart Card e altri dispositivi di autenticazione che
impediscano alla persona sbagliata di eseguire indebiti movimenti di
denaro. Le cronache insegnano, però, che contro i funzionari autorizzati,
ma disonesti, le misure di sicurezza da adottare non riguardano
l’autenticazione o i servizi di rete, bensì l’analisi della personalità e gli
aspetti di organizzazione e di leadership nell’azienda.

NetBIOS/SMB/CIFS
NetBIOS (Network Basic I/O System) è un’interfaccia di base che si
appoggia a TCP/IP per offrire tre servizi: 1. risoluzione dei nomi
(NetBIOS usa nomi, non indirizzi numerici); 2. servizio di connessione
(TCP); 3. servizio datagam (UDP). NetBIOS può essere usato su diversi
stack di protocolli, tra cui TCP/IP. E’ utilizzato dalle architetture Microsoft
e dalle applicazioni compatibili come SAMBA (una suite di applicazioni
nate per consentire a macchine Unix di parlare il protocollo SMB –
Server Message Block – di Windows e di OS/2) per molti servizi di rete
locale, principalmente quelli di condivisione delle risorse.A questo
scopo, viene usato il protocollo SMB/CIFS (Common Internet File
System), che quando è impiegato da NetBIOS su TCP/IP (NBT) utilizza:
1. la porta UDP 137 per la risoluzione dei nomi; 2. la porta UDP 138 per
il servizio datagram; 3. la porta TCP 139 per il servizio di connessione. A
partire dalla versione 2000, Windows può usare SMB su TCP senza il
supporto NetBIOS tramite il servizio Direct Host, usando la porta TCP
65
445 per il servizio di connessione anziché la porta UDP 137 per la
risoluzione dei nomi. Dato che la maggior parte delle funzionalità delle
reti Windows è basata su tali servizi, è difficile non abilitarli (anche i
firewall interni ne devono tenere conto). La sicurezza, in questo caso, è
garantita principalmente dall’autenticazione nel dominio di Windows,
con il traffico trasmesso in chiaro. Dato che le risorse di un server sono
tutte accessibili attraverso le stesse porte, la selezione di cosa rendere
accessibile avviene principalmente tramite la configurazione della
condivisione per ogni singola risorsa (le access control list mappano i
privilegi di ogni utente verso ciascuna risorsa condivisa), che deve
essere quindi eseguita con la cura necessaria.

NFS
Network File System è un file system distribuito tipico dei sistemi Unix,
pensato per la condivisione dei file in rete locale. Dal punto di vista della
sicurezza, è assai debole: l’autenticazione dei client si basa
essenzialmente sull’indirizzo IP e, in caso di sniffing del traffico, è facile
impersonare un altro host. Sono state realizzate versioni con maggiore
sicurezza (autenticazione e cifratura), ma non hanno avuto Diffusione.

66
67
LDAP
Lightweight Directory Access Protocol, trattato nelle sezioni precedenti
(vedi la lezione 6), è un protocollo per l’accesso ai servizi di directory
utilizzato diffusamente e, in particolare, per l’accesso all’Active Directory
dei server Windows 2000/2003.

LDAP versione 3 utilizza SASL (Simple Authentication and Security


Layer), citato in precedenza, come supporto per l’autenticazione; ciò
significa che sono possibili diversi tipi di autenticazione, come la coppia
username/ password in chiaro, la digest authentication (tramite hash
della password), fino all’uso di un server Kerberos. LDAP supporta,
inoltre, SSL/TLS per la protezione della connessione tra i client e i
directory server tramite autenticazione e cifratura.

68
SNMP
Simple Network Management Protocol è un procollo per la gestione
remota di apparati di rete e di sistemi in generale. Per motivi di
prestazioni usa UDP, il che lo rende vulnerabile a molti tipi di attacco.
Per di più, SNMP v1 usa un meccanismo di autenticazione basato su
community string, stringhe di autenticazione che vengono trasmesse in
chiaro. Si tratta, quindi, di un meccanismo non meno debole delle
password in chiaro. A questo si aggiunge il fatto che molte
apparecchiature di rete hanno per default il servizio SNMP attivo con
community string predefinite, e che in moltissimi casi queste sono public
per l’accesso in lettura, e private per l’accesso in scrittura. SNMP v3
offre migliori meccanismi di autenticazione (basati essenzialmente su
algoritmi HMAC, Message Authentication Code a doppia cifratura, vedi
sezione sulla crittografia nella lezione 2) e di integrità dei dati, ma è
poco utilizzato e implementato. Nel complesso, SNMP può costituire un
rischio considerevole, ma è ampiamente usato per la sua efficacia nella
gestione della rete. E’ consigliabile usarlo al più su reti controllate,
possibilmente in sola lettura o per l’invio di trap (notifiche di allarme o di
eventi da segnalare) al sistema di gestione.

69
RFC
Remote Procedure Call è un protocollo di cui esistono diverse versioni e
che ha lo scopo di permettere la comunicazione tra processi di sistemi
diversi. Di particolare importanza è la versione Windows, dato che è
utilizzata dai componenti DCOM (Distributed Component Object Model),
la tecnologia di Microsoft per la distribuzione dei componenti software
su più computer della rete, che ha ceduto il passo all’architettura .NET.
RPC utilizza la porta 135 UDP/TCP, ed è utilizzato da molti componenti
e applicazioni. Per questo è difficile che possa essere disabilitato senza
danneggiare qualche funzionalità. Sono possibili quattro modalità di
autenticazione, che devono essere selezionate dalle applicazioni
(servizi) che fanno uso di RPC. Alcune modalità sono particolarmente
deboli (quella senza alcuna autenticazione e l’autenticazione via user
id/group id, che è la più usata); l’autenticazione con cifratura DES è
abbastanza sicura, ma usata soprattutto da Sun, mentre quella via
Kerberos è molto sicura, ma utilizzabile solo dove sia presente un server
Kerberos. I servizi basati su RPC usano generalmente porte variabili,
quindi esistono servizi su porte fisse (portmapper per Unix sulla porta
111 TCP/UDP e Service Locator per Windows sulla porta 135
TCP/UDP) ai quali richiedere la porta dei diversi servizi. Comunque,
anche se portmapper o Service Locator non fossero raggiungibili, i
singoli servizi potrebbero sempre essere individuati attraverso una
scansione delle porte.

Gestione dei log


Log, nel contesto informatico, è il sostantivo che indica registro delle
attività giornaliere. Il verbo log indica l’azione di registrare informazioni
in un registro, che in questo contesto è un file di log, ovvero un file di
testo in cui qualche componente software registra le operazioni eseguite
o gli eventi rilevati. I log hanno principalmente i seguenti utilizzi: 1.
debug: in caso di errore di un programma, a scopo diagnostico, è
necessario sapere quali operazioni sono state compiute appena prima;
2. sicurezza: in caso di compromissione, o nel corso del monitoraggio
70
preventivo, i log possono procurare informazioni su attività anomale o
sospette; 3. statistiche: i file di log procurano informazioni sull’utilizzo di
hardware e software e sui comportamenti degli utenti. Nell’ambito della
sicurezza, molte informazioni possono essere trovate nei normali record
di log registrati dal sistema e dalle applicazioni; a queste, si aggiungono
le segnalazioni sui tentativi di violazione che i meccanismi di sicurezza
registrano in appositi file di log. Le informazioni nel log di sistema I log
del sistema operativo sono la prima fonte di informazioni sugli eventi
che riguardano la sicurezza, sia perché contengono le informazioni
registrate dai componenti del sistema, sia perché anche le applicazioni
possono registrarvi informazioni. I messaggi di log sono composti di tre
parti:
1. Priorità, a seconda della criticità del log che può essere un
semplice avviso, un errore o un’emergenza.
2. Intestazione, che riporta data, ora e l’identificazione del mittente
(nome dell’host, oppure suo indirizzo IP).
3. Contenuto del messaggio, preceduto da un campo tag con il nome
del programma o processo che ha generato il messaggio.

Mentre è normale che i componenti del sistema operativo (Windows o


Unix) utilizzino i meccanismi standard per scrivere i propri log, è
frequente che le applicazioni gestiscano i rispettivi log in modo
autonomo e in formato proprietario (solitamente come file di testo). Le
prime informazioni che si possono trovare nei log riguardano le fasi di
avvio del sistema, dato che il sottosistema di logging è uno dei primi a
essere avviato, così da registrare quali altri servizi vengono avviati, e
con quale esito. Informazioni tipiche che si trovano nei log di sistema
riguardano le autenticazioni fallite presso i diversi sottosistemi e gli
accessi remoti ai servizi, oltre alle informazioni che servizi e applicazioni
registrano di routine tramite il servizio di logging. In Windows troviamo il
‘Visualizzatore Eventi” accessibile dagli strumenti di amministrazione del
pannello di controllo che permette di visualizzare le principali categorie
dei messaggi di log, che sono Applicazione, Protezione e Sistema. Una
delle abilità esercitate da chi pratica le intrusioni più sofisticate consiste
nel manipolare i log per cancellare ogni traccia delle incursioni nel
71
sistema. Per quanto riguarda i log applicativi, le applicazioni hanno due
possibilità di logging: appoggiarsi al sottosistema di logging del sistema
operativo, o utilizzare file propri. Esempi di applicazioni che registrano
file di log sono quelle di sicurezza: antivirus, firewall e antispyware, il
corredo standard di un computer collegato a Internet.

72
Domande di comprensione del capitolo 5
Rispondere alle domande che seguono per verificare di aver appreso
tutti i concetti illustrati in questo capitolo.
Le risposte alle domande sono riportate nell’allegato A alla fine del libro.
Se qualche risposta data dovesse risultare errata, si consiglia di
rivedere i concetti specifici dove si sono commessi errori.
1. Indicare quali, tra i seguenti compiti, possono essere svolti da un
firewall di tipo “packet filter”
a. Filtraggio di applicazioni
b. Filtraggio in base all’utente
c. Filtraggio in base all’indirizzo ip g
2. Cos’è uno Stateful Inspection firewall?
a. Tipo di firewall che blocca i pacchetti di stato
b. Un firewall che riconosce gli indirizzi ip e le applicazioni degli
utenti
c. Un firewall che riconosce lo stato di una connessione g
3. Cos’è una DMZ?
a. Una zona Internet più pericolosa del normale
b. Una zona della LAN più sicura del normale
c. Una zona della LAN dove i controlli sono stati ridotti g
4. Indicare quali sono tipologie valide di IDS
a. N-IDS g
b. B-IDS
c. H-IDS g
d. L-IDS
5. Che cos’è il NAT?
a. un meccanismo che converte indirizzi IP privati della rete
locale interna in indirizzi IP pubblici accessibili da Internet g
b. un servizio che converte indirizzi IP in MAC address
c. Un router che riesce a spedire i pacchetti all’interno della
nostra LAN

73
Capitolo 6: Wireless e
dispositivi mobili

Gli ultimi anni hanno visto la diffusione, a ritmo impetuoso in qualche


settore, delle tecnologie per la trasmissione dati su reti wireless. In
funzione delle frequenze utilizzate, delle potenze impiegate, che sono
comunque limitate dalle normative, e dei protocolli in gioco, troviamo
diversi campi di utilizzo e la nascita di una serie di nuove problematiche
di sicurezza.

Tecnologie wireless
Prima di tutto: cosa significa wireless? Se apriamo un dizionario di
inglese, in corrispondenza della parola wireless troviamo la definizione
"senza filo" o "reti senza filo". Questo sta a significare che parliamo di un
sistema che non è legato da vincoli fisici, che porta subito a sensazioni
di libertà, mobilità ed autonomia tanto care a chi lavora nel nostro
ambiente e che si possono ritrovare nella tecnologia wireless.

Essenzialmente, le reti senza filo servono per trasmettere dati.


Attraverso i dati posso trasferire qualsiasi tipo di informazione: testo,
immagini, video, audio.
In realtà, non dobbiamo pensare che la trasmissione di dati senza filo
sia una peculiarità dei computer e delle ultime tecnologie: un primo
74
esempio in proposito è dato dalla radio (non di certo una tecnologia
recente), che attraverso una comunicazione senza filo (tramite onde
radio appunto) permette la trasmissione di suoni e, impostando la
frequenza, la scelta del tipo di stazione che desideriamo ascoltare.
Ma non finisce qui: televisione, cellulari, televisione satellitare, sono
tutte tecnologie che usufruiscono di una trasmissione senza fili.

La vera novità è però data dalla constatazione che questo tipo di


trasmissione viene ora adottata per fini "domestici", soprattutto per
quanto riguarda il personal computer, ma non solo.
Pensiamo ai nostri telefoni di casa: vi ricordate quando, nei telefilm
americani, il commissario di polizia, parlando al telefono, doveva
attrezzarsi di filo lunghissimo per muoversi e camminare freneticamente
all'interno del suo ufficio?
Successivamente, quanto ci siamo meravigliati nel vedere quelle
famigliole americane nei telefilm che parlavano nel bel mezzo della loro
enorme cucina con un grosso telefono senza filo? Il telefono cordless è
ormai ai giorni d'oggi un oggetto che non desta alcun stupore e che si
porta a casa con pochi euro.

Spostiamo l'attenzione sull'ambiente PC: tastiera e mouse senza fili,


stampanti ed altre periferiche che si collegano senza filo al nostro
portatile che magari contemporaneamente trasmette dati al cellulare
mentre il proiettore dell'aula magna, sempre wireless , trasmette
l'immagine del mio schermo sul muro di fronte a noi: insomma, una vera
rivoluzione.

Nel corso dell'articolo, faremo alcune riflessioni su quanto una


tecnologia non nata per specificatamente le disabilità possa essere
molto utile in questo ambito.

75
Attenzione però, perché tra acronimi, strane sigle e luccicanti messaggi
pubblicitari, rischiamo di fare grossa confusione. Cerchiamo quindi di
capire quali sono i tipi di trasmissioni wireless presenti sul mercato,
accompagnandoli con esempi concreti.
Possiamo suddividere le tecnologie wireless più diffuse in base alle
caratteristiche tecniche e, contemporaneamente, ai rispettivi contesti di
utilizzo che determinano, insieme alle relative modalità d’impiego,
diverse problematiche di sicurezza che influenzano i requisiti
tecnologici. Da un lato, le reti di telefonia cellulare (GSM, GPRS e
UMTS) sono principalmente gestite dai grandi operatori di
telecomunicazioni (carrier), di cui le altre aziende e i cittadini sono solo
utenti. Al contrario, le tecnologie impiegate nelle WLAN (Wireless LAN)
sono utilizzate sia da carrier, sia da aziende, sia da utenti finali (anche
per impianti domestici). Altre tecnologie, come Bluetooth, hanno portata
limitata e sono impiegate soprattutto per connettere periferiche ai
sistemi. Nel seguito vediamo una breve descrizione delle principali
tecnologie, con la premessa che ne esistono molte altre, tra cui alcune
nel loro stadio iniziale di diffusione, come Wi-MAX (standard 802.16), il
protocollo per realizzare reti wireless geografiche (WMAN) ad uso, per
esempio, dei Wireless Internet Service Provider (WISP).
Essenzialmente esistono 3 diversi protocolli di comunicazione senza filo
1. Wi-Fi
2. IRDA
3. Bluetotth
Wi-Fi
ll Wi-Fi è un protocollo di trasmissione wireless per il supporto di reti ad
"alta velocità," ed è una trasmissione che avviene principalmente via
radiofrequenza.
Una wireless local area network, WLan, è un sistema di comunicazione
alternativo ad una rete fissa.

76
In pratica un sistema wireless sfrutta le onde radio per trasferire dati e la
sua applicazione si basa su un sistema di trasmettitori e ricevitori; questi
ultimi sono rappresentati da antenne dalle dimensioni variabili in
rapporto alla frequenza su cui operano, in genere comunque
abbastanza piccole, da poter essere utilizzate in ambiente domestico.

Installando quindi una semplice rete wireless, sarebbe possibile


passeggiare per casa, uscire sul terrazzo o in giardino e rimanere
contemporaneamente collegati alla rete (e quindi anche ad Internet)
senza nessun problema.
Possiamo ben immaginare quanto questo possa rappresentare per
quelle disabilità che costringono a far rimanere l'individuo in posti fissi o
poco accessibili con i normali fili del modem: l'essere collegati alla rete
anche dal loro letto o in un qualunque punto della casa è un vantaggio
impagabile.

Non tratteremo nello specifico le reti wireless LAN che abbiamo


accennato soltanto, mentre focalizzeremo di più l'attenzione sulle
trasmissioni più casalinghe. Per questo parleremo di IRDA e
BLUETOOTH
IrDA

L'acronimo IrDA significa "Infrared Device Application". Questi è uno


standard di interconnessione dati tramite infrarossi bidirezionale tra
dispositivi posizionati in visibilità reciproca (spiegheremo meglio questo
concetto tra qualche riga).

Tralasciando alcuni aspetti più tecnici, possiamo dire che come


tecnologia presenta grossi vantaggi e qualche svantaggio.

77
 vantaggi: è una tecnologia a basso costo, diffusa, sicura, veloce, a
basso consumo, non suscettibile ad interferenze radio.
 svantaggi: non si possono effettuare trasmissioni di dati otre 1-2
metri e non devono essere presenti ostacoli tra i due dispositivi
(per esempio se vogliamo collegare due PC portatili in questo
modo, non ci devono essere oggetti che coprano l'una o l'altra
porta di comunicazione).
Nell'esempio in foto potete vedere la porta Infrarossi di un comune
portatile. La foto stessa è stata scattata dal mio computer palmare e
trasferita al portatile tramite le due porte infrarossi dei due computer.

Questo tipo di comunicazione viene sfruttato anche in applicazioni


dedicate, come nel caso di prodotti creati per il controllo ambientale del
Personal Computer. Di seguito qualche esempio

Easy Mouse
Questo sistema, collegato alla porta USB del computer, trasforma il
dispositivo (joystick proporzionale o altri sensori) usato per controllare la
carrozzina nel mouse del computer. Se combinato con un programma di
emulazione di tastiera a video, consente il completo controllo del
computer.

Easy Rider

Easy Rider è un sistema di controllo unico che consente di gestire la


carrozzina elettronica (collegando l'apposita centralina ai cablaggi
originali) e tutti i dispositivi ad infrarossi dotati telecomando.
78
Il display di Easy Rider ha un ricevitore infrarosso integrato che
garantisce la possibilità di apprendere e riprodurre le frequenze
infrarosse dei telecomandi standard presenti sul mercato (televisione,
stereo, controllo condizionatore, ecc.. ). E' possibile memorizzare un
massimo di 200 nuovi codici (suddivisi in 10 gruppi di 20 frequenze).
Lo stesso sistema è quello usato da Sicare Pilot, che consente di
controllare con la voce i dispositivi a raggi infrarossi

Bluetooth
L'evoluzione del protocollo IrDa è il Bluetooth, letteralmente "dente blu",
tecnologia che rispetto all'IrDa presenta numerosi vantaggi.
E' una tecnologia di interconnessione wireless a bassa potenza, in
grado di far "comunicare" dispositivi elettronici di natura molto diversa
come i telefoni, stereo, notebook, computer, palmari fino ad un massimo
di 16 dispositivi, attraverso onde radio a basso raggio emesse da alcuni
trasmettitori presenti all'interno di questi dispositivi, il tutto senza
bisogno di alcun cavo di collegamento, ma semplicemente utilizzando le
onde radio con frequenza di 2,45Ghz - 2,56 Ghz (banda ISM). La
velocità massima di trasferimento dati, nel suo complesso, è pari a
1Mbps fullduplex con una copertura dai 10 ai 100 metri.

Una curiosità: "bluetooth" era il nome di un re danese vichingo chiamato


Harald Blatand. Blatand è stato poi tradotto in "Bluetooth". Harald
Blatand viene ricordato per aver unito i popoli di Danimarca e Norvegia.
L'idea odierna di Bluetooth è la stessa di allora. come si è riusciti a fare
dialogare due popolazioni diverse, questo sistema serve a far
comunicare apparecchi elettronici molto diversi tra loro attraverso uno
standard comune.

Il suo punto di forza è la possibilità per gli utenti di lavorare senza i limiti
imposti dai cavi. Invece di basarsi sugli infrarossi (IrDA), comodi ma con

79
il grosso svantaggio di non riuscire a far comunicare due dispositivi se
non sono allineati o senza ostacoli tra essi, il Bluetooth utilizza onde
radio che sono quindi in grado di attravesare ostacoli come muri o pareti
e che si muovono in ogni direzione.
Le tecnologie senza filo stanno prendendo sempre più piede e faranno
sempre più parte del nostro ambiente.
Telecomandi, reti Internet senza filo, domotica, cellulari con auricolari
senza filo..... molti dei fili presenti nelle nostre case stanno
scomparendo
L'indubbia comodità di queste soluzioni è che diventano importanti
possibilità per chi invece si trova, per uno stato di disabilità, in situazioni
di gravi difficoltà soprattutto motoria in cui si trae grosso giovamento dal
dover dipendere sempre meno dal collegamento di fili e cavi.
Il numero di apparecchiature che adotteranno questo tipo di tecnologie
sarà sempre più alto.
Rimane da inventare come portare l'energia elettrica senza filo, ma
questa per ora è fantascienza.

GSM/GPRS/UMTS
GSM (Global System for Mobile Communications), GPRS (General
Packet Radio Service) e UMTS (Universal Mobile Telecommunications
System) sono tecnologie utilizzate dai grandi operatori per fornire
connettività prevalentemente telefonica, con possibilità più o meno
limitate di trasmettere dati.
Rispettivamente il primo è il secondo standard di telefonia mobile. Oltre
alla trasmissione della voce, consente di inviare dati (SMS, fax, accesso
a Internet tramite WAP) alla velocità di 9600 baud; il secondo è Servizio
wireless per la trasmissione a pacchetto che promette velocità di
trasferimento da 56 fino a 114 kilobit per secondo e una connessione ad

80
Internet per telefoni cellulari e computer. L'alta velocità di trasmissione
permette agli utenti di prendere parte a video conferenze e interagire
con siti con contenuti multimediali utilizzando telefoni cellulari e
computer portatili; il terzo è la Terza generazione di trasmissione di
testo, voce, video, multimedia e dati a banda larga basata sulla
trasmissione a pachetti. Il trasferimento dei dati avviene ad una velocità
di 2 megabits al secondo e si basa sullo standard GSM Global System
for Mobile
L’uso delle rispettive frequenze è legato a un numero limitato di licenze.
La principale differenza tra GSM e GPRS/UMTS, dal punto di vista
dell’utente, sta nella banda disponibile e nell’essere o meno connessi in
modo continuo. All’utente, infatti, non interessano i dettagli della
connessione, che viene utilizzata sostanzialmente come una
connessione dial-up tradizionale (simile alla composizione di un numero
telefonico con un modem) verso un provider, con il vantaggio della
mobilità. La percentuale di copertura del territorio in Italia è quasi
completa per i servizi GSM e GPRS, ma è limitata per l’UMTS.

WLAN 802.11x
La famiglia di protocolli 802.11x, tra cui i più noti sono la sicurezza), è
spesso indicata in modo collettivo con la sigla Wi-Fi (Wireless Fidelity),
come se fossero sinonimi. In verità,Termine coniato e registrato dalla
Wi-Fi Alliance per descrivere le wireless local area network (WLAN) così
come stabilito dallo standard IEEE 802.11.

81
La Wi-Fi Alliance nata ufficialmente nel 2003, è un'organizzazione che,
alla sua fondazione, nel 1999, si chiamava WECA (Wireless Ethernet
Compatibility Alliance) e si preoccupa soprattutto di testare e verificare
che gli apparati wireless siano interoperabili tra di loro e rilascia, se i
tests sono positivi, un certificato di qualità (Wi-Fi Interoperability
Certificate).

In molti testi, anche autorevoli, il termine Wi-Fi viene considerato come


acronimo di Wireless Fidelity ma gli stessi membri della Wi-Fi Alliance
hanno precisato in questo articolo che così non è sebbene non
scoraggino questa tendenza.
Sintomatica è la frase: "It is not an acronym. There is no meaning.",
cioè, "Non è un acronimo. Non ci sono significati."
Oggi anche autori di prestigio utilizzano il termine Wi-Fi in senso
generale, tuttavia è bene sapere che nel panorama delle tecnologie
WLAN esiste una proliferazione di protocolli proprietari, non conformi
agli standard (quindi non Wi-Fi), volti a incrementare le prestazioni
(maggiore portata/ banda passante). Tali varianti a volte non hanno altro
scopo che spremere maggiori prestazioni, magari a basso costo, mentre
in qualche caso hanno lo scopo di occupare spazio di mercato tentando
di anticipare standard futuri e di forzare la mano agli enti certificatori. Le
tipologie Wi-Fi più diffuse sono 802.11b (2,4 GHz e 11 Mbps, massimi
teorici di banda condivisa) e 802.11g (2,4 GHz e 54 Mbps di banda
condivisa), quest’ultimo sempre più diffuso anche perché, essendo più
recente, è affiancato da tecniche di sicurezza molto più efficaci.
L’802.11a (5 GHz, 54 Mbps), dopo un’iniziale diffusione in America, ha
perso terreno, anche a seguito della portata inferiore (al crescere della
frequenza, infatti, diminuisce la distanza a cui il segnale può essere
ricevuto). L’accesso alla rete avviene solitamente attraverso un access
point, che ha la funzione di interconnessione tra la rete radio e la rete
cablata e si comporta da concentratore (equivalente a un hub) tra la rete
e le stazioni wireless. L’access point realizza anche le funzioni di
sicurezza per consentire l’accesso alla rete ai soli utenti autorizzati
(attraverso tecniche di autenticazione e cifratura). Le reti wireless
basate su uno o più access point sono chiamate reti a infrastruttura.
82
Un’altra tipologia possibile, scarsamente utilizzata, è quella delle reti ad-
hoc, dove gli host (tipicamente due o tre) comunicano tra di loro
direttamente in modo paritetico (peer-to-peer), senza access point. Sugli
host di tipo desktop, la connettività wireless è realizzata tramite apposite
interfacce WLAN (principalmente schede PCI e dispositivi USB), mentre
sui computer portatili l’interfaccia wireless è integrata sulla scheda
madre o realizzata attraverso una mini-scheda PCI interna, tramite
scheda PC Card aggiuntiva o tramite dongle USB. Sui palmari,
l’interfaccia wireless può essere integrata o aggiunta tramite una
schedina di espansione. L’area di copertura di un access point varia
dalle onde radio (cemento, metallo, acqua, carta, corpi umani, ecc.),
della conformazione del terreno e della potenza di emissione effettiva
(ottenuta moltiplicando la potenza in uscita per il guadagno dell’antenna
depurata dall’eventuale attenuazione del cavo d’antenna), potenza ERP
(Effective Radiated Power) che è limitata da normative nazionali. Per
esempio, in Italia la potenza effettiva utilizzabile è assai inferiore che
negli USA. Il guadagno di un’antenna corrisponde a una maggiore
direzionalità, ovvero al fatto che l'antenna non irradia a 360 gradi, ma
concentra le emissioni in un più ristretto angolo: anche le antenne
“omnidirezionali”, in realtà, sono direzionali: non tanto per il fatto che
irradiano più a Est che a Nord, ma nel senso che evitano d’irradiare
verso l’alto oppure verso il basso, “concentrando” il segnale attorno
all'orizzonte.

83
Un access point di fascia medio-bassa ha una potenza d’uscita tipica di
30 mw, che sale al massimo di 100 mw per i modelli di livello

84
professionale. La copertura tipica, senza antenne direzionali, è
dell’ordine di parecchie decine di metri, ma occorre tenere presente che
già dopo pochi metri, in appartamenti e uffici, il segnale diminuisce e,
per mantenere stabile il collegamento, la velocità di trasmissione (quindi
la larghezza di banda) viene fatta a scendere, scalando
progressivamente verso velocità più basse e modulazioni più robuste.
La banda reale, inoltre, è dell’ordine di un terzo di quella massima
nominale (signalling rate), che è solo teorica perché calcolata allo strato
fisico. Inoltre, occorre ricordarsi che tutti gli utenti che condividono un
access point si dividono la banda, dato che non possono trasmettere
contemporaneamente.

Una rete wireless con un solo access point si chiama Basic Service Set
(BSS); una con più access point prende il nome di Extended Service
Set. In Italia, le connessioni 802.11b e 802.11g possono scegliere la
frequenza centrale di trasmissione fra 13 canali, ma più canali
trasmettono sovrapponendosi parzialmente. Per non interferire, gli AP di
un ESS debbono utilizzare canali distanti tra loro di almeno cinque
85
posizioni; ad esempio, in USA si possono usare i canali 1, 6 e 11,
mentre in Italia è preferibile utilizzare i canali 1, 7 e 13.

Bluetooth
La tecnologia Bluetooth è uno standard industriale, sviluppato
inizialmente da Ericsson e successivamente formalizzato, da
un’associazione di produttori, che comprende anche Sony Ericsson,
IBM, Toshiba, Nokia , Intel ed altri.
Questo sistema di comunicazione, deve il suo nome al re Harald I, di
Danimarca. Fu un abile diplomatico e quindi il suo nome, è sicuramente
adatto ad un sistema, che permette di far comunicare, dei dispositivi
completamente diversi fra loro.
Bluetooth, infatti, è un sistema standardizzato, che permette lo scambio
di dati e informazioni tra dispositivi completamente diversi.
Come mezzo di trasmissione, sono utilizzate le onde radio e, i dispositivi
che possono essere connessi sono fra i più disparati. Per esempio:
auricolari, computer portatili, telefoni cellulari, PDA (Personal Digital
Assistant), ecc. Alcuni produttori d’automobili stanno integrando questa
tecnologia nelle proprie autovetture, installando dei vivavoce Bluetooth
integrati nell’autoradio.
Il raggio d’azione di questi dispositivi è ridotto, va dai dieci ai cento
metri, secondo la classe del dispositivo che stiamo utilizzando.
Un raggio d’azione di cento metri, secondo me, non è assolutamente
poco. Esistono anche antenne, particolarmente potenti che possono
raggiungere distanze fino a 800 metri/1 chilometro. Queste distanze
sono più che sufficienti per poter agire indisturbati.

Irda
L’IrDA (Infrared Data Association) definisce gli standard dei protocolli di
comunicazione per comunicazioni a infrarossi a breve distanza (dalle
decine di cm a pochi metri). Data la scomodità di dover allineare i

86
trasduttori, che sono direzionali, l’IrDA ha progressivamente ceduto il
passo a Bluetooth.

Sicurezza delle tecnologie wireless


Esistono standard che riguardano l'interconnessione tramite infrarossi in
via bidirezionale tra dispositivi posizionati da 20 o 30 cm a un metro tra
loro e consente di scambiare files o altri dati in formato digitale
utilizzando una tecnologia a basso costo, veloce e non suscettibile ad
interferenze radio.
L'IrDA è sfruttata per cellulari, computer portatili, palmari, stampanti che
si scambiano informazioni senza dover utilizzare cavi di collegamento.

La tecnologia ad infrarossi è usata anche nelle LAN e si trova in tre


forme differenti:
- SIR (Serial InfraRed)che ha una velocità fino a 115.2 Kbps;
- MIR (Medium o Intermediate InfraRed) che ha una velocità fino a 1.5
Mbps;
- FIR (Fast InfraRed) che ha una velocità fino a 4 Mbps.
La caratteristica fondamentale delle tecnologie wireless è che il segnale
non è confinato all’interno di un cavo o di una fibra ottica (ancora più
sicura). Questo è un punto di forza dal punto di vista della facilità
d’installazione e usabilità, ma nello stesso tempo è la fonte principale
dei problemi di sicurezza, che possono essere raggruppati nelle
seguenti categorie:
1. accesso ai dati in transito tra due nodi
2. accesso non autorizzato alla rete
3. analisi del traffico in vista di un attacco ai meccanismi di protezione
(autenticazione e cifratura)
4. denial of service.

Le antenne direzionali possono raggiungere guadagni intorno ai 30 db


(antenna parabolica di 1,5 m di diametro, angolo d’irradiazione di circa
5° verticali e orizzontali, prezzo intorno ai 400 dollari). Le normali
87
antenne fornite con gli access point e con le interfacce wireless PCI e
USB hanno un guadagno tipico di 2,2 db (circa il 66% di guadagno), il
che dà l’idea dell’estensione di portata (e potenziale intercettazione)
ottenibile con antenne aggiuntive, che permettono di restare ben al di
fuori dell’area sorvegliata. Il cosiddetto war driving (così chiamato per
assonanza con il war dialing, la caccia ai modem degli anni ’80),
divenuto popolare nel 2001, consiste nel percorrere le strade (ma esiste
anche il war flying per chi ama volare) alla ricerca di segnali Wi-Fi
accessibili

Accessi alle rete


Vulnerablità del wireless è senza dubbio la possibilità di poter essere
“craccate” ovvero poter dare il segnale di rete a persone non
autorizzate!
Una delle caratteristiche delle tecnologie wireless è la possibilità di
stabilire rapidamente una connessione senza necessità di
88
configurazione: un utente arriva in un locale, accende il portatile e,
grazie anche al protocollo DHCP (Dynamic Host Configuration Protocol)
che assegna dinamicamente l’indirizzo IP, è immediatamente in rete.
Tale situazione accade se l’access point è stato installato senza
configurare alcuna opzione di sicurezza. Questo è un errore di gestione
che permette a chiunque, utenti autorizzati ed estranei, di arrivare nel
raggio d’azione dell’access point e accedere immediatamente alla rete,
con la possibilità di attaccare gli host locali o di utilizzare in modo
indebito l’accesso a Internet, esponendo l’azienda (o il privato cittadino)
alle possibili conseguenze legali del suo operato. Per evitare che questo
accada, si devono utilizzare meccanismi di autenticazione per l’accesso
alla rete.
1. L’apparato è preconfigurato, e la sua autenticazione avviene in
modo trasparente per l’utente; è il caso della telefonia cellulare, in
cui la SIM (Subscriber Identity Module, una Smart Card di
dimensioni ridotte) contiene le credenziali che vengono utilizzate
per l’accesso autenticato alla rete e per la tariffazione. Un numero
PIN di identificazione personale, se attivato, impedisce che il
terminale sia messo in funzione da estranei.
2. L’apparato viene registrato sull’access point in una fase iniziale; è il
meccanismo utilizzato, ad esempio, dai sistemi cordless DECT
(Digital Enhanced Cordless Telecommunications).
3. L’utente utilizza le proprie credenziali al momento dell’accesso; è il
meccanismo adottato dal protocollo IEEE 802.1x, peraltro utilizzabile
solo dove sia possibile per un utente inserire credenziali.
Una soluzione più semplice, che offre un buon livello di sicurezza
senza richiedere un server RADIUS (Remote Authentication Dial-in
User Service) o analogo per l’autenticazione, è l’uso del WPA (Wi-Fi
Protected Access) o, meglio ancora, dello standard 802.11i, di cui
WPA realizza la maggior parte delle funzioni (WPA2 implementa
802.11i al completo). Rispetto alla WEP (Wired Equivalent Privacy),
di cui tutti i dispositivi 802.11 sono dotati e che si è rivelata
inaffidabile sotto gli attacchi dei cracker, WPA e 802.11i utilizzano
tecniche di autenticazione e cifratura molto più sicure; inoltre,

89
possono essere affiancate da autenticazione più forte tramite 802.1x.
In caso contrario l’accesso non è protetto.
Anche l’utilizzo dei valori di default iniziali per SSID (il nome della rete
wireless), nome utente e password, che dovrebbero essere utilizzati
per la configurazione iniziale e poi cambiati, equivale a nessuna
protezione. Questo è comune per gli apparati Wi-Fi, che nascondono
la loro complessità dietro la possibilità di utilizzo immediato out of the
box, senza configurazione e senza sicurezza. Attacco ai meccanismi
di protezione. Non sempre la presenza e l’utilizzo di meccanismi di
autenticazione e cifratura sono una garanzia di protezione del traffico.
Un protocollo può, infatti, presentare punti deboli negli algoritmi usati
o nel modo in cui sono implementati, persino in presenza di chiavi di
cifratura di lunghezza adeguata. Secondo le cronache,
l’indebolimento dell’algoritmo A5/AX (lo stream cipher che dovrebbe
proteggere le trasmissioni GSM) è stato intenzionale, così da tenere
le porte aperte alle forze di sicurezza (lo stream cipher è un tipo di
cifrario molto veloce. Di fatto, esistono sul mercato apparecchiature
(come i GSM Interceptor) che consentono di effettuare questi tipi di
intrusioni, anche se il prezzo li rende poco accessibili, a differenza
delle tecnologie disponibili per il mondo Wi-Fi. Da alcuni anni sono
state introdotte sul mercato delle SIM che hanno la capacità di
memorizzare il contenuto di più SIM convenzionali, permettendo al
possessore di alternare differenti numeri di telefono. Per rendere
possibile lo spostamento dei dati dalle SIM originali a quella
“multipla”, si trova in vendita in vari mercatini, per cifre vicine ai 70
Euro, un kit composto da un lettore di SIM, uno scrittore di SIM e un
programma di trasferimento. Tale programma non è altro che un
“craccatore” che, sfruttando le debolezze dell'algoritmo A5/AX, riesce
a identificare la chiave segreta contenuta nella SIM originale
esponendola a video e permettendone la riprogrammazione nella
nuova SIM (in tempi che vanno dall'ora alla mezza giornata, a
seconda della fortuna e della velocità del PC usato).Ovvio che la
clonazione delle schede SIM è sempre alla portata di tutti.

90
Wi-Fi
Le WLAN hanno attraversato un periodo di cattiva fama quando l’unico
protocollo di sicurezza incluso negli apparati era il WEP, violabile con
relativa facilità. Chi non si è lasciato scoraggiare, nei primi anni del Wi-
Fi, ha adottato efficaci contromisure incapsulando i pacchetti (cifrati) nel
tunnel di una VPN (rete privata virtuale), o ha utilizzato un server di
autenticazione. Dal 2003, le vulnerabilità dei sitemi Wi-fi sono migliorate
di molto(oggi è disponibile il WPA2, che implementa l’802.11i). Il WEP è
un esempio di cattivo utilizzo di un algoritmo di crittografia all’interno di
un protocollo, tanto da renderlo sostanzialmente inefficace (WEP
protegge dai normali utenti, ma non dal cracker; tra l’altro, un cracker
ben attrezzato è in grado di attaccare con successo anche WPA e
WPA2). Lo standard 802.11 prevede, come meccanismo nativo,
l’utilizzo di un protocollo di cifratura di strato 2 (data link) chiamato WEP
(Wired Equivalent Privacy), nell’intento di conferire al wireless la stessa
sicurezza di un collegamento via filo. Per tale cifratura, si utilizza
l’algoritmo RC4, uno stream cipher che utilizza una chiave simmetrica di
40 o 104 bit con un IV (Initialization Vector) di 24 bit (RC4
permetterebbe chiavi fino a 2048 bit), e che si basa essenzialmente su
un’operazione XOR (OR esclusivo) fra dati e stream generato.

91
La chiave RC4 deve essere la base per una buona sicurezza; in
assenza di tale accordo il traffico non può essere protetto, e si svolge in
chiaro. Il vero problema, tuttavia, è che WEP utilizza RC4 in modo
scorretto, con 1/4 di soli 24 bit; ciò significa che è possibile raccogliere
nel tempo traffico diverso legato allo stesso /4 e, per le caratteristiche di
tale protocollo, è possibile quindi decifrare il traffico. In una rete a traffico
intenso, il tempo necessario è di alcune ore. Le caratteristiche di RC4
sono note, com’è noto l’uso corretto dell’algoritmo per evitare tali
attacchi. L’errore è stato commesso nel progetto del protocollo WEP, e
ha la conseguenza di consentire la decifratura del traffico
indipendentemente dalla lunghezza della chiave utilizzata. La scoperta
di un errore di progetto di un protocollo, dopo la vendita di una gran
quantità di prodotti che lo utilizzano, è un problema difficile da risolvere.
Se si modifica il protocollo, si deve ripetere il processo di
standardizzazione e affrontare le possibili incompatibilità con la versione
sul mercato. Ovviamente aumentando il metodo di sicurezza aumentano
anche le specifiche per i protocolli tanto da farne utilizzare il protocollo
802.1x e l’anticipazione del protocollo 802.11i, poi pubblicato nel 2004,
attraverso il WPA (Wi-Fi Protected Access) del 2003, che utilizza
robuste tecniche crittografiche (come l’uso di chiavi dinamiche) per
superare i problemi del WEP. Finalmente una “svolta”.

92
WPA può funzionare in due modi, secondo il tipo di rete. Nelle abitazioni
e installazioni senza grandi problemi di sicurezza, che non usano server
di autenticazione, impiega una preshared key, una chiave
preventivamente condivisa che viene impostata all’atto della
configurazione dei dispositivi (access point e schede wireless). Nella
modalità gestita, WPA utilizza 802.1x più EAP (Extensible
Authentication Protocol) e un Authentication Server (come RADIUS): il
client, attraverso l’access point, negozia con il server usando transazioni
sicure per lo scambio delle chiavi di sessione. Un altro vantaggio di
802.11i (già anticipato in alcuni dispositivi WPA) è l’adozione della più
efficace cifratura simmetrica AES DES e 3DES (Advanced Encryption
Standard, data encription system), realizzata in hardware.

Attacco al bluetooth
Dopo aver introdotto l'architettura Bluetooth, siamo ora in grado di
analizzare molte delle tecniche di attacco e difesa contro dispositivi che
utilizzano questo standard di comunicazione senza fili. Dal 2003, anno
della pubblicazione da parte di alcuni ricercatori (Martin Herfurt, Adam
Laurie, Bruce Potter ed altri) delle prime vulnerabilità, sono stati scoperti
numerosi problemi sia nelle funzionalità di discovery tra dispositivi che
nei servizi offerti dai singoli apparecchi; queste mancanze nei casi più
gravi possono addirittura permette la sottrazione di informazioni
personali ed il controllo completo dei dispositivi elettronici. I costruttori
minimizzano ma è ormai evidente come molti degli stack Bluetooth,
presenti in commercio anche in Italia, soffrono di questi problemi. In
93
questo articolo vedremo attacchi di tipo Bluejacking, la forzatura del
Discovery mode, vulnerabilità come BlueSnarf e BlueSnarf++, BlueBug
e Blooover e analizzeremo un possibile attacco con il software Blooover
2. Iniziamo con il Bluejacking, il sistema per ottenere il riconoscimento
del dispositivo. Bluejacking Bluetooth cerca di rendere le interazioni tra
dispositivi quanto più semplice per l'utente. Durante il discovery di altri
apparecchi, per esempio quando vogliamo associare un telefono con il
nostro computer, viene scambiato il nome identificativo dei device.
Questa caratteristica, che semplifica l'utilizzo, è intrinsecamente
pericolosa. Il nome del dispositivo è infatti un campo di testo che può
contenere una stringa maggiore o uguale di 248 caratteri; utilizzando
questa stringa è possibile scambiare messaggi tra dispositivi. Sebbene
questa caratteristica è spesso usata per conoscere e socializzare con
nuove persone dotate anch'essi di apparecchi Bluetooth (toothing),
abbinata a tecniche di social engineering può compromettere una delle
fasi più delicate: quella del pairing tra dispositivi. L'utente inesperto
ricevendo un messaggio di questo tipo: "Problemi alla rete, digita 1234
per associare il telefono alla cella" potrebbe essere tratto in
inganno,facendo diventare trusted un dispositivo sconosciuto che quindi
acquisirebbe tutti i privilegi necessari a compromettere i dati e le
comunicazioni. Non dobbiamo stupirci se attacchi così semplici spesso
sono i più efficaci: le tecniche di phishing, in ambito web, sfruttano la
stessa inesperienza degli utenti. La popolarità di questo tipo di abuso ha
dato luogo allo sviluppo di una serie di software appositi (Freejack,
Meeting, Bluejack, ecc.) usati spesso dai più giovani nei locali di
divertimento.
Altra tecnica è l'attacco BlueSnarf che è probabilmente l'attacco più
famoso attuabile tramite Bluetooth, poiché è il problema di sicurezza più
importante relativo ai dispositivi Bluetooth. BlueSnarf è stato identificato
da Marcel Holtmann nel settembre 2003. Indipendentemente, Adam
Laurie ha scoperto la vulnerabilità stessa nel novembre 2003 e postato il
problema su Bugtraq e informato i produttori dei dispositivi vulnerabili.
Metodo

Al fine di eseguire un attacco BlueSnarf, l'attaccante ha bisogno di


connettersi al OBEX Push Profile (OPP), che è stato creato per il facile
scambio di biglietti da visita e altri oggetti. Nella maggior parte dei casi,
questo servizio non richiede l'autenticazione. L' autenticazione
mancante non è un problema per OBEX Push, finché tutto è
94
implementato correttamente. L'attacco BlueSnarf si connette a un OBEX
Push bersaglio e OBEX esegue una richiesta GET per nomi noti come
'Telecom / pb.vcf' per la rubrica dei dispositivi o 'telecom / cal.vcs' per il
file di calendario dei dispositivi. (Ci sono molti altri nomi di file nella
Specifica IrMC). In altri casi un utente malintenzionato può ottenere
qualsiasi file di cui il nome sia noto o indovinato

Wireless DoS
La forma principale di DoS per le reti wireless consiste nel disturbare le
trasmissioni, un tipo di attacco relativamente facile da attuare. Sono
reperibili in commercio, ad esempio, diversi jammer che impediscono le
comunicazioni dei cellulari, sia allo scopo di non essere disturbati dai
loro squilli, sia per la difesa da attacchi terroristici che usano il cellulare
come telecomando. In alcuni nazioni, l’uso di tali apparecchi può
costituire una violazione delle leggi nazionali. Per una rete Wi-Fi, dato
che la banda dei 2,4 GHz è utilizzata anche da altri apparati come forni
a microonde, cordless e altri dispositivi, un attaccante può inondare
l’area di radioonde e impedire il funzionamento della rete. Oltre ad
attaccare lo strato fisico con le interferenze radio, si possono attuare
altri tipi di attacchi DoS inondando gli access point di pacchetti di
disassociazione e deautenticazione spoofed (con indirizzo del mittente
falsificate), così da interrompere le connessioni in atto. Altri esempi di
attacchi DoS includono l’invio di pacchetti di autenticazione mal formati,
la saturazione dei buffer di associazione e di autenticazione degli
access point e la cancellazione dei frame, ossia dei pacchetti trasmessi
dalla rete (si corrompe un frame di passaggio, che verrà scartato dal
destinatario, e si invia un ACK al mittente), ma ne esistono altri.
Una rete Wi-Fi collegata a Internet ha tutti i problemi di sicurezza di una
rete cablata, più quelli peculiari delle reti wireless. Se l’intera rete è
wireless, l’architettura sarà simile a quella di una rete cablata, per
esempio con un modem ADSL, un router, un firewall, uno switch e uno o
più access point. In una rete domestica tutti gli elementi possono essere
95
integrati in un singolo apparecchio. In una rete aziendale è probabile
che esista una rete cablata a cui viene aggiunta la rete wireless, anche
per sfruttare la mobilità di portatili, PDA e telefoni IP. In tal caso le due
reti, cablata e wireless, presentano caratteristiche diverse di sicurezza
(la rete wireless è intrinsecamente meno sicura e soggetta a una più
vasta tipologia di attacchi). E’ quindi consigliabile interporre un firewall
che regoli il traffico in transito tra le due reti, per proteggere la LAN dalla
WLAN. Per le grandi reti e le installazioni con alti requisiti di sicurezza, il
firewall può essere associato a un server di autenticazione (per
consentire l’accesso dalla WLAN alla LAN agli utenti con credenziali) o
fungere da server VPN, in modo che il traffico dagli host wireless,
attraverso l’access point fino alla LAN, sia autenticato e cifrato. Un
sommario delle misure consigliabili per non esporre una rete Wi-Fi a
rischi superflui è il seguente.

 Installare un firewall (oggi, per la maggior parte, sono del tipo


Stateful Packet Inspection e, in una certa misura, proteggono da
un assortimento di tipi di intrusione ben noti) e tenerlo aggiornato.
 Installare antivirus sui computer e tenerli aggiornati pressoché in
tempo reale; adottare le dovute cautele nel gestire e-mail e
allegati.
 Installare antispyware sui computer, aggiornati di frequente (un
trojan o cavallo di Troia, installato tramite spyware, worm, ecc.
permette a un cracker di controllare il computer e di rimappare la
navigazione in rete, con conseguenze potenzialmente disastrose).
 Tenere backup regolari in luogo sicuro.
 Attivare gli strumenti di autenticazione e cifratura, come minimo
WPA con chiavi condivise. Chi abbia ancora componenti con il
solo supporto WEP può usarli, sapendo che WEP tiene lontani gli
utenti occasionali, ma non i cracker. Per un’azienda medio-grande,
è consigliabile passare a componenti che supportino 802.11i e
attivarne le funzioni.
 Modificare l’SSID (Service Set Identifier) di default come nome
della rete wireless.
 Modificare user e password di default delle utility di configurazione
di access point e schede.
96
 Usare password non ovvie, secondo le regole già citate nelle
lezioni precedenti.
 Non fare affidamento sul filtro degli indirizzi MAC, che non
costituisce una protezione efficace.
 E’ superfluo disattivare il segnale beacon degli access point che
trasmette l’SSID come un radiofaro; utility come Kismet lo
scoprono ugualmente.
 Se avete dati segreti che non sono ben protetti da crittografia,
teneteli su supporti rimovibili da estrarre quando vi allontanate dal
computer.
 Un’azienda con dati sensibili da proteggere dovrebbe considerare
l’uso di VPN, o altre tecniche di cifratura, per una protezione totale
delle connessioni wireless; anche l’attivazione di SSH, SSL o TLS
e l’uso di certificati per l’autenticazione è una misura efficace. WPA
o WPA2, più l’uso di un server di autenticazione (RADIUS,
Kerberos, ecc.), servono altrettanto bene allo scopo.
 Regolare la potenza d’uscita degli access point al livello
necessario, evitando eccessive emissioni all’esterno dell’area da
coprire. E’ preferibile evitare di collocare gli access point sul
perimetro esterno.
 Spegnere il modem o il router ADSL quando nessuno lo usa.
 Spegnere i computer quando non sono in uso.
 Solo se si usa il WEP, tenere sempre acceso l’access point (ma
spegnere il modem/router) per evitare il reset dell’IV (Initialization
Vector).
 Non far conto sulle distanze per sentirsi al sicuro: le antenne
direzionali coprono chilometri.
 Negli ambienti di lavoro, proteggere l’accesso fisico
all’infrastruttura: server, router, switch, access point, cablaggi,
computer, ecc.
 Negli ambienti di lavoro, monitorare la rete tenendo sotto controllo i
file di log e installando uno o più Intrusion Detection System(il
vasto assortimento di software gratuito, anche per le funzioni di
sicurezza, in ambiente Linux permette di sperimentare diverse
linee di difesa).
97
 Ultimo, ma in realtà primo principio: stabilire gli obiettivi e le
politiche di sicurezza appropriate e metterle in pratica.

98
Domande di comprensione del capitolo 6
Rispondere alle domande che seguono per verificare di aver appreso
tutti i concetti illustrati in questo capitolo.
Le risposte alle domande sono riportate nell’allegato A alla fine del libro.
Se qualche risposta data dovesse risultare errata, si consiglia di
rivedere i concetti specifici dove si sono commessi errori.
1. Cosa indica la sigla UMTS?
a. Universal Member Television System Universal Mobile
b. Universal Mobile Telecommunications System g
c. United Mobile Telecommunication System
2. Come viene definita una rete locale senza fili?
a. PAN
b. VPN
c. Wi-FI
d. WLAN g
3. Quale dispositivo permette l’accesso ad una rete senza fili?
a. Un router wireless
b. Un ripetitore wireless
c. Un access point g
4. Quale sigla identifica lo standard wireless in generale?
a. 802.11x g
b. 802.3
c. 802.11g
d. 811.g
5. Attuallmente, quale protocollo garantisce un’efficiente protezione
per l’accesso ad una rete senza fili??
a. WEP
b. WAP
c. WPA

99
Capitolo 7: Autenticazione e
controllo degli accessi

Principi generali di autenticazione e controllo degli


accessi
L'autenticazione è il processo attraverso il quale viene verificata l'identità
di un utente che vuole accedere ad un computer o ad una una rete. E’ il
sistema che verifica, effettivamente, che un individuo è chi sostiene di
essere. L'autenticazione è diversa dall'identificazione (la determinazione
che un individuo sia conosciuto o meno dal sistema) e
dall'autorizzazione (il conferimento ad un utente del diritto ad accedere a
specifiche risorse del sistema, sulla base della sua identità).
Ovviamente non è un processo rigoroso e può essere più o meno sicuro
e quindi varia a seconda di come è configurato il sistema.
Un buon processo di autenticazione ricorre normalmente ai seguenti tre
fattori:
1. Qualcosa che solo l'utente conosce, come una frase, un numero o
un fatto (per esempio, il nome della madre prima del matrimonio).
2. Qualcosa che solo l'utente possiede, come una chiave, una
scheda magnetica, un dispositivo di autenticazione, che generano
una password unica e irripetibile, o una particolare risposta al
quesito posto dal server.
3. Qualcosa che solo l'utente è, e che normalmente dipende da una
qualche caratteristica fisica peculiare. Questa tecnica rientra sotto
il nome di biometria, e gli esempi più significativi di utilizzo di
questo tipo di autenticazione comprendono il riconoscimento delle
impronte digitali, la struttura dell'iride oculare, la forma della mano,
il riconoscimento del timbro della voce, il riconoscimento facciale, il

100
modo in cui l'utente digita sulla tastiera o il modo in cui l'utente
firma (la velocità, la pressione della mano e lo stile di scrittura).
Questi fattori di autenticazione sono stati elencati, in base al livello di
difficoltà che è necessario affrontare per aggirarli. Ognuno di questi
metodi offre un determinato grado di sicurezza, ma ognuno presenta
anche i propri problemi e le proprie debolezze.

Non è detto che“utente”sia necessariamente una persona; infatti è


possibile autenticare ad esempio un applicativo, un calcolatore, un nodo
di rete, un pacchetto IP ed altre numerose e disparate tipologie di entità.
Si possono distinguere due tipi di autenticazione:

 Autenticazione locale
 Autenticazione di rete

Una volta che un utente è stato autenticato, il passo successivo è


assicurare che possa accedere solo alle risorse per cui è autorizzato.
Ciò avviene implementando controlli di accesso, permessi e privilegi
secondo il modello utilizzato.

Autenticazione con password


La password è l'insieme di caratteri alfanumerici, di lunghezza variabile,
che immessa in un sistema permette l'accesso alla persona che la
possiede. La sicurezza in questo sistema di identificazione può essere
compromessa per due motivi:

101
Le password possono essere facilmente rubate, lette trafugate e
utilizzate da un soggetto diverso rispetto al legittimo proprietario.
Un hacker può compiere, grazie a specifici programmi, un attacco (Brute
Force Attack o Dictionary Based Attack) che ha come fine quello di
impossessarsi della password corretta di un utente mediante un ingente
numero di tentativi svolti in automatico dal programma.
Per ovviare al primo problema le soluzioni sono semplici ed elementari,
le password devono essere tenute nascoste, non scritte su fogli o
database di facile accesso, inoltre occorre evitare l'impiego di personal
computer che permettano la memorizzazione delle password e degli
identificativi immessi o almeno dove possibile non permettere la
registrazione della password. Inoltre per evitare di essere trafugate
durante la trasmissione spesso vengono criptate.
Un'adeguata politica di gestione delle passwords (rinnovi, ripetibilità,
lunghezza, caratteri utilizzabili) può contribuire a far crescere i tempi
necessari ad un hacker che voglia impadronirsi del diritto di accedere a
un sito.
Esistono dei meccanismi di cifratura che permettono soltanto di
“cammuffare” un’informazione senza prevedere una chiave per poter
successivamente decodficare il messaggio. Tali metodi sono detti
funzioni hash o cifratura a senso unico (one-way hash function) e sono
utilizzati per la cifratura delle password o per la generazione di impronte
digitali o message digest.
All’atto dell’autenticazione, l’hash calcolato in base alla password
digitata viene confrontato con quello registrato nel file; se coincidono,
l’utente è autenticato. Dato che dall’hash è impossibile ricostruire la
password, il sistema è relativamente sicuro, a meno di attacchi di forza
bruta o basati su dizionari delle parole più usate.

102
Per aggirare questa tecnica esistono dei programmi di keystroke
sniffing, ossia di registrazione dell’input di tastiera (i tasti battuti
dall’utente). Si tratta di un attacco tuttora possibile e praticato con una
certa probabilità di riuscita con mezzi hardware e software
all’avvanguardia. Un modo per eliminare il keystroke sniffing è stato la
protezione delle aree di memoria, affinché un programma non possa
visualizzare nella memoria di un altro programma. E’ una protezione
parziale che agisce sul software ma non sull’hardware di registrazione
collocati tra la tastiera e il connettore sul computer.
L’evoluzione degli attacchi ha portato al network sniffing,cioè
l'intercettazione e lettura di dati trasmessi in rete.

Tra tutti i dati inviati vi possono essere password e altro. Il difficile e'
selezionare la massa di dati intercettata, ma per questo possono essere
messi dei filtri ai dati per individuare piu' facilmente quello che puo'
servire.
A questo si è risposto con le password usate una volta sola, ossia
generate nel momento stesso in cui devono essere utilizzate e quindi
103
eliminate, e con la periodica variazione delle chiavi fisse, in modo da
limitare le possibilità che vengano scoperte.
Oltre a carpire password e altre informazioni per via tecnologica, un
metodo usato per conquistare l’accesso a un sistema è il social
engineering: (ovvero il fingersi ciò che non si è)indica l’insieme di
tecniche emodalità per carpire con l’inganno informazioni sull’identità
digitaledi una persona, tipicamente un suo identificativo d’utentee
relativa password, per poi accedere illegalmente alle sue
risorseinformatiche e compiere frodi a suo danno e a sua insaputa.
Ilsocial engineering è una delle modalità di attacco più facile epiù
diffusa, e si basa sulla disponibilità e buona fede dell’attaccato,talvolta
anche sulla sua ignoranza e sulla sua poca attenzionenel proteggere
dati e identità personali. Tipici esempi diattacco sono il cercare dati e
informazioni personali dai socialnetwork tipo Facebook e LinkedIn, dalle
quali derivare possibiliidentificativi e password (tipicamente i nomi dei
congiunti e degliinterlocutori della rete, i nomi delle località di
villeggiatura odelle auto-motocicli, le date di nascita e degli onomastici, i
nomidegli animali domestici, ecc.), oppure dai documenti cartacei
buttatinel cestino o lasciati sulle scrivanie o nei cassetti-armadi
(nonchiusi) in ufficio, il farsi dare “amichevolmente” identificativi e
passwordda colleghi fingendo di aver dimenticato la propria, il fingersial
call center un utente “importante”, magari imitando vocee
comportamento di una grande capo, con gravi urgenze perfarsi
assegnare un nuovo identificativo e relativa password, e cosìvia.
I criteri con cui dovrebbero essere scelte le password, almeno nei casi in
cui esse vengano stabilite dagli utenti sono importanti. Alcuni criteri di
base per scegliere una password sono i seguenti:
1. lunghezza: più la password è lunga, più è difficile da scoprire: la
lunghezza minima è di sei caratteri o più, secondo le dimensioni
del set di caratteri;
2. caratteri: idealmente una password dovrebbe contenere
minuscole, maiuscole, cifre e altri segni, in modo da aumentare il
numero di combinazioni (a parità di lunghezza) e di eludere gli
attacchi tramite dizionario;
104
3. contenuto: dovrebbero essere esclusi nomi di persone, luoghi,
aziende, animali, prodotti, targhe automobilistiche, date, parole del
dizionario e altri nomi o simboli riconducibili all’utente;
4. assegnazione: per diversi prodotti hardware e software non è
obbligatorio specificare nome utente e password: il primo passo
consiste quindi nell’assegnare tali valori;
5. periodo di validità: più frequente è la modifica della password,
minore è la probabilità di scoperta;
6. cambiamento: ogni password assegnata o scelta da un utente
dovrebbe essere nuova e differente;
7. valore di default: molti dispositivi sono posti in commercio con
nome utente e password impostati di default, da modificare all’atto
dell’installazione;
8. se una password dev’essere annotata o registrata, va conservata
al sicuro (in cassaforte, cifrata adeguatamente);
9. memorizzazione: in teoria una password dovrebbe essere lunga,
complicata e memorizzata dall’utente senza che ne esista alcuna
traccia scritta o registrata, ma una password troppo lunga e
complicata è meno sicura perché induce l’utente a scriverla su
foglietti facilmente accessibili; un’alternativa a password
complicate consiste nell’impiego di password mnemoniche molto
lunghe e di passphrase (insieme di parole brevi utilizzate come
singola password), che sono una buona protezione anche se
contengono parole di soli caratteri.

Un sistema dovrebbe rifiutare password che abbiano anche una sola


delle seguenti caratteristiche:
1. più corta di sei caratteri
2. contenente il nome dell’utente o una sua parte o le iniziali (anche
al contrario)
3. coincidente con una parola del dizionario, una parola con parte
delle lettere in maiuscolo, una parola scritta al contrario (magari
parte in maiuscolo), una parola con qualche lettera sostituita da un

105
carattere di controllo o da una cifra di ovvio significato (come 1 per
I o $ per S)
4. coniugazione di una parola del dizionario
5. tutta in minuscolo o maiuscolo
6. non contenente un mix di caratteri, cifre e punteggiatura
7. corrispondente a un gruppo di caratteri della tastiera (come
qwerty)
8. contenente solo cifre, una data o qualcosa di simile a una targa
automobilistica.

Usare nomi e parole facili da ricordare facilita gli attacchi tramite


dizionario che sono stati usati nel corso degli anni. Oltre a definire ed
applicare una serie di criteri tecnici e amministrativi per definire le
password, un’azienda dovrebbe stabilire una policy di sicurezza sulla
riservatezza delle password, in modo che in nessun caso esse vengano
rivelate a chicchessia.
Non vi deve essere in un’azienda un amministratore che possiede tutte
le password, poiché questo ridurebbe i criteri di sicurezza; vi dovrebbe
essere una divisione di compiti e di accesso alle informazioni che eviti
l’accentramento dei poteri e del controllo. Anche l’assunzione di un
dipendente (oppure l’inizio della collaborazione di un consulente) e la
cessazione del rapporto di lavoro o di consulenza rappresentano
momenti di assegnazione e di revoca delle password, da trattare
secondo policy ben definite. In particolare, alla cessazione, le utenze e
le autorizzazioni devono essere immediatamente revocate, per impedire
accessi non autorizzati alle risorse, remoti o di altro genere. Uno dei
luoghi dove in un’azienda un impiegato medio ha le sue password è
sotto il tappetino del mouse del suo posto di lavoro, oppure nel cassetto,
sotto il tavolo, sotto la tastiera.
Un altro sistema per aumentare la sicurezza all’interno di un’azienda è
quello di limitare il numero di tentativi di login e raggiunto il numero
massimo, il sistema dovrebbe bloccare ulteriori tentativi o richiedere una
nuova procedura di autenticazione. Tra i vari tentativi viene sempre
inserito un ritardo al fine di rallentare le operazioni di “password
106
guessing”. Un’altra misura precauzionale da adottare è la registrazione
in un file di log dei tentativi di accesso falliti. Un sistema dovrebbe
avvertire l’amministratore in presenza di numerosi tentativi di accesso
con password errata; dovrebbe avvertire anche un utente, al login, se al
suo nome utente sono associati parecchi tentativi di accesso falliti.

Autenticazione tramite token


Rispetto all’autenticazione mediante segreti, quella mediante token,
ovverooggetti fisici paragonabili a una “chiave”, presenta innumerevoli
ed interessantivantaggi:

 Non replicabilità: se viene sottratto un token, il possessore


tipicamente se ne accorge; inoltre, il token non può venire
“copiato” facilmente.
 Percezione fisica della sicurezza: come dicevamo, la psicologia
dell’utente associa molto più facilmente il token al concetto di
chiave a cui è abituato fin dalla nascita. Pertanto è istintivamente
molto più restio a consegnare un oggetto a terzi, piuttosto che a
condividere una parola chiave.
 Eliminazione delle problematiche relative alla “scelta della
password” (e, conseguentemente, dei fogliettini attaccati al
monitor!).
 Possibilità di brute forcing e guessing: tipicamente i token usano
meccanismi di challenge/response a base crittografica, pertanto i
tentativi di brute forcing sono sostanzialmente inapplicabili.
La parola token, nella sua accezzione generale, soprattutto in campo
informatico indica un “gettone”; un oggetto simile a una moneta usato da
un certo gruppo di utenti per un impiego secondo regole specifiche.
Esempi in tal senso sono i gettoni che viaggiano su una LAN Token
Ring (che usa appunto il gettone per assegnare il turno di trasmissione
ai vari computer collegati) e i gettoni impiegati dai dispositivi di
autenticazione.
La caratteristica principale è che l’utente in possesso del token può
essere autenticato dal computer. Se il token viene smarrito, rubato o
prestato, l’utente non ha modo di farsi autenticare, come un tempo
accadeva per una chiave.
107
Dal punto di vista della sicurezza, un token ha alcune proprietà
fondamentali:

 la persona dev’essere in possesso fisico del token per poterlo


usare
 un buon token è molto difficile da duplicare
 una persona può smarrire un token e con esso perdere l’accesso a
risorse critiche
 l’utente si accorge del furto di un token facendo l’inventario dei
token in suo possesso.

Rispetto a una password, un token offre notevoli benefici:

 elimina il fardello di dover ricordare password complicate


 può contenere un dato segreto molto più complesso di quanto sia
memorizzabile da una persona
 è spesso associato a un secondo fattore di autenticazione, come
un PIN memorizzato dall’utente
 un token attivo può generare un output diverso in diverse
circostanze oppure ad ogni utilizzo.

Oggi un token può assumere i formati e le dimensioni più svariate: una


carta di credito, una chiave, una calcolatrice, un anello e altro ancora.
Da un punto di vista funzionale, la principale distinzione è tra token
passivi, che si limitano a memorizzare dati, e token attivi, dotati di
capacità di elaborazione.

Token passivo
Una carta di credito e una scheda Bancomat prive di processore sono
esempi di token passivi, perché i dati identificativi sono registrati su una
striscia magnetica. Il lettore riceve sempre gli stessi dati a ogni
autenticazione; per sicurezza, può essere richiesto un secondo fattore di
identificazione, come il PIN per le schede Bancomat o il codice di
sicurezza stampato sul retro delle carte di credito.

108
I token passivi possono essere “chiavi” con una memoria di sola lettura,
schede con una certa struttura di perforazione, schede con codice a
barre e schede a prossimità, cioè dispositivi a induzione che rispondono
con un certo segnale quando avvicinati al lettore. Tali tipologie sono
ormai obsolete.

Token attivo
A differenza dei token passivi, quelli attivi non trasmettono il proprio dato
segreto per autenticare l’utente, ma lo utilizzano per qualche calcolo,
come la generazione di una one-time password, cioè una password
usata una volta sola (e quindi ogni volta diversa).

109
A questi si sono aggiunti numerosi prodotti basati sulla crittografia
asimmetrica e i certificati a chiave pubblica, sotto forma di Smart Card,
chiavi USB e altro. I token attivi usano solitamente tecniche
crittografiche che li rendono immuni da intercettazioni e replay dei
messaggi. Ogni volta che l’utente si connette per autenticarsi, vengono
generati messaggi diversi, in modo da vanificare la registrazione e la
ripetizione dei messaggi.

110
Autenticazione tramite PIN
Il punto debole dei token è che possono essere rubati (oppure “presi a
prestito”) e utilizzati per commettere un crimine. La soluzione comune è
di associare al token un PIN che ostacoli l’uso del token almeno per il
tempo necessario ad accorgersi del furto e reimpostare il server in modo
che non accetti le password di quel token.

Autenticazione con Challenge


Una variante di token di autenticazione utilizza il cosiddetto “challenge-
response”.
Il server invia al client un problema (challenge), la cui risposta può
esseregenerata sulla base del segreto o della credenziale che il client
ha. Ad esempio,se si usasse per l’autenticazione una smart card con
una chiave privata di cifratura,il server potrebbe inviare un piccolo testo
e aspettarsi che il client lo cifricon la sua chiave privata, verificandolo
quindi con la chiave pubblica. Questetecniche servono per evitare il

111
riutilizzo delle credenziali mediante attacchi direplay, in cui l’aggressore
si limita a ripetere lo scambio di messaggi avvenutoin passato tra client
e server.
Al momento del login, il token riceve dal server un dato (challenge, ossia
sfida) e lo elabora, utilizzando il proprio dato segreto, per fornire la
risposta (response) che attesta la corretta identità dell’utente.

Biometria
La biometria è la scienza che utilizza tecnologie e metodi per
identificareunivocamente gli esseri umani attraverso l'uso discriminante
delle lorocaratteristiche fisiche e comportamentali.
Essa è per lo più utilizzata per risolvere problemi di controllo degli
accessi,fornendo un’alternativa più sicura ai tradizionali metodi di
autenticazione.
La biometria tenta di risolvere i punti deboli degli attuali sistemi di
accesso:
• debolezza delle password: l'utilizzo di password deboli è purtroppo
un problema molto comune, inoltre è spesso poco sentito da parte
degli utenti che tendono a ignorare e sottovalutare il problema.
Queste due caratteristiche rendono tale problema molto delicato ai
fini della sicurezza di un sistema di accesso. L'utilizzo di password
facilmente individuabili può consentire infatti ad una terza persona di
assumere l'identità di un altro soggetto agli occhi del sistema,
permettendo a quest'ultimo di operare con gli stessi privilegi del
soggetto realmente autorizzato. Ciò può implicare rischi per la
sicurezza sia per il sistema informatico in sé, sia per la sicurezza
personale e delle comunicazioni del soggetto originale;
• credenziali di accesso condivise: questo è un altro caso molto
comune, infatti capita spesso che si possano trovare gruppi di utenti
che condividono credenziali di autenticazione tra di loro;
• perdita delle credenziali: è sempre possibile perdere le credenziali se
queste sono indipendenti dal soggetto che servono ad autenticare,
siano esse password oppure oggetti come badge e tesserini
magnetici o RFID.
L’idea dell’utilizzo della biometria per l’identificazione è quella
diutilizzare fattori unici associati alla fisicità del soggetto o al suo modo
diesprimersi (come l’impronta della voce, la calligrafia, ecc...).
112
Per molti aspetti, i dati biometrici possono essere considerati come
dellevere e proprie chiavi; il sistema li considera, infatti, come
sequenzeunivoche di bit. Ciò è spesso ignorato dai progettisti che
affidano lasicurezza del loro sistema informatico alla biometria. I
progettisti possonoessere portati a credere che, essendo difficile da
replicare la sorgente dellamisura biometrica (l'impronta, la voce ecc...), il
sistema risulta essere "piùsicuro". Tale ragionamento è scorretto, in
quanto, un sistema biometricosoffre comunque dei problemi
fondamentali di tutti i sistemi informatici.
Se infatti le credenziali vengono salvate sottoforma di bit e questi,
seintercettati e copiati, rendono la biometria debole come qualunque
altrotipo di identificazione.
Le caratteristiche fisiche utilizzate per l’autenticazione biometrica sono
diverse:
1. Impronte digitali. Usate da un secolo e mezzo, mantengono la loro
reputazione di unicità per ogni individuo, gemelli inclusi. Gli
scanner di impronte sono molto diffusi e hanno un basso costo,
molto inferiore a quello degli altri dispositivi biometrici
2. Geometria delle mani: rispetto alle impronte digitali, che richiedono
mani pulite, ha il vantaggio di poter essere usata anche in
condizioni ambientali difficili, come fabbriche e cantieri.
3. Retina: la sua scansione è utilizzata in installazioni militari e
governative. Il modello dei vasi sanguigni della retina è unico e
stabile, sebbene siano possibili variazioni (come durante la
gravidanza). La fotografia della retina richiede un’esposizione
prolungata a bassa intensità luminosa ed è vista come una
procedura intrusiva, sebbene non rechi danno agli occhi.
4. Iride: come per la retina, la sua scansione fornisce un modello
unico e stabile ed è oggi una delle tecnologie in rapida ascesa per
l’adozione in aeroporti e controlli dell’immigrazione. La foto è
ripresa da una certa distanza e presenta difficoltà simili a quelle
della retina.
5. Riconoscimento del volto: è un metodo particolarmente flessibile e
può essere utilizzato all’insaputa della persona oggetto della
scansione (con i relativi pro e contro). Può essere usato per
cercare un individuo nella folla, a patto che raggiunga la

113
necessaria precisione di riconoscimento. Negli ultimi tempi negli
USA si sono registrati fallimenti clamorosi.
6. Impronta vocale: come il riconoscimento del volto, l’analisi della
voce può essere usata all’insaputa dell’interessato. E’ possibile
falsificarla manipolando una registrazione, ma imitare la voce di un
altro non trae in inganno un analista esperto. Questa caratteristica
a volte è elencata nella categoria dei tratti comportamentali, dato
che non si basa sull’osservazione di una parte del corpo. Il
principio base di funzionamento è lo stesso per tutti i sistemi
biometrici.

Ogni sistema usa un sensore per raccogliere in forma digitale i dati


corrispondenti a una misura biometrica.

Il sensore può essere ad esempio uno scanner apposito per l’impronta


digitale o una speciale fotocamera usata per riprendere l’immagine
dell’iride. In entrambi i casi sono state dimostrate le possibilità di
falsificazione, che possono essere sventate migliorando i sensori (per
esempio rilevando temperatura, conducibilità e altri indicatori di un dito
vivo) e presidiando il sensore (per evitare di autenticare la foto di un
occhio). Il confronto fornisce generalmente una corrispondenza parziale:
se lo scostamento è inferiore alla soglia di accettazione, l’autenticazione
è positiva, altrimenti è rifiutata.

Autenticazione di rete
Per risolvere il problema di autenticare un soggetto – sia esso un utente
o un processo – in contesto di rete si deve fare i conti con il problema
che, se l'accesso a un sistema B avviene remotamente agendo da un
sistema A, resta ovviamente necessario che l'utente abbia accesso
(cioè disponga di una username e password) sul sistema B, ma occorre
anche, in generale, che disponga di un login sul sistema da cui effettua
l'accesso, ossia A. Per evitare che l'utente debba ricordare coppie
login/password per troppi sistemi diversi si potrebbe decidere di adottare
account uguali (con password uguali) su A e su B. Così facendo lo
username e la password da digitare sarebbero gli stessi su entrambi i

114
sistemi e l'utente avrebbe meno segreti da ricordare. Tuttavia egli
sarebbe ancora costretto a ripetere la manovra di login a ogni accesso
remoto, In ambiente Windows è possibile semplificare le cose
organizzando i server in un unico "dominio": con tale termine s’intende
un raggruppamento logico di server di rete e altri host che condividono
le informazioni sui profili utente e altre impostazioni di security. In un
dominio esiste sempre un database principale (Primary Domain
Controller, PDC) che contiene tali informazioni. Una volta effettuate le
impostazioni necessarie, l'utente ha il vantaggio di dover ricordare una
sola password valida per tutte le macchine che partecipano al dominio;
inoltre, nelle utility di Windows che mostrano elenchi di risorse di rete
disponibili, quelle del dominio saranno raggruppate sotto un unico
albero, rendendo più facile la consultazione, soprattutto in reti di grandi
dimensioni. Anche l'amministratore avrà vantaggi non indifferenti,
potendo effettuare la gestione degli account in modo centralizzato, e
senza bisogno di tediose ripetizioni, qualunque sia il numero delle
macchine facenti parte del dominio.
Lo schema classico per l'autenticazione locale di un utente su un host
si basa sulla conoscenza di una password che deve essere fornita
insieme al proprio username all'atto del login. Non appena tale schema
di autenticazione viene utilizzato per l'accesso da remoto al sistema,
però, sorge immediatamente il problema della possibile intercettazione
del messaggio contenente login e password, che deve per forza di cose
transitare sulla rete. In tale scenario quindi le cose si complicano. Tutti
gli schemi di autenticazione in rete si basano sull'applicazione di un
qualche ben definito protocollo per lo scambio di messaggi. Il tutto si
basa su un sistema client-server: il client (che chiede di essere
autenticato) e il server (che deve erogare il servizio, o consentire un
accesso, dopo essersi convinto della autenticità del client); ci possono
essere anche server di autenticazione, di cui entrambe le parti si fidano
e che diventa depositario di determinati segreti o al quale vengono
deputate alcune decisioni chiave. Poiché i messaggi che si scambiano
le due parti possono essere intercettati, esaminati, ricordati e poi
ritrasmessi (intatti o modificati) da un attaccante, è assolutamente
necessario prevedere un’adeguata protezione crittografica.
115
Protocolli per l’autenticazione degli utenti
I due protocolli di autenticazione base definiti da PPP sono Password
AuthenticationProtocol (PAP) e Challenge Handshake Authentication
Protocol (CHAP).
Password Authentication Protocol (PAP) è molto semplice: il
dispositivoche si sta connettendo (e che verrà indicato, per semplicità,
come client) inviaall’altro dispositivo (server) un messaggio
Authenticate-Request che contiene ilsuo ID e una password. Il server
autentica le credenziali e se decide che sono corretterisponde con un
Authenticate-Ack, altrimenti con un Authenticate-Nak.
Sono evidenti le problematiche di sicurezza di un protocollo di questo
tipo.
Innanzitutto le credenziali sono trasmesse in chiaro. Questo è un grosso
problemaper un protocollo di autenticazione, perché chiunque possa
sorvegliare iltraffico può intercettarle e riutilizzarle in futuro. In secondo
luogo, solo il clientsi autentica: cosa succede se il server non è quello
che ci si attende?

Un primo miglioramento viene da CHAP, che non trasmette in chiaro


lapassword del client, ma utilizza un metodo a challenge/response. Il
server inquesto caso usa un three-way handshake (si ritrova la stessa
procedura che vieneutilizzata nella Shared Key Authentication delle reti

116
wireless): invia a chi sista connettendo un pacchetto Challenge,
contenente un testo random (casuale).

Il client unisce la password e il Challenge, genera un hash MD5 del


tutto, e loreinvia al server in un pacchetto Response. A questo punto il
server esegue anchelui la stessa operazione e verifica che i risultati
coincidano. Se coincidono,viene inviato un messaggio Success,
altrimenti viene inviato un Failure.

Questo schema è robusto contro l’intercettazione: la password non


passamai in rete, e il Challenge cambia ad ogni connessione rendendo
la Responseinutilizzabile in un attacco di replay. Tuttavia lo schema non
consente la mutuaautenticazione (continuiamo a non sapere chi è il
server) ed è vulnerabile adattacchi man-in-the-middle.

Microsoft ha creato la sua variante non-standard di CHAP,


denominataMS-CHAP, che comprende alcune estensioni per generare
chiavi di cifraturae proteggere la connessione. Purtroppo questo
protocollo si è rivelato non robusto. Infatti, nella sua versione originale
117
(quella utilizzata da Windows NT)il protocollo utilizza per default un
metodo di hashing delle password compatibilecon il protocollo LAN
Manager, molto più debole di quello standard diNT. Per la precisione, la
funzione di hashing di LAN Manager non distingue tralettere maiuscole
e minuscole e suddivide le password superiori a 7 caratteri indue parti
da 7 byte, di cui viene fatto separatamente l’hash. Questo rende tuttele
password meno resistenti ad attacchi di brute-forcing off-line.

Va anche detto che si sta affermando EAP, Extensible Authentication


Protocol,un’estensione di PPP sviluppata per fornire un meccanismo
standard perestendere il protocollo supportando nuovi schemi di
autenticazione. Per esempioin EAP è previsto il supporto di token, one-
time password, autenticazioneusando PKI, certificati e smart-card, e
simili.

Gli stessi protocolli sono poi stati utilizzati anche per altre
applicazioni,ad esempio la creazione di VPN attraverso il protocollo
PPTP (Point to PointTunnelling Protocol), e nel caso di EAP, per
l’autenticazione di utenti anche sureti LAN e WLAN (protocollo 802.1x).

Kerberos
Quando si ha a che fare con sistemi complessi, composti da una
molteplicità di host connessi tra loro in rete e di servizi erogati da essi,
con un gran numero di utenti e con numerose autenticazioni, ci si può
facilmente trovare davanti a una situazione ingestibile anche dai migliori
amministratori di rete. La gestione unificata degli utenti, attraverso la
creazione di un database unico, centralizzato, per tutti i profili
(username, password e altri dati) al quale le applicazioni possano
magari accedere attraverso un'interfaccia standard, specializzata nel
trattamento di questo tipo di dati, come LDAP (Lightweight Directory
Access Protocol) può essere una soluzione.

118
Il passo successivo consiste nel congegnare le applicazioni del sistema
in modo che l'utente debba autenticarsi una sola volta, al primo
accesso, e in seguito risulti automaticamente autenticato su tutte le altre
risorse di rete. Tale approccio complessivo all'autenticazione va sotto il
nome di Single Sign-On (SSO) e, se da un lato offre degli indubbi
benefici in termini di praticità d'uso per gli utenti finali, ha anche effetti
positivi sulla sicurezza del sistema, in quanto è evidente che non
dovendo più ricordare numerose password l'utente è meno portato a
tenerne traccia scritta in luoghi magari poco protetti. Naturalmente la
difficoltà di realizzare una architettura SSO per l'autenticazione è
proporzionale all'eterogeneità del sistema. Il servizio distribuito di
autenticazione in rete Kerberos rappresenta l’eccellenza di questo tipo
di architettura. mitologia greca vigilava sull'accesso agli inferi. In sintesi,
il servizio offerto da Kerberos consente a un processo (client) mandato
in esecuzione da un utente (principal) di attestare e dimostrare la
propria identità a un ente verificatore (una applicazione server) senza
inviare alcuna informazione in rete, in particolare password la cui
intercettazione potrebbe consentire a un attaccante d’impersonare in
seguito l'utente. Nel funzionamento di Kerberos gli attori fondamentali
sono 4: oltre ai già citati client (C) e server (R) vi sono infatti: - un
119
authentication server (AS), con il quale ogni client C condivide una
propria chiave crittografica segreta Kc. AS ha la funzione di generare in
modo sicuro (fidato e non intercettabile da terzi in ascolto) "l'innesco"
della successiva conversazione: la chiave di sessione. - un ticket-
granting server (TGS) che si occupa di fare da "ponte crittografico" fra
client e server per generare in modo convincente per entrambi, e non
intercettabile da terzi, una chiave da usare per la successiva
comunicazione diretta tra C e R.

Controllo degli accessi


Il controllo degli accessi è il processo che permette di definire e
controllare i diritti e i privilegi di accesso alle risorse e ai servizi del
sistema. Questo processo necessita ovviamente di una qualche forma
di autenticazione per poter funzionare, in quanto assume che l’identità
dell’utente sia già stata verificata a monte. Quello che è necessario fare
nell’ambito del controllo d’accesso è verificare se un soggetto ha o
meno i permessi per accedere a certi dati del sistema e/o compiere
determinate operazioni su di essi.

120
Disponibilità
La disponibilità è "la proprietà secondo cui le informazioni sono sempre
accessibili senza eccessivi ritardi quando necessario". Nel contesto
della sicurezza si vuole dunque assicurare che la prevenzione nei
confronti degli attaccanti non impedisca agli utenti legittimi di avere un
accesso ragionevole ai loro sistemi. Questo per prevenire disturbi del
servizio. La prevenzione diventa finalizzata a rendere sempre
disponibile l'accesso autorizzato alle risorse senza comportare dei ritardi
nelle operazioni time-critical. Infatti sono abbastanza frequenti attacchi
che paralizzano un server per sovraccarico di richieste di connessione
"bloccando" la disponibilità delle informazioni, con gravi conseguenza
per le realtà in cui la disponibilità è l'aspetto principale della sicurezza
informatica.

Confidenzialità
La confidenzialità è la proprietà che permette di garantire che l’accesso
alle risorse e ai servizi del sistema sia permesso solo alle entità
autorizzate. Con tale definizione si potrebbe confondere la
confidenzialità ed il controllo d’accesso. In realtà, mentre lo scopo del
processo di autorizzazione è quello di bloccare l'accesso a risorse e
servizi del sistema da parte di utenti non autorizzati, in questo caso il
fine principale è quello di non permettere agli utenti non autorizzati di
venire a conoscenza dell'esistenza di queste informazioni sensibili. I
termini "privacy" e "segretezza" sono a volte utilizzati per distinguere tra
la protezione dei dati personali degli utenti (privacy) e la protezione dei
dati appartenenti all'organizzazione (segretezza). La confidenzialità è un
concetto molto ben definito e la ricerca nel campo della sicurezza
informatica si è spesso concentrata su questo punto, tanto che alle volte
i termini confidenzialità e sicurezza sono stati perfino utilizzati come
sinonimi.

121
Integrità
L’integrità consiste nel di garantire che non vengano eseguite modifiche
non autorizzate ai dati protetti contenuti nel sistema. In altri termini
l’integrità si può definire come la capacità di un sistema di rendere
possibile la modifica di risorse e dati solo a persone autorizzate, e
anche a queste solo in modo autorizzato onde garantire la consistenza
di questi dati con le funzioni gestite dal sistema.

Responsabilità
La responsabilità è la proprietà che permette di ricollegare ogni singola
azione sull’informazione contenuta nel sistema al soggetto che l’ha
compiuta. "Responsabilità significa controllare le informazioni in modo
selettivo e protetto, così che azioni che influenzano la sicurezza
possano essere ricollegate al diretto responsabile". Per essere in grado
di soddisfare questo requisito il sistema deve prima di tutto identificare
ed autenticare l'utente, ma oltre a questo deve mantenere una "traccia
di verifica" degli eventi rilevanti per la sicurezza. Infatti se si verificasse
una violazione della sicurezza, le informazioni raccolte nella traccia di
verifica devono permettere di identificare il colpevole ed i passi che
quest’ultimo ha compiuto per compromettere il sistema. A questo punto
entra in gioco la proprietà del non ripudio, che assicura l’impossibilità da
parte di chi ha prodotto dei dati di negare della creazione di questi ultimi.
Si può dunque affermare che la responsabilità implica il non ripudio, in
quanto non è possibile identificare un utente come origine di un’azione
dannosa per la sicurezza del sistema, se non si può provare con
certezza la sua colpevolezza.

Concetto di ‘Modello d’accesso’


Prima di entrare nel dettaglio delle tecniche del controllo d’accesso è
bene ricordare le seguenti definizioni:

122
 L’accesso è la capacità di agire su una risorsa, come ad esempio
leggerla, modificarla, eliminarla o rinominarla.
 Il controllo d’accesso è il modo attraverso il quale questa
capacità viene regolata. In particolare definisce i meccanismi che
permettono di dare e revocare diverse tipologie di permessi e di
vietare o consentire l’accesso ad una risorsa in base ai permessi
precedentemente assegnati.
 Un modello di controllo d’accesso è una rappresentazione
astratta sia degli elementi del sistema, sia di quelli relativi alla
sicurezza, ovvero di tutti quei dati che sono rilevanti per il
trattamento delle informazioni classificate e memorizzate nel
sistema stesso. Un modello deve dunque cercare di catturare le
caratteristiche ed i comportamenti del sistema di controllo e
fornirne un rappresentazione logica.
La politica (o “policy”) di controllo dell’accesso ad un sistema non è
altro che un insieme di requisiti, che specificano come dev’essere
gestito l’accesso alle informazioni, ovvero chi e in quali circostanze può
fare che cosa su di esse. Questi elementi vengono utilizzati dalla logica
di controllo per verificare se un utente ha o meno il diritto di compiere
una certa operazione su un oggetto protetto del sistema. Per analizzare
un sistema di controllo d’accesso e per valutarne la caratteristiche è
tuttavia preferibile ragionare su un modello di controllo d’accesso.

Terminologia dei modelli di controllo accessi


La quasi totalità dei modelli di controllo d’accesso finora sviluppati si
basa sulle nozioni di utenti, soggetti, oggetti, operazioni e permessi

 Un utente è una persona che accede al sistema. In molte


architetture un utente può effettuare login multipli, anche con
identificativi differenti.
 Una sessione è una singola istanza di interazione tra un utente ed
il sistema
 Un soggetto è un processo che interagisce con il sistema per
conto di un utente, come se fosse quest’ultimo. Un utente può
quindi avere più soggetti in esecuzione, anche se ha effettuato un
123
solo login. Ad esempio un client per la posta elettronica può
interagire in background con il sistema, mentre l’utente naviga
utilizzando un browser. Ogni programma aperto dall’utente per il
sistema è un soggetto differente. Un oggetto è una qualsiasi
risorsa del sistema accessibile da parte degli utenti. Ad esempio
sono oggetti i files, le periferiche, i database, ma lo possono
essere anche i singoli record contenuti in questi ultimi, dipende
dalla grana che si vuole utilizzare e della specifica applicazione.
Gli oggetti sono tradizionalmente considerati come delle entità
passive, che contengono e ricevono informazione, ma alcuni
modelli di controllo d’accesso permettono di trattare come oggetti
anche programmi, stampanti ed altre entità attive.
 Un’operazione è un processo invocato da un soggetto.
 Un permesso (o privilegio) è un’autorizzazione ad attivare una
certa azione sul sistema. Volendo fare un’analisi più dettagliata è
necessario sottolineare il fatto che in realtà un permesso non è
altro che una combinazione tra un oggetto ed una operazione.
Infatti una stessa operazione applicata a due oggetti differenti
rappresenta due permessi distinti. Allo stesso modo due differenti
operazioni applicate allo stesso oggetto necessitano di due
permessi differenti.

Il modello Bell-La-Padula
Nel 1973 Bell e LaPadula proposero un modello di controllo d’accesso
multilivello basato su “etichette di sicurezza”.
Il modello Bell-La Padula è progettato per gestire la sicurezza in
ambitomilitare ed è orientato a garantire la riservatezza dei dati (al
contrario delmodello BIBA che descrive regole per la protezione
dell'integrità). Questomodello prevede quattro livelli di sicurezza per le
informazioni. Dal piùimportante al meno importante questi livelli sono:
1. Top Secret;
2. Secret;
3. Condential;
4. Unclassified.
124
Le persone sono assegnate ai livelli a seconda delle informazioni a
cuipossono accedere.
Il modello Bell-La Padula prevede due regole fondamentali di
funzionamento:

 Proprietà di semplice sicurezza: un processo in esecuzione al livello


k può leggere solo oggetti al suo livello o a livelli inferiori.
 Proprietà*(star): un processo in esecuzione al livello k può scrivere
soltanto oggetti al suo livello o superiori.
Possiamo dare una descrizione di tale modello che ci fa capire meglioil
funzionamento: immaginiamo un militare che ottiene delle
informazioni.Non potrà mai passarle a persone di livello inferiore, ma le
darà a persone diqualica superiore. Questa è la proprietà star. La prima
invece è comprensibile:chiunque può venire a conoscenza di
informazioni del proprio livello epuò supervisionare anche chi opera a
livelli sottostanti.

Un’ultima considerazione va fatta in merito alla differenza che il sistema


fa tra utenti e soggetti. Infatti un utente assegnato ad esempio al livello
TS, può potenzialmente leggere e scrivere tutti gli oggetti del sistema.
Quando però l’utente accede al sistema, diventa un soggetto e come
tale deve sottostare alle due proprietà appena illustrate.

125
Modello di Biba
Il modello BIBA è in contrasto con quanto aerma il modello B-LP, perciò
idue modelli non si possono realizzare contemporaneamente. Al
contrario delmodello precedentemente analizzato, in questo si mira a
garantire l'integritàdei dati, non la riservatezza.
Le regole fondamentali del modello BIBA sono:

 Proprietà di semplice sicurezza: un processo in esecuzione al livellok


può scrivere solamente oggetti al proprio livello o inferiori.
 Proprietà di integrità*: un processo al livello k può leggere solamente
oggetti al proprio livello o superiori.
Il senso di questo modello (leggere sopra, scrivere sotto) sta nel
fattoche volendo mantenere integre/sicure le informazioni, solo chi ha
più dirittidi accesso le può scrivere e quindi scrive a livelli inferiori per
passare delleinformazioni buone ai sottoposti. Secondo lo stesso criterio
un processo trovale informazioni più a-dabili nel suo stato o nei
superiori.
In questo modo le scritture provenienti dai livelli inferiori non sono più
autorizzate, così come le letture dai livelli superiori a quelli inferiori.

Modello di Clark e Wilson


Nel 1987 Clark e Wilson pubblicarono un documento in cui si criticava il
modello DAC proposto dal DoD per le applicazioni commerciali,
portando come motivazione principale il fatto che l’attenzione maggiore
126
in questo ambito deve essere rivolta all’integrità dell’informazione.
Proposero dunque un nuovo modello di controllo d’accesso, che aveva
come obiettivo principale quello di garantire che gli oggetti del sistema
fossero modificati solamente da personale autorizzato. Il modello di
Clark e Wilson si basa su due principi fondamentali:
1. le transazioni ben formate
2. la separazione dei compiti
Le transazioni ben formate assicurano che i dati modificati da un utente
passino da uno stato valido ad un altro stato, anch’esso valido, al
termine dell’esecuzione della transazione. L’unità base del controllo
d’accesso secondo Clark e Wilson è la tripla <user, operation, object>,
ovvero <utente, procedura di trasformazione, oggetto protetto del
sistema>, così come si può osservare nella figura seguente.

Clark e Wilson proposero nove regole per garantire l’integrità dei dati,
ma prima di elencarle è necessario dare le seguenti definizioni:

 TP (Transformation Procedure): procedura di trasformazione.


 CDI (Constrianed Data Item): dato di sistema protetto, la cui
integrità deve quindi essere preservata.
 UDI (unconstrained Data Item): dato di sistema non protetto, la cui
integrità non è assicurata.
 IVP (Integrity Verification Procedure): procedure di verifica
dell’integrità dei dati.

Le regole definite dal modello sono dunque le seguenti:


1. per ogni CDI deve esistere una IVP che assicuri che il dato è in
uno stato consistente;
2. ogni TP che modifica un CDI deve essere certificata, ovvero deve
assicurare di modificare il dato lasciandolo in uno stato
consistente;
3. un CDI può essere modificato solo da una TP certificata;
127
4. ogni TP certificata deve fare il log delle modifiche effettuate su un
CDI;
5. ogni TP che prende in input un UDI deve essere certificata per
assicurare che trasformerà l’UDI in CDI portando l’oggetto in uno
stato consistente;
6. solo TP certificate possono modificare gli UDI;
7. un utente può accedere ai CDI solo attraverso TP per le quali è
stato autorizzato;
8. ogni utente deve essere autenticato dal sistema prima di eseguire
una TP;
9. solo l’amministratore può autorizzare gli utenti ad utilizzare una
TP.

Le transazioni ben formate mettono in luce il fatto che è non è


sufficiente effettuare controlli a livello di letture e scritture gestite da
sistema operativo, ma che è necessario spostare l’attenzione sul livello
applicativo, assicurandosi che le informazioni siano modificate solo dalle
transazioni autorizzate. Per quanto riguarda infine la separazione dei
compiti, che è già stata definita in precedenza, si sottolinea il fatto che è
la prima volta nella storia del controllo d’accesso che questo
importantissimo principio vene enunciato chiaramente e posto alla base
di un modello.

DAC (Discretionary Access Control)


Il DAC è un meccanismo che consente ad un utente di permettere o
vietare ad altri utenti l’accesso agli oggetti di sua proprietà. Il controllo è
128
“discrezionale” nel senso che un utente che possiede un determinato
permesso di accesso su un oggetto ha la possibilità di trasmettere
questo permesso ad un altro utente. In alcuni casi il proprietario di un
oggetto può decidere di trasmettere tutti o alcuni dei suoi privilegi
d’accesso ad altri utenti, senza però dare loro il permesso di estendere
questi ultimi ad altri utenti. Non è dunque necessario l’intervento
dell’amministratore di sistema nel processo di assegnazione e revoca
dei permessi. Ad ogni modo l’amministratore è colui che possiede tutti
gli oggetti del sistema e può violare a piacimento le diverse restrizioni
d’accesso. I sistemi DAC sono quelli a cui siamo più abituati: i
meccanismi dei permessi UNIX e le ACL di Windows sono sistemi DAC.

MAC (Mandatory Access Control)


Il MAC deriva direttamente dal modello di Bell-LaPadula ed è un
meccanismo per restringere l’accesso agli oggetti di un sistema basato
sulla sensibilità dell’informazione in essi contenuta e sull’autorizzazione
esplicita degli utenti ad accedere alle informazioni appartenenti ad un
preciso livello di sensibilità. In un sistema MAC gli oggetti hanno dunque
un loro livello di segretezza e gli utenti hanno un loro livello di accesso.
Esiste inoltre una figura che nei sistemi DAC non è prevista, il “security
officer”, che è l’unico a poter gestire e modificare i livelli d’accesso. Le
regole d’accesso che vengono generalmente usate sono le seguenti:

 No read up: l’utente non può leggere informazioni con un livello


d’accesso superiore al suo.
 No write down: l’utente non può scrivere informazioni con un
livello d’accesso inferiore al suo.

Un’altra versione ugualmente espressiva delle regole imposte da un


modello MAC è invece la seguente:

 Security Rule: un utente non può leggere informazioni il cui livello


d’accesso più elevato del suo

129
 Minus Property: un utente non può spostare informazioni da un
livello di sicurezza ad un livello di sicurezza più basso, ma può
spostarle solamente ad un livello più alto.

Quest’ultima proprietà implica ovviamente la proprietà di “no write


down”, mentre la prima è identica alla “no read up”.

RBAC
Nel 1992 Ferraiolo e Kuhn [15], due studiosi del NIST (National Institute
of Standards and Technology), presentarono uno studio in cui si
prospettava un utilizzo differente dei concetti di utenti, operazioni e
gruppi. Questi ultimi presero il nome di “ruoli” e venivano usati come
intermediari tra i primi e le seconde. Si trattò di fatto del primo modello
RBAC proposto nella storia del controllo d’accesso. Prima di entrare nel
dettaglio del funzionamento del primo modello di controllo d’accesso
basato su ruoli è opportuno dare una definizione dei termini chiave, che
verranno utilizzati da qui in avanti per riferirsi alle entità principali che lo
vanno a comporre. Si tratta di una rivisitazione di parte dell’ontologia di
base data per il controllo d’accesso generico. In un modello RBAC si
possono individuare i seguenti elementi fondamentali:

 Un utente è un soggetto (entità fisica) facente parte di


un’organizzazione.
 Un ruolo è un insieme di operazioni che un utente (o un insieme di
utenti) può eseguire nel contesto dell’organizzazione di cui fa
parte.
 Una operazione è una procedura, alla quale viene associato un
certo set di dati, che viene definito con il termine oggetto. Va
notato il fatto che una transazione non è accomunabile a semplici
operazioni di lettura o di scrittura, in quanto queste ultime non
fanno riferimento a nessun oggetto in particolare. Una transazione
ha senso solo se è riferita ad un particolare oggetto. Operazioni
uguali fatte su oggetti diversi sono dunque transazioni differenti.

130
Le operazioni sono allocate ai diversi ruoli dall’amministratore di
sistema, che si preoccupa anche di assegnare i vari utenti ai diversi ruoli
presenti all’interno dell’organizzazione. Allo stesso modo
l’amministratore può revocare in qualsiasi momento l’appartenenza (o
“membership”) di un utente ad un determinato ruolo e può aggiornare il
set di transazioni associate a quest’ultimo.
Infine va sottolineato il fatto che esistono relazioni molti-a-molti tra
utenti, ruoli, transazioni ed oggetti del sistema; in particolare:

 Ad un utente possono essere assegnati più ruoli


 Un ruolo può essere ricoperto da diversi utenti
 Ad ogni ruolo possono essere associate diverse operazioni
 Una operazione può essere eseguita da diversi ruoli
 Una operazione può operare su più oggetti
 Un oggetto può essere manipolato per mezzo di diverse
operazioni.

Spesso all’interno di un’organizzazione ci sono delle operazioni, che


possono essere svolte da tutti gli utenti. In questo caso sarebbe
necessario replicare le stesse transazioni in tutti i ruoli definiti nel
sistema. Ovviamente ciò non è auspicabile, in quanto complicherebbe di
molto la gestione da parte dell’amministratore, mentre lo scopo di RBAC
è quello di semplificarla al massimo, fornendo un modello il più vicino
possibile alla realtà organizzativa sulla quale si vuole esercitare il
controllo d’accesso alle informazioni. Per venire incontro a questa
esigenza si è deciso di rendere possibile un’organizzazione gerarchica
dei ruoli, che permette a ruoli più specializzati di ereditare da altri ruoli
tutte le loro operazioni. Così facendo si semplifica notevolmente la
gestione delle attività comuni a tutti gli utenti dell’organizzazione.

131
Differenza tra ruoli e gruppi
Leggendo le definizioni fornite nel paragrafo precedente, può non
essere del tutto chiaro quale sia la differenza tra ruoli e gruppi di utenti,
dove questi ultimi non sono altro che l’unità di controllo d’accesso più
frequentemente adottata in molti dei sistemi comunemente utilizzati. La
differenza principale esistente fra la maggior parte delle implementazioni
di gruppi ed il concetto di ruoli va ricercata nel fatto che i primi sono
tipicamente trattati come una collezione di utenti e non come un insieme
di permessi. Un ruolo in realtà è entrambe le cose, ovvero racchiude in
sé sia i permessi che gli utenti, ai quali questi ultimi vengono assegnati
in modo indiretto. I ruoli sono dunque degli intermediari tra gli insiemi dei
permessi e degli utenti. Una seconda differenza tra ruoli e gruppi risiede
nel grado di facilità con la quale è possibile determinare l’elenco degli
utenti e dei permessi appartenenti all’insieme (ruolo o gruppo) in
questione. Questa differenza è ovviamente una conseguenza della
prima, ma è utile come “prova del nove” per capire se un sistema di
controllo d’accesso appartiene all’una o all’altra tipologia. Infatti, per
poter parlare di ruolo, deve essere altrettanto facile (o difficile)
determinare il relativo insieme di utenti ed il relativo insieme di permessi.
Inoltre il controllo dell’appartenenza di un utente e l’assegnazione di un
permesso ad un ruolo devono essere operazioni abbastanza
132
centralizzate, ovvero concentrate in un numero limitato di utenti rispetto
alle dimensioni globali del sistema che si deve gestire. Si pensi ad
esempio ad un sistema Unix. Per determinare l’appartenenza dei diversi
utenti ai vari gruppi è sufficiente guardare i file “/etc/passwd” ed
“/etc/group”. L’informazione circa i permessi assegnati ai diversi gruppi è
invece dispersa su tutto il file system. Inoltre l’assegnamento dei
permessi ai gruppi è altamente decentralizzato. Appare dunque chiaro
come in questo caso non si possa in alcun modo parlare di “ruoli”,
secondo la definizione che si è fornita.

Access Control List


Le ACL (Access Control List) sono una lista di istruzioni da applicare
alle interfacce di un router allo scopo di gestire il traffico, filtrando i
pacchetti in entrata e in uscita.
133
Le ACL possono essere usate per tutti i protocolli di rete routabili.
Esistono varie ragioni per decidere di adoperare le ACL:

 Fornire un livello base di sicurezza: si può per esempio restringere


gli accessi a una determinata rete o sottorete;
 Limitare il traffico e aumentare la performance della rete: si può,
infatti, decidere che alcuni pacchetti vengano processati prima di
altri. Questo viene in particolare riferito come queuing
 Decidere quale tipo di traffico può essere trasmesso: si può
permettere l’invio di e-mail e impedire allo stesso tempo il Telnet.
Le ACL vengono elaborate dal router in maniera sequenziale in base
all’ordine in cui sono state inserite le varie clausole. Appena un
pacchetto soddisfa una delle condizioni, la valutazione s’interrompe e il
resto delle ACL non viene preso in considerazione. Il pacchetto viene
quindi inoltrato o eliminato secondo l’istruzione eseguita.
Per accedere alla ACL in Windows si utilizza la scheda “Sicurezza”
raggiungibile dal box di dialogo "Proprietà" che si visualizza
selezionando il file in Explorer e facendo clic con il tasto destro del
mouse; è possibile, per ogni singolo file, cartella o unità disco,
specificare non soltanto i "classici" permessi di lettura e scrittura di ogni
utente o gruppo, ma anche permessi estremamente specifici quali
l'autorizzazione ad acquisire il possesso della risorsa, a impostare il
valore dei suoi attributi base ed estesi e perfino l'autorizzazione a
leggere e cambiare i permessi stessi.

134
Domande di comprensione del capitolo 7
Rispondere alle domande che seguono per verificare di aver appreso
tutti i concetti illustrati in questo capitolo. Le risposte alle domande sono
riportate nell’allegato A alla fine del libro.
Se qualche risposta data dovesse risultare errata, si consiglia di
rivedere i concetti specifici dove si sono commessi errori.
1. Come viene definita la procedura di controllo accessi in un
sistema?
a. MAC (Mandatory Aces Control)
b. ACP (Access Control Process)
c. ACL (Access Control List) g
2. Qual’é la tecnologia di controllo accessi di più recente ideazione?
a. MAC
b. DAC
c. RBAC g
3. Quali, tra i seguenti principi, non devono essere rispettati per avere
una password sicura?
a. Cambiare costantemente la password
b. Creare una password che contenga una parte del proprio
nome g
c. Creare una password che contenga numeri, lettere e caratteri
speciali
4. Indicare quale, tra i seguenti, è il protocollo per l’autenticazione
degli utenti meno sicuro
a. PAP g
b. CHAP
c. PEAP
5. In un’architettura Kerberos, come si chiama il server che genera il
ticket di sessione?
a. AS
b. KDC
c. TGS g

135
Capitolo 8: La Crittografia
Crittografia è una parola con etimologia greca, composta da cripto
"nascosto" e grafia. Infatti la criptografia (o crittografia) viene usata
quando si vuole che il significato del messaggio rimanga nascosto ad un
lettore indesiderato e possa essere letto solo da alcune persone.
Permette infatti, di inviare messaggi attraverso mezzi "insicuri", come
Internet, e fare in modo che possano essere letti solamente dal
destinatario. Si dice, per esempio, che Giulio Cesare non si fidasse dei
messaggeri a cui affidava il compito di recapitare i messaggi e quindi li
"criptava" spostando di 3 le lettere (la A veniva sostituita dalla D, la B
dalla E ecc..).Analogamente, si pensi alle reti televisive pay-per-view.
L'immagine ciptata è visibile a tutti, ma solamente i possessori di
decodificatore (decoder) e di abbonamento possono vedere le immagini
chiare.Il testo che può essere letto e compreso senza nessuna misura
speciale è detto chiaro. Il metodo attraverso il quale si nasconde il
significato del testo chiaro è detto cifrazione (o criptazione). Il testo
risultante è detto testo cifrato (o criptato), mentre l'azione volta ad
ottenere il testo chiaro dal testo cifrato è detta decifrazione (o
decriptazione). L'algoritmo utilizzato per cifrare e decifrare è una
funzione matematica che funziona in collaborazione con una chiave,
questa può essere una parola, un numero o una combinazione di
caratteri alfanumerici.Se la criptografia è lo studio dei metodi per
rendere sicura la trasmissione dei dati, la criptoanalisi è lo studio dei
metodi per violare tali metodi. I ciptoanalisti, detti anche attackers,
utilizzano metodi matematici e ragionamnto analitico, uniti con estrema
pazienza, determinazione e un pizzico di fortuna, per rompere
l'algoritmo e decifrare il messaggio. Il grado di sicurezza della
crittografia è strettamente correlato alla forza dell'algoritmo ed alla
segretezza della chiave. La crittografia viene definita come forte o
debole in base al tempo neessario per decifrarla. Anche mettendo
insieme tutta la potenza di calcolo di tutti gli elaboratori elettronici
presenti sul pianeta, non sarebbe possibile decifrare messaggi
fortemente criptati prima della fine dell'universo. Questo non ci assicura
che con le potenze di calcolo che verranno sviluppate in futuro, questi
tempi non vengano considerevolmente ridotti. Qualche anno fa venivano
considerate forti criptografie che oggi sono facilmente decifrabili.

136
Un poco di storia
Le più antiche notizie sicure sono probabilmente quelle sulla scitala
lacedemonica , data da Plutarco come in uso dai tempi di Licurgo (IX
sec a.C.) ma più sicuramente usata ai tempi di Lisandro(verso il 400
a.C.). Consisteva in un bastone su cui si avvolgeva ad elica un nastro
di cuoio; sul nastro si scriveva per colonne parallele all'asse del
bastone, e lettera per lettera, il testo segreto. Tolto il nastro dal bastone
il testo vi risultava trasposto in modo regolare ma sufficiente per evitare
la lettura senza un secondo bastone uguale al primo. Tra il 360 e il 390
venne compilato da Enea il tattico, generale della lega arcadica, il primo
trattato di cifre il cui XXI capitolo tratta appunto di messaggi segreti. In
questo viene descritto un disco sulla zona esterna del quale erano
contenuti 24 fori,ciascuno corrispondente ad una lettera dell'alfabeto. Un
filo, partendo da un foro centrale, si avvolgeva passando per i fori delle
successive lettere del testo: all'arrivo, riportate le lettere sul disco, si
svolgeva il filo segnando le lettere da esso indicate: il testo si doveva poi
leggere a rovescio. Le vocali spesso erano sostituite da gruppi di
puntini. In questo stesso periodo vennero ideati codici cifrati indiani ed
ebraici utilizzati in particolar modo per celare nomi propri, innominabili o
sacrileghi. Numerosi testi e documenti greci antichi contengono tratti
cifrati, specialmente nomi propri, ma si trovano anche interi scritti cifrati
con sostituzione semplice e con alfabeti generalmente a numero.

Le più antiche notizie relative alla crittografia sono probabilmente quelle


connesse alla "scitala lacedemonica", usata ai tempi della civiltà
spartana. La scitala consisteva in un bastone su cui si avvolgeva, ad
elica, un nastro di cuoio. Su tale nastro veniva scritto il testo segreto,
lettera per lettera, su colonne parallele all'asse del bastone. Nonostante
tutto ciò costituisse un espediente rudimentale, non appena tolto il
nastro dal bastone, accadeva che il testo iscrittovi risultava trasposto in
modo regolare - ma sufficiente - per evitare la lettura del messaggio
senza l’utilizzo di un altro bastone uguale al primo per dimensioni, forma
e spessore).

Nell’antica Roma Giulio Cesare utilizzò - per la corrispondenza privata -


un codice a sostituzione molto semplice, nel quale il carattere in chiaro
veniva sostituito con il carattere collocato tre posizioni più avanti

137
nell'alfabeto. La lettera "A" quindi viene sostituita dalla lettera "D", la
lettera "B" dalla lettera "E" fino all'ultima lettera "Z" che viene cifrata con
la prima lettera "A": riferendosi ovviamente all'odierno alfabeto
internazionale.Volendo generalizzare, si definisce "codice di Cesare" un
cifrario nel quale ogni lettera del messaggio in chiaro viene traslata di un
numero fisso di posizioni in avanti. Poiché l'alfabeto internazionale è
composto da 26 caratteri, sono possibili 26 codici di Cesare diversi. Uno
di questi, quello corrispondente alla traslazione nulla (zero posizioni),
fornisce un messaggio cifrato coincidente con il messaggio originale. Il
libro di Geremia nella Bibbia usa un semplicissimo codice
monoalfabetico per cifrare la parola Babele; la prima lettera dell'alfabeto
ebraico (Aleph) viene cifrata con l'ultima (Taw), la seconda (Beth) viene
cifrata con la penultima (Shin) e così via; da queste quattro lettere è
derivato il nome di Atbash (A con T, B con SH) per questo codice.
Usando il moderno alfabeto internazionale, l'Atbash può essere
riassunto con la seguente tabella di cifratura:

CHIARO abcdefghijklm

CIFRATO ZYXWVUTSRQPON

CHIARO nopqrstuvwxyz

CIFRATO MLKJIHGFEDCBA

Utilizzando la frase

Il sole brilla

come frase chiara da cifrare il risultato sarà:

Rohlovyirooz

Il codice Atbash è quindi simile ma meno complesso di quello di Cesare,


poichè al contrario di quest'ultimo prevede solo una possibile
sostituzione.

Lo storico greco Polibio (~200-118AC), nelle sue Storie (Libro X)


descrive il più antico esempio di codice poligrafico, che attribuisce ai
suoi contemporanei Cleoxeno e Democleito; l'idea è quella di cifrare una
138
lettera con una coppia di numeri compresi tra 1 e 5, in base ad una
scacchiera 5x5. In tal modo il messaggio può essere trasmesso con due
gruppi di cinque torce (p.es. 1,5 = una torcia accesa a destra, cinque a
sinistra). In effetti pi� che di un codice segreto, si tratta di un sistema di
telecomunicazione, di fatto un telegrafo ottico. Telegrafi a torce
esistevano da molti secoli ed erano stati destritti da Enea il tattico
intorno al 350AC, ma erano basati su un limitato elenco di messaggi
possibili; quello di Polibio si basa invece sulla scomposizione del
messaggio nelle singole lettere ed � quindi in grado di trasmettere
qualsiasi messaggio.

#12345

1abcde

2fghij

3 kq l m n o

4prstu

5vwxyz

Nell'alfabeto greco ci sono 24 lettere ed avanza quindi un carattere che


Polibio proponeva di usare come segnale di sincronizzazione (inizio e
fine trasmissione). Nell'esempio seguente si utilizzerà, al posto di quello
greco, l'alfabeto internazionale il quale ha viceversa il difetto di essere
formato da 26 caratteri; così per poter costruire il quadrato necessario
per la cifratura bisognerà "fondere" due lettere rare ma non
foneticamente differenti nella stessa casella, in questo caso la k e la q.
In questo modo si otterrà la tabella a lato. Ogni lettera può viene quindi
rappresentata da due numeri, guardando la riga e la colonna in cui la
lettera si trova. Per esempio, a=11 e r=42.

Quindi la frase “Attenzione agli scogli” dopo la cifratura risulterà:

1144441534552435341511223224431335223224

La scacchiera di Polibio ha alcune importanti caratteristiche, e cioé la


riduzione nel numero di caratteri utilizzati, la conversione in numeri e la
riduzione di un simbolo in due parti che sono utilizzabili separatamente.
La sua importanza nella storia della crittografia sta nell'essere alla base
139
di altri codici di cifratura come il Playfair Cipher o il cifrario campale
germanico usato nella prima guerra mondiale.

# 1 2 3 4 5
1 a b c d e
2 f g h i j
3 kq l m n o
4 p r s t u
5 v w x y z

Esempio di scacchiera di Polibio.

Altro esempio è quello del

codice di Jefferson che prende il nome dal suo inventore Thomas


Jefferson (1743-1826), autore della Dichiarazione d'Indipendenza e
presidente degli USA nel mandato del 1801. Il codice è di facile utilizzo
e tuttora rimane abbastanza sicuro, secondo gli standard di oggi. Non
venne però adottato dagli Stati Uniti anche se, in teoria, avrebbe potuto
sopportare qualsiasi attacco crittoanalitico contemporaneo. Jefferson lo
archiviò e il suo codice rimase nel "dimenticatoio" fino al 1922, quando
fu riscoperto e utilizzato, fino agli anni '50, dall'esercito statunitense.
Fino a questo momento il codice di Jefferson era stato talmente ignorato
che nel 1890 Etienne Bazeries, l'Indecifrabile, reinventò
indipendentemente lo stesso metodo di cifratura. Il codice di Jefferson
era un metodo di cifratura meccanico e cioè basato su di una macchina;
140
questa macchina consiste in un cilindro di circa 15 cm di lunghezza e 4
cm di larghezza montato su un asse e sezionato in 36 dischi uguali (25
nella versione poi utilizzata dagli Americani). Sul bordo di ciascuna ruota
sono scritte le 26 lettere dell'alfabeto, equidistanti l'una dall'altra.
L'ordine in cui sono disposte le varie lettere non corrisponde a quello
naturale e varia da ruota a ruota. Il messaggio in chiaro deve essere
cifrato a blocchi di 36 lettere ciascuno (qualora l'ultimo blocco presenti
meno di 36 lettere, esso deve essere completato con lettere nulle); la
chiave di cifra è un numero che va da 1 a 25. Supponendo che il primo
blocco in chiaro sia La missione in Polinesia è fallita e la chiave sia il
numero 6, in una certa riga, non importa quale, si comporrà il
messaggio in chiaro (omettendo naturalmente gli spazi); il crittogramma
corrispondente andrà letto sulla sesta riga dopo quella che contiene il
blocco in chiaro. Questo metodo di cifratura verrà in parte riutilizzato dai
Tedeschi nella Seconda Guerra Mondiale nella cosiddetta Macchina
Enigma. Come quasi tutti i metodi di cifratura anche il cilindro di
Jefferson ha un grave difetto che ricorda quello che "minava" il codice di
Cesare: poichè le chiavi sono solo venticinque se il cilindro cade nelle
mani del nemico il crittogramma può essere facilmente risolto. Dalla
metà del XIX secolo l'uso della crittografia assume un ruolo
determinante nella trasmissione di messaggi di carattere logistico e
strategico. Questi, trasmessi anche via etere (a partire dal XX secolo)
richiedevano alcuni espedienti atti a precludere il contenuto dei
medesimi al nemico.
All'inizio del XX secolo la crittografia in Italia, che pure vantava tradizioni
di tutto rispetto, aveva toccato uno dei suoi livelli più bassi; basti
pensare che era ancora in uso il cifrario militare tascabile, una variante
della tavola di Vigenere di cui da tempo era noto un metodo di
decrittazione (quello del Kasiski).
All'inizio della Grande Guerra la stazione radiotelegrafica di Codroipo
era in grado di intercettare i messaggi austriaci ma non di decrittarli,
poichè l'Esercito Italiano non disponeva di un Ufficio Cifra! Per rimediare
il Comando Supremo inviò il cap. Sacco, comandante della stazione di
Codroipo, in Francia presso il quartier generale. Qui i Francesi furono in
grado di decrittare i messaggi austriaci, ma rifiutarono di istruire gli
italiani sui loro metodi di decrittazione.
Irritato da questa situazione il Sacco propose ai suoi superiori di istituire
un Ufficio Cifra italiano (" Se i Francesi sono riusciti in questa impresa,
non vedo perchè non dovremmo riuscirci anche noi"); fu preso in parola,
e, nella primavera del 1916, incaricato di organizzare un Ufficio
Crittografico.
141
Sotto la guida del Sacco e dei suoi collaboratori Tullio Cristofolini, Mario
Franzotti, e Remo Fedi, l'ufficio riuscì a decrittare il cifrario campale
austriaco, quello diplomatico, e quello navale. Notevoli risultati furono
ottenuti anche contro i cifrari tedeschi in uso nei Balcani.
La possibilità di intercettare e decrittare i messaggi austriaci ebbe
un'importanza non trascurabile nel 1918, per fronteggiare l'offensiva
austriaca del Piave.

Crittografia simmetrica: Sostituzione o


trasposizione
Le tecniche di cifratura sono state suddivise storicamente in due
categorie:

 Cifrari a sostituzione (tra cui i codici)


 Cifrari a trasposizione

Il cifrario di Cesare, citato in precedenza, è un esempio di cifrario a


sostituzione mono-alfabetica dove l’alfabeto cifrante rappresenta la
chiave del metodo. La debolezza del metodo consiste, nella esiguità del
numero di chiavi possibile: n-1 se n sono le lettere dell’alfabeto che si
sta usando. Conoscendo la distribuzione statistica delle lettere
dell’alfabeto in un certo linguaggio (meglio ancora se si conoscono le
distribuzioni statistiche dei digrammi o trigrammi) e operando una analisi
delle frequenze delle stesse lettere si può ottenere un metodo di
crittanalisi abbastanza efficiente. Un crittoanalista che tentasse di
attaccare un cifrario monoalfabetico inizierebbe a contare le frequenze
relative di tutte le lettere nel testo cifrato, ottenute le quali, potrebbe,
conoscendo la distribuzione statistica delle lettere dell’alfabeto,
effettuare gli opportuni abbinamenti. Il crittanalista passerebbe, dopo
questa fase, ad osservare, nel testo cifrato, modificato con le
142
sostituzioni derivanti da questi abbinamenti, i digrammi (combinazioni di
due lettere) e successivamente i trigrammi confrontandole con le
distribuzioni note. Facendo dei tentativi abbastanza ovvi, il crittanalista
costruirebbe un testo in chiaro provvisorio, che raffinerebbe con
passaggi successivi.

I metodi a sostituzione monoalfabetica sono a loro volta classificati in


sistemi monoletterali e multiletterali. I sistemi monoletterali, visti in
precedenza, mantengono una stretta corrispondenza biunivoca tra la
lunghezza del testo 'in chiaro' e quello cifrato. Ogni lettera del testo 'in
chiaro' è sostituita da un solo carattere nel testo cifrato. Nel sistema di
sostituzione multiletterale monoalfabetica, questa corrispondenza uno-
a-uno non è più valida poiché un carattere del testo 'in chiaro' può
essere sostituito con due caratteri del testo cifrato; oppure può essere
sostituito con tre caratteri nel testo cifrato, dove cioè una combinazione
di tre caratteri corrisponde ad un singolo carattere nel testo 'in chiaro'.
Questi sistemi sono rispettivamente uniletterali, biletterali e triletterali. I
metodi di cifratura nei quali un carattere del testo 'in chiaro' è
rappresentato da due o più caratteri nel testo cifrato sono classificati
come multiletterali. Si parla di cifrari polialfabetici, quando ad una stessa
lettera del testo in chiaro possono corrispondere vari simboli alternativi
nell’alfabeto cifrante, detti omofoni. I cifrari polialfabetici risultavano
abbastanza robusti ad un attacco crittanalitico di analisi di frequenza se,
insieme agli omofoni si utilizzavano le nulle (simboli privi di significato
inframezzati nel crittogramma per confondere la crittanalisi). Un cifrario
polialfabetico noto è il cosiddetto cifrario di Vigenère. Si può
rappresentare come una matrice quadrata di dimensione 26 (26 alfabeti
di Cesare):

143
144
La chiave, in questo tipo di cifrario, invece che essere l’alfabeto cifrante,
è una parola facile da ricordare come CAGNOLINO. Per cifrare un testo,
la chiave viene scritta ripetutamente sopra il testo in chiaro come
nell’esempio:
CANOLINOCAGNOLINOCAGNOLINOCAGNOLI
ILPRIMOAGOSTODELDUEMILAANDAIAROMA
La lettera della chiave che si trova in corrispondenza della lettera del
testo in chiaro determina la riga da usare per la cifratura, mentre la
lettera del testo in chiaro nella prima riga, determina la colonna. La
lettera cifrata è la lettera che si trova nella posizione corrispondente
all’intersezione della riga e della colonna così determinate.
Con questo metodo, una stessa lettera del testo in chiaro può essere
rappresentata da lettere diverse nel testo cifrato, a seconda della sua
posizione nel testo in chiaro. Si possono complicare le cose utilizzando
per ogni riga della matrice degli alfabeti arbitrari anziché dei cifrari di
Cesare, ma in tal caso bisogna ricordarsi (memorizzare da qualche
parte) com’è fatta la matrice. Il crittanalista che abbia una quantità
sufficiente di testo cifrato e che voglia attaccare un cifrario polialfabetico
dovrà indovinare la lunghezza della chiave. Supponiamo di partire con
una chiave di lunghezza k, si sistema il testo cifrato in righe di k
colonne, se l’ipotesi è corretta, tutte le lettere del crittogramma in
ciascuna colonna saranno state cifrate dallo stesso cifrario
monoalfabetico, presentando la stessa distribuzione di frequenze del
linguaggio naturale. Se non si verifica questo si riprova con un valore
diverso di k. Una volta ottenuta una buona approssimazione, ogni
colonna potrà essere attaccata come un cifrario monoalfabetico distinto,
analogamente all’analisi di Fourier per cui una forma d’onda complessa
si scompone nella somma delle sue semplici forme sinusoidali, più facili
da studiare. Questo tipo di attacco potrebbe essere vano se viene
utilizzata una chiave di lunghezza uguale o superiore a quella del testo
in chiaro.

145
Un cifrario effettua la cifratura di una unità di dimensione fissa di testo in
chiaro con ciascuna operazione di cifratura, un codice effettua la
cifratura di una unità linguistica di lunghezza variabile. Si può pensare di
combinare cifrario e codice. Ad es. la codifica di un messaggio potrebbe
produrre una lista di numeri di n cifre, la concatenazione di questi
numeri porta a formare una sequenza di cifre, che si potrebbe cifrare
con un cifrario polialfabetico. Un messaggio codificato, successivamente
cifrato viene definito supercifrato. Mentre i codici ed i cifrari di
sostituzione mascherano i simboli del testo in chiaro conservandone
l’ordine, i cifrari di trasposizione, riordinano le lettere senza alterarle.
Le trasposizioni e le sostituzioni sono facilmente implementate oggi, con
dei circuiti chiamati P-Box (trasposizioni) e S-Box (sostituzioni), spesso
combinati in cascata per ottenere cifrari più potenti. Includendo un
numero abbastanza grande di stadi (input) nel cifrario prodotto, l’output
può diventare una funzione non lineare dell’input.

Crittografia asimmetrica
I metodi crittografici esaminati hanno tutti in comune il fatto che,
scoperto il metodo utilizzato, il metodo stesso non è più utilizzabile in
146
quanto attaccabile. Dobbiamo attendere gli inizi del XX secolo per
ottenere nuovi metodi crittografici che rispettano il cosiddetto principio
di Kerchoff per cui il metodo deve essere pubblico, il segreto deve
risiedere solo nella chiave. La nascita della crittografia moderna
coincide con l’avvento di sistemi che rispettano tale principio. il primo
sistema di crittografia a rispettare questo principio fu quello dei nastri
perforati di Vernam che apparve durante la prima guerra mondiale.
Dopo la seconda guerra mondiale apparvero le macchine a rotori, una
sorta di automazione meccanica del cifrario di Vigeneré.
Va ricordata la macchina “Enigma”. Dopo che la Gran Bretagna dichiarò
guerra alla Germania il 3 settembre 1939, le operazioni di decrittazione
Britanniche furono spostate da Londra a Bletchley Park. Questa
cittadina di campagna era vicina alla, allora piccola, stazione ferroviaria
di Bletchley, a metà strada tra Oxford e Cambridge. Tra il 4 settembre
1939 e l'estate del 1944,Alan Turing (1912-1954) (uno dei più famosi
matematici di questo secolo, fra i fondatori dell'informatica teorica: forse
anche a causa delle circostanze misteriose in cui morì, il suo nome è
ormai entrato nella leggenda) allogiò al Crown Inn, a Shenley Brook
End, un villaggio vicino Bletchley.
Codici
La Crittografia, la scienza del fare e interpretare informazioni cifrate, fu
fino al 1979 un campo così gelosamente custodito dai governi, che le
pubblicazioni su di esso furono molto rare. Da allora i codici crittografici
sono stati analizzati e pubblicati e la crittografia è divenuta un
importante ramo della matematica. Così, il lavoro eseguito da Alan
Turing e i suoi colleghi a Bletchley Park può essere completamente
apprezzato solo ora.

L'opera di Turing
Quasi tutte le comunicazioni tedesche venivano criptate con una
macchina di cifra chiamata Enigma.
147
Questa macchina è una rappresentante niente affatto indegna di una
classe di cifrari a rotore, utilizzati fino all'introduzione di cifrari elettronici
e microelettronici che hanno sconvolto e trasformato il mondo della
crittografia.
Per forzare l'Enigma (alcuni dettagli della soluzione sono tenuti segreti
fino ad oggi) Turing, per conto del governo inglese, si servì di
gigantesche macchine chiamate appunto Colossi, che possono
considerarsi i precursori dei moderni calcolatori elettronici.
Alcuni sostengono che il 1943, l'anno in cui entrarono in funzione i
Colossi, sia l'anno di nascita dell'informatica, ma forse anche questa
data va anticipata di qualche anno a favore delle ingegnose macchine
elettroniche progettate dal tedesco Konrad Zuse fin dal 1963. Turing è
autore di ricerche estremamente raffinate e molto profonde sul concetto
logico-matematico di calcolabilità: la strumento che egli ha proposto per
affrontare il problema è noto oggi col nome di macchina di Turing.
Le macchine di Touring non hanno niente da spartire coi Colossi, non
possiedono né valvole, né transistor, né circuiti integrati (come i
calcolatori della prima, della seconda o della terza generazione), esse
sono macchine "astratte" e meramente "ideali" che esistono solo mente
di Turing e in quelle dei logici che proseguono le sue ricerche.
Una delle prime macchine di cifra a rotori è stata costruita dal
californiano Edward Hebern, che la brevettò nel 1921. Autentici gioielli
della crittografia meccanica sono le macchine costruite da Boris
Hangelin; nel 1927 egli aveva rilevato una ditta che produceva materiale
crittografico e che ancora oggi è prospera e fiorente, anche se ormai i
rotori sono entrati nei musei della scienza. Per rendersi conto di quanto i
tempi siano cambiati basterà ricordare che l'Enigma aveva un grande
inconveniente: era sprovvisto di stampante. I risultati apparivano
illuminati su una tastiera apposita, lettera dopo lettera, e una persona
doveva provvedere a trascriverli a mano su un foglio di carta. Una
stampante elettro-meccanica avrebbe appesantito troppo il congegno e
lo avrebbe reso poco maneggevole: un problema che la tecnica odierna
consente di superare senza difficoltà.
Il lavoro del matematico polacco consentì al gruppo di ricerca guidato da
Alan Turing, uno dei primi veri informatici, passato alla storia per la
148
macchina che porta il suo nome,di scoprire, decrittandoli, i piani
strategici più importanti dei nemici tedeschi. L’avvento dei computer
lanciò la vera sfida del ventesimo secolo: l’ideazione di un algoritmo che
generasse chiavi per cui anche il più potente dei calcolatori impiegasse
millenni per la decodifica! I sistemi ideati non dovevano resistere ad un
attacco a forza bruta di un calcolatore sufficientemente potente da
tentare tutte le combinazioni possibili.
Nel 1975, IBM ha sviluppato il DES (Data Encryption System), L'IBM,
che per molti anni ha dominato incontrastata il mondo dei computer,
introdusse nel 1975 un suo cifrario espressamente progettato per l'uso
informatico: il Data Encryption Standard o DES.
Si tratta di un cifrario misto che prevede 16 trasformazioni successive
(trasposizioni e sostituzioni). In pratica il testo chiaro viene suddiviso in
blocchi da 64 bit (equivalenti a 8 caratteri); ogni blocco è sottoposto a
una trasposizione data in base ad una chiave di 64 bit; si applica quindi
per 16 volte una funzione cifrante e alla fine la trasposzione inversa di
quella iniziale.
La chiave deve naturalmente essere concordata tra mittente e
destinatario; si tratta quindi ancora di un cifrario a chiave segreta.
Il DES è stato presentato come un cifrario assolutamente sicuro, ma su
questa presunta inattaccabilità si sono accese molte polemiche e certo
anche molte leggende. La critica più fondata è quella di Hellman della
Stanford University, che sostiene che la chiave è troppo corta e che il
codice potrebbe essere forzato con una crittoanalisi di tipo esaustivo.
In effetti le chiavi possibili sono 256 (8 dei 64 bit sono usati come bit di
controllo e ne restano quindi solo 56 per la chiave), un numero molto
elevato ma forse non più fuori della portata dei moderni supercomputer.
Il DES ha comunque il vantaggio della velocità di cifratura che è molto
superiore a quella del suo principale rivale: il codice RSA.
Il codice RSA permette di cifrare un messaggio attraverso un
procedimento che richiede l'utilizzo dei numeri primi
 Si determini la prima chiave n, prodotto di p e q, due numeri primi
molto elevati, tali che la fattorizzazione di n sia difficile o

149
perlomeno n risulti una funzione unidirezionale rispetto al tempo
d'uso del codice. N viene infatti resa pubblica.
Esempio: n=pq=5*7=35
 Si calcoli dunque il valore della funzione di Eulero in n: b=f(n)=(p-
1)*(q-1) il cui valore rimane segreto; si scelga ancora un intero d
tale che d e f(n) siano primi tra loro, infine il suo inverso h, ovvero il
più piccolo x per cui (dx-1)/f(n) é un intero, il numero h é la
seconda chiave, e viene reso pubblico, mentre d resta segreto.
Esempio:

b=f(n)=(5-1)*(7-1)=4*6=24

d=7

k=7x-1/24

7x-1=k*24

7x=k*24 +1

x=k*24+1/7

sostituisco a k 2 per far risultare x un numero intero ed ottengo


x=7, dunque h=x=7

 Per trasmettere il messaggio lo si traduce inizialmente in un


vettore di numeri (in precedenza ci si è accordati riguardo alla
modalità di "traduzione"). Stabilita dunque la sequenza numerica
m1, m2....mr si trasmettono gli m uno alla volta.
Il crittogramma corrispondente a m è allora c=m n mod n.
Esempio:

prendiamo m=3

c=mn mod n=37 mod 35=2187 mod 35=17

150
 La chiave di decifrazione è costituita dall'intero b, segreto, nella
formula m=cb mod n.
Esempio: m=cb mod n=1724mod 35=3

In sintesi:per cifrare un messaggio dunque il trasmettitore deve


prendere le diverse cifre pubbliche del ricevente e costruire un
messaggio cifrato, quest'ultimo a sua volta utilizza la parte segreta del
suo codice per decifrarlo.

Utente Parte pubblica Parte segreta

Ricevente n h n=p*q b=f(n) d

Il codice RSA viene considerato sicuro perchè, essendo la formula di


decifrazione basata su f(n) calcolabile solo se a conoscenza di p e q,
non esiste un algoritmo efficiente per scomporre n in p e q, perlomeno in
tempi accettabili.
Potrebbe sorgere il dubbio che esista un modo di calcolare f(n) senza
passare per p e q: questa ipotesi in effetti è verificabile ma ha lo stesso
grado di complessità di fattorizzare n.
Nel 1998 fu costruito un computer, costato 600 milioni di lire capace di
decrittare un messaggio cifrato con il DES in meno di 3 giorni/CPU! Il
DES fa parte della classe degli algoritmi simmetrici di cifratura. In un
algoritmo simmetrico viene utilizzata la stessa chiave (generata
dall’algoritmo) per cifrare e decifrare il testo, quindi sia il trasmettitore
che il ricevitore devono, entrambi, conoscere la chiave.. Una rivoluzione
fondamentale nel modo di concepire i sistemi crittografici si ha con
l’introduzione degli algoritmi asimmetrici o a chiave pubblica. Con questi
algoritmi, ogni utente che voglia comunicare con altro utente genera una
coppia di chiavi (K d , K i ), K d viene resa pubblica mentre K i rimane
segreta (la conosce solo il proprietario). Gli algoritmi asimmetrici hanno
le seguenti proprietà: - il messaggio cifrato con una chiave può essere
decifrato solo con l’altra e viceversa- dalla conoscenza di K d non è
possibile risalire a K i e viceversa.
151
Distinguiamo 3 ipotesi:

1. L’utente A vuole inviare un messaggio all’utente B con la certezza


che sia solo B a poter leggere il messaggio (messaggio privato e
identità del mittente incerta). In questo caso A cifra il messaggio m
con la chiave K d (pubblica) di B e glielo invia. B utilizza la sua
chiave K i (privata e segreta) per decifrare il messaggio m. In
questo modo assicuriamo la segretezza. In genere si preferisce,
per i bassi tempi computazionali, usare i metodi simmetrici per
garantire la sola segretezza, mentre si ricorre ai metodi
asimmetrici quando il problema è garantire anche l’autenticazione.
2. L’utente A vuole inviare un messaggio all’utente B con la certezza
che solo e soltanto B possa leggere il messaggio e con la certezza
da parte di B che sia stato proprio A ad averlo inviato (messaggio
privato e certezza identità mittente). In tal caso A cifra m con la
propria chiave K i (privata) ottenendo m1 (certezza su identità del
mittente), poi cifra m1 con K d (pubblica) di B (privatezza del
messaggio) e lo recapita a destinazione ottenendo m2. Alla
ricezione B decifram2 con la propria chiave K i (privata)
riottenendo m1, (privatezza del messaggio) poi decifra m1 con K d
(pubblica) di A (certezza identità di A) riottenendo m. Solo B può
leggere il messaggio (privato) ed avere la certezza sull’identità del
mittente. . In questo modo si ottiene l’autenticazione.
3. A vuole inviare uno stesso messaggio a più persone (rendere
pubblico il messaggio) in modo che ciascuno dei destinatari sia
certo dell’identità del mittente.(messaggio pubblico e certezza
identità mittente). Nella fattispecie A cifra il messaggio m con la
152
propria chiave Ki (privata) e lo invia a n persone. Chiunque delle n
persone decifra m con Kd (pubblica) di A ottenendo la certezza
sull’identità del mittente perché solo A conosce la sua chiave
segreta. In quest’ultimo caso si garantiscono sia l’autenticazione
che la segretezza.

Possiamo, a questo punto, riassumere le proprietà di un algoritmo a


chiave pubblica come segue: Sicurezza dei messaggi da chiunque
verso chiunque Il numero di chiavi è proporzionale al numero di utenti
Il segreto risiede solo nella chiave, l’algoritmo è pubblico. Questi
algoritmi, complessivamente più sicuri rispetto a quelli simmetrici
presentano delle problematiche che ne limitano l’utilizzo:

 Tempi di computazione lunghi in quanto i numeri (testo e chiave)


coinvolti nei calcoli sono estremamente grandi.
 E’ necessario avere chiavi molto lunghe per ridurre al minimo la
probabilità di forzature.
 Inadatti per testi molto lunghi.

Si preferisce a volte implementare degli algoritmi ibridi: un algoritmo


simmetrico combinato con uno asimmetrico. Facciamo un esempio.
Supponiamo che l’utente A voglia inviare un messaggio all’utente B:

 A genera una chiave K, con un algoritmo simmetrico, ad esempio il


DES, cifra m con K (K è lunga pochi bit) ottenendo m1
 A cifra K con la chiave pubblica di B (operazione veloce per la
lunghezza di K) ottenendo K1 (utilizzo di un algoritmo asimmetrico,
ad esempio l’ RSA).
153
 A invia a B : m1 e K1 e distrugge K

Vediamo adesso cosa accade dalla parte del destinatario:

 B riceve K1 e m1.
 B decifra K1 con la sua chiave privata ottenendo K (metodo
asimmetrico)
 B decifra m1 con K ottenendo m (metodo simmetrico)

I sistemi ibridi sono attualmente quelli più usati. Il PGP, attualmente il


pacchetto applicativo crittografico più diffuso nella rete, permette di
utilizzare algoritmi a chiave pubblica quali l’ RSA ed alcune sue varianti
e come algoritmi simmetrici una evoluzione del DES (3DES) o altri
come l’IDEA. Nel 1977 Ronald Rivest, Adi Shamir e Leonard Adleman
(dalle cui iniziali deriva l’RSA), un gruppo di matematici e informatici del
MIT (Massachusetts Institute of Technology) si resero conto che i
numeri primi erano la base ideale per ottenere una facile procedura di
cifratura ed una difficile procedura di decrittazione. Per costruire la mia
coppia di chiavi, posso prendere due numeri primi molto grandi,
ciascuno dei quali dell’ordine di 80 cifre, poi li moltiplico insieme per
ottenere un numero composto ancora più alto. Per cifrare i messaggi, è
sufficiente conoscere il numero composto così ottenuto, mentre per
decrittarli, bisognerebbe conoscere i due iniziali numeri primi che sono
stati moltiplicati l’uno con l’altro, noti come i fattori primi. Potrei
pubblicare il numero composto e tenere per me i due fattori primi. E’
importante notare che anche se tutti sono a conoscenza del numero
composto, sarebbe estremamente difficile per chiunque scoprire i due
fattori primi. Facciamo un esempio: potrei rendere pubblico il numero
composto 589 (la mia chiave pubblica per l’appunto), che consentirebbe
a chiunque di inviarmi dei messaggi cifrati. Manterrei segreti i due fattori
primi di 527 (la mia chiave privata), in modo che solo io potrei decifrare i
messaggi. Se qualcuno riuscisse a scoprire i due fattori primi, allora
potrebbe decifrare i messaggi a me inviati, ma persino con un numero
così piccolo non è affatto ovvio quali siano i due fattori primi. In questo
caso basterebbero comunque pochi minuti di lavoro con un personal
computer di media potenza per scoprire che i fattori primi sono 31 e 19
154
(31 x 17 = 527) e perciò le mie chiavi non resterebbero sicure per molto
tempo. Nella realtà il numero composto che pubblicherei avrebbe più di
duecento cifre, che rende praticamente impossibile il compito di trovare i
suoi fattori primi. Anche se i computer più potenti del mondo venissero
impiegati per dividere questo enorme numero composto nei suoi due
fattori primi, ci vorrebbero parecchi anni per ottenere la risposta. Perciò
per evitare possibili decrittazioni basterebbe cambiare il numero
composto ogni anno. Una volta all’anno potrei rendere pubblico il mio
nuovo enorme numero composto e chiunque vorrà cimentarsi nella
decrittazione dei miei messaggi dovrà ricominciare a cercare con il
computer i due numeri primi. Per citare alcuni dati reali, nel 1999
l’Istituto Nazionale Olandese ha fattorizzato con successo un numero di
140 cifre impiegando vari computer in parallelo per un totale di oltre
3000 ore di CPU (più di 4 mesi) corrispondenti a 2000 anni - MIPS. Si
deve osservare come un numero di 140 cifre corrisponde a circa 465 bit,
largamente al di sotto delle dimensioni minime che normalmente si
danno alle chiavi che è di 1024 bit. Questo valore è stabilito, tra l’altro,
anche dal sistema normativo italiano in tema di firma digitale.
Nonostante siano stati mossi vari attacchi e non sia dimostrabile
matematicamente la sua sicurezza totale, l’RSA costituisce il
fondamento dei sistemi crittografici su cui si basano i meccanismi di
sicurezza ed autenticazione di internet e dei maggiori sistemi informativi.
E’ stata recentemente introdotta una nuova classe di algoritmi
crittografici chiamata curve ellittiche che abbassano di un ordine di
grandezza i tempi computazionali dell’RSA, ma parliamo pressoché di
ricerca.

155
La firma digitale
La firma digitale è stata introdotta dall’art. 15, comma 2 della legge nr.
59/1997. Essa stabilisce che “gli atti, dati e documenti formati dalla
pubblica amministrazione e dai privati con strumenti informatici o
telematici, i contratti stipulati nelle medesime forme, nonché la loro
archiviazione e trasmissione con strumenti informatici, sono validi e
rilevanti a tutti gli effetti di legge”. Il regolamento emanato dapprima con
il D.P.R. 513/1997 e successivamente con il DPR 445 del 28 dicembre
2000 (Testo Unico) ha fissato i requisisti che il documento informatico
deve possedere per avere pieno valore legale. Le regole tecniche sono
state fissate dal DPCM 8 febbraio 1999. Per “documento informatico” si
intende la “rappresentazione informatica di atti, fatti o dati
giuridicamente rilevanti”. In generale per documento si intende sia il
supporto cartaceo che il contenuto che in esso viene rappresentato;
tramite la firma tradizionale, quella autografa, viene identificata la
persona, ed il firmatario stesso sanciscecome propri i contenuti scritti nel
documento. Un documento informatico può essere modificato e
riprodotto un numero indefinito di volte ottenendo copie assolutamente
uguali all’originale in quanto il contenuto è svincolato dal supporto. Per
fornire al documento informatico identici requisiti forniti dalla firma
autografa, occorre una autenticazione digitale che attribuisca al
contenuto del documento informatico piena validità legale. Il
regolamento contenuto nel Testo Unico definisce, infatti, la “firma
digitale” come “il risultato della procedura informatica (validazione)
basata su un sistema di chiavi asimmetriche a coppia, una pubblica e
una privata, che consente al sottoscrittore tramite la chiave privata e al
destinatario attraverso la chiave pubblica, rispettivamente, di rendere
manifesta e di verificare la provenienza e l'integrità di un documento
informatico o di un insieme di documenti informatici”. La rivoluzione è
introdotta dal combinato disposto dagli artt. 8 e 10 del DPR 445: "il
documento informatico da chiunque formato, l'archiviazione su supporto
informatico e la trasmissione con strumenti telematici, sono validi e
rilevanti a tutti gli effetti di legge se conformi alle disposizionidel

156
presente regolamento". Inoltre, "Il documento informatico munito dei
requisiti previsti dal presente regolamento (sottoscrizione con firma
digitale e compilazione in conformità alle regole tecniche) soddisfa il
requisito legale della forma scritta ed ha efficacia probatoria ai sensi
dell’articolo 2712 del codice civile”. Ne deriva, quasi con
sequenzialmente che "Il documento informatico, sottoscritto con firma
digitale in conformità a quanto previsto dall’art. 23, ha efficacia di
scrittura privata ai sensi dell'articolo 2702 del codice civile".

L’art. 23 del Testo Unico sancisce che “l’apposizione o l’associazione


della firma digitale al documento informatico equivale alla sottoscrizione
prevista per gli atti e documenti in forma scritta su supporto cartaceo”.
Infine l’art. 27 stabilisce che “chiunque intenda utilizzare un sistema di
chiavi asimmetriche di cifratura deve munirsi di una idonea coppia di
chiavi e rendere pubblica una di esse mediante la procedura di
certificazione”. Dalle definizioni fornite ci si rende conto di trovarsi di
fronte ad una vera e propria rivoluzione: il documento e la firma digitale
assumono lo stesso valore, legale e probatorio, delle rispettive
157
controparti cartacee. Uno degli effetti di questa rivoluzione è che i
cittadini potranno corrispondere con le PP.AA, e tra loro per via
telematica. Attraverso la firma digitale si può certificare, quindi, il
contenuto informativo di un documento senza intervenire in alcun modo
sul supporto fisico che ospita il documento stesso. L’unico requisito che,
a norma di legge, un documento elettronico deve soddisfare per essere
equiparato ad una scrittura privata è quello di essere convalidato
mediante l’associazione di una firma digitale generata secondo una
opportuna procedura tecnica. La firma digitale è il risultato di un calcolo
numerico operato, mediante tecniche crittografiche asimmetriche (RSA),
sul documento cui sarà associata. Le proprietà fondamentali della firma
digitale sono: la correlazione con il documento in quanto è il risultato di
un calcolo effettuato sul documento; assoluta garanzia dell’autenticità
del mittente del documento; integritàassoluta del documento in quanto
è impossibile la falsificazione; non ripudi abilità intesa come assoluta
impossibilità di disconoscere la paternità del documento da parte
dell’autore; separazione dal documento; univocità. Esaminiamo
singolarmente le proprietà:
Correlazione con il documento: Il calcolo della firma coinvolge la
chiave privata del mittente e il contenuto del documento che deve
essere firmato. Se il documento non ha contenuto la firma non è
generata, pertanto è impossibile firmare documenti in bianco.
Garanzia dell’autenticità del mittente: Se A vuole rendere pubblico un
documento, ma vuole assicurare a chi lo legge l’autenticità dell’autore,
allora A cifra il documento con Ki (privata e segreta di A) e lo pubblica.
Chiunque, utilizzando Kd (pubblica di A), può decifrare il documento ed
avere così la certezza dell’autenticità dell’autore (l’unico in possesso di
Ki in grado di cifrare il documento)..
Integrità assoluta del documento: Poiché nella generazione della
firma è coinvolto il contenuto del documento, se viene variato il
documento ogni verifica successiva darà esito negativo.

158
Non ripudiabilità: La firma digitale può essere generata solo dal
proprietario della chiave segreta, quindi solo lui può essere l’autore del
documento firmato con quella chiave.
Separazione dal documento: La firma e il documento firmato sono due
entità separate che possono viaggiare anche separatamente. La si potrà
esibire solo in casi di contestazioni sull’autenticità del documento
stesso. La firma non modifica il documento.
Univocità: Poiché il calcolo della firma digitale coinvolge il contenuto del
documento, la firma varia da documento a documento anche se
generata con la stessa chiave. Ciò impedisce di falsificare, imitare e
duplicare una firma prelevandola da un documento valido. Per generare
la firma digitale occorrono: una funzione Hash pubblica un sistema di
cifratura asimmetrica.

La funzione hash
Nella moderna crittografia le funzioni hash hanno assunto un ruolo
fondamentale per la garanzia dell'integrità dei dati e l’autenticazione dei
messaggi. Una funzione hash prende in input un messaggio e
restituisce un output denominato codice hash, risultato hash, valore
hash o semplicemente hash.

Più in dettaglio, una funzione hash h, a stringhe di bit di lunghezza


arbitraria e finita, associa stringhe di lunghezza fissata, n bit. La
funzione , con dominio D e codominio C tali che , è del
tipo molti-ad-uno. L’idea di base delle funzioni hash è che un valore
hash può servire come una immagine rappresentativa compatta
(impronta digitale o anche message digest) di una stringa di input, e può
159
essere usato come se fosse univocamente identificativo di quella
stringa.
Viene fuori il problema della firma digitale dei messaggi lunghi. Nella
valutazione degli schemi di firme digitali è emerso il problema dei
messaggi lunghi. Tutti gli schemi presentati sono in grado di firmare
messaggi di lunghezza fissata:
RSA: messaggio di 512 bit firma 512 bit;
DSS: messaggio di 160 bit firma 320 bit.
Una soluzione banale consiste nel dividere il messaggio originale in
blocchi e di firmare indipendentemente ogni blocco. Gli svantaggi di
questo approccio sono:
 Spazio: l’elevata dimensione della firma che cresce
proporzionalmente al numero di blocchi del messaggio.
 Tempo: il rallentamento della verifica della firma dato che questa
operazione comporta l’interazione dell’algoritmo di verifica su tutti i
blocchi del messaggio e, di conseguenza il calcolo ripetuto di
operazioni complesse, quali ad esempio l’esponenziazione
modulare.
 Sicurezza: la possibilità che un nemico in ascolto capti il
messaggio, selezioni ad hoc vari blocchi e li riproponga in un
nuovo messaggio, automaticamente firmato, di significato diverso
da quello originario.
L’uso di una funzione hash pubblica h fornisce una soluzione efficiente a
tutti questi problemi. La strategia che potrebbe essere adottata da un
utente A che intendesse firmare un proprio messaggio x di lunghezza
arbitraria è la seguente:
1. Calcola z=h(x)

2. Firma il valore hash z costruendo y= tramite la sua chiave


privata .

160
3. Trasmette all’utente B la coppia (x,y).
Una volta che il messaggio firmato è stato trasmesso sia il destinatario B
che chiunque atro risultasse interessato alla verifica della firma effettua
le seguenti operazioni:
1. Calcola z=h(x), mediante h() che è pubblica.

2. Verifica che y è la firma di z : , mediante la chiave


pubblica di A.
La scelta di una funzione hash, che permetta di realizzare schemi di
firme digitali per documenti di qualsiasi dimensione è un’operazione
critica. Infatti, occorre assicurarsi che la funzione individuata non
indebolisca la sicurezza dello schema di firma, fenomeno che si verifica
quando la funzione produce facilmente collisioni. In tal caso è facile
intuire che il nemico può trovare agevolmente più messaggi x, tali che
h(x)=z per un certo z di cui conosce la firma, allora può costruire
contraffazioni.

Una classe distinta di funzioni hash, chiamate "message autentication


codes" (MAC) permette l’autenticazione di messaggi con tecniche a
chiave simmetrica. Gli algoritmi MAC possono essere visti come funzioni
hash che prendono due input funzionalmente distinti, un messaggio ed
una chiave segreta e producono un output di dimensione fissata, con
161
l’intento che diventi irrealizzabile in pratica produrre lo stesso output
senza la conoscenza della chiave segreta. MAC può essere usato per
fornire l’integrità dei dati e l’autenticazione dei dati originari di tipo
simmetrico.Per essere efficace, un algoritmo di hash deve soddisfare i
seguenti requisiti:

 può essere applicato a dati di qualunque dimensione


 produce un risultato di lunghezza fissa
 per qualsiasi codice di hash h, non è praticamente possibile
trovare un dato di input tale per cui l’algoritmo produca h come
risultato (l’algoritmo è cioè a senso unico)
 per qualunque dato di input x, non è praticamente possibile trovare
un dato y diverso da x per cui l’algoritmo produca lo stesso codice
di hash
 è praticamente impossibile trovare una coppia di dati tale per cui
l’algoritmo produca lo stesso codice di hash quando è applicato a x
eay
 la modifica di qualsiasi bit del dato di input produce una modifica
del codice di hash

Infrastruttura a chiave pubblica


La gestione delle chiavi è uno degli aspetti problematici della firma
digitale. Il D.P.C.M. 8 febbraio 1999 affronta quest’aspetto stabilendo
chi, e soprattutto come debba gestire le chiavi. Chiameremo Autorità di
Certificazione o Certification Autority (C.A.) l’ente chiamato a gestire le
chiavi e PKI (Public Key Infrastructure) le regole di interazione anche di
tipo gerarchico. La C.A. ha il compito di rilasciare le chiavi di
sottoscrizione dopo aver certificato l’identità del titolare. La coppia di
chiavi può essere generata dal titolare stesso attraverso un dispositivo
conforme alla legge. La chiave privata deve essere conservata in un
dispositivo di firma (smartcard). La chiave pubblica è “firmata” dalla C.A.
con la propria chiave segreta (chiave di certificazione) a garanzia
dell’autenticità, insieme con altre informazioni che costituiscono il
Certificato. Il Certificato è pertanto un documento elettronico,
contenente informazioni relative al titolare e la chiave pubblica di firma
162
del titolare. Possiamo considerarlo come il risultato di una procedura di
certificazione che garantisce la corrispondenza biunivoca tra una chiave
pubblica ed il soggetto a cui essa appartiene. Per la normativa italiana il
Certificato deve contenere le seguenti informazioni:

 numero di serie del certificato


 ragione e denominazione sociale del certificatore
 codice identificativo del titolare presso il certificatore
 nome, cognome e data di nascita o, in caso di aziende, ragione o
denominazione sociale
 valore della chiave pubblica
 algoritmi di generazione e verifica utilizzabili
 inizio e fine del periodo di validità delle chiavi
 algoritmo di sottoscrizione

Vediamo come si ottiene il certificato: Il richiedente fornisce alla C.A. la


documentazione utile per accertare la sua identità: la C.A., a sua volta,
fornisce al richiedente un codice identificativo univoco; a seguito della
generazione delle chiavi asimmetriche, invia alla C.A. la chiave
pubblica; la C.A. genera e pubblica il certificato che contiene i dati del
titolare e la sua chiave pubblica che i destinatari eventuali utilizzeranno
per la verifica della firma. La chiave pubblica è pubblicata in apposito
163
elenco. L’accertamento della validità della chiave siottiene verificando
se la chiave di un proprio corrispondente è stata firmata dalla CA
utilizzando la chiave pubblica della stessa. Ogni C.A. deve iscriversi in
un elenco pubblico gestito dall’AIPA (ora CNIPA). La C.A. deve essere
una S.p.A. con le caratteristiche bancarie. Il Centro tecnico della Rete
unitaria della pubblica amministrazione (RUPA) ora parte integrante del
CNIPA, ha certificato la firma digitale del presidente dell'allora AIPA: con
questo atto si è completata la costruzione del sistema del documento
informatico, perché la firma del presidente serve a validare l'elenco
pubblico dei certificatori.

Sulle C.A gravano una serie di obblighi: identificare con certezza la


persona che fa richiesta della certificazione; rilasciare e rendere
pubblico il certificato specificare, su richiesta dell'istante, e con il
consenso del terzo interessato, la sussistenza dei poteri di
rappresentanza o di altri titoli relativi all'attività professionale o a cariche
rivestite; attenersi alle regole tecniche stabilite con l'apposito decreto
indicato nei precedenti alinea; informare i richiedenti, in modo compiuto
e chiaro, sulla procedura di certificazione e sui necessari requisiti tecnici
per accedervi; attenersi alle norme sulla sicurezza dei sistemi
informatici e a quelle sul trattamento dei dati personali; non rendersi
depositario di chiavi private; procedere tempestivamente alla revoca od
alla sospensione del certificato in caso di richiesta da parte del titolare o

164
del terzo dal quale derivino i poteri di quest'ultimo, di perdita del
possesso della chiave, di provvedimento dell'autorità, di acquisizione
della conoscenza di cause limitative della capacità del titolare, di
sospetti abusi o falsificazioni; dare immediata pubblicazione della
revoca e della sospensione della coppia di chiavi asimmetriche; dare
immediata comunicazione all'Autorità per l'informatica nella pubblica
amministrazione ed agli utenti, con un preavviso di almeno sei mesi,
della cessazione dell'attività e della conseguente rilevazione della
documentazione da parte di altro certificatore o del suo annullamento.

In merito alla Public Key Infrastructure (PKI), la legge prevede un


sistema di tipo gerarchico conforme allo standard ISO X.509 in base al
quale le chiavi delle C.A. sono certificate da una C.A. di livello superiore
fino ad arrivare ad una Super C.A. da cui dipendono, in cascata, tutte le
altre. Questo sistema si contrappone a quello tuttora in vigore su
Internet: “il Web of trust” in cui non esiste una Autorità; ogni utente
funge da certificatore per chiunque, firmando con la propria chiave
privata le chiavi pubbliche di coloro che conosce personalmente
(nessun valore legale ai fini ufficiali). Il sistema si basa sulla reciproca
fiducia in base al quale se A si fida di B e B si fida di C allora A si può
fidare di C (transitività del Web of trust). E’ l’utente stesso, quindi, che
mediante dei programmi come il PGP genera la sua coppia di chiavi e
scambia la sua chiave pubblica con le chiavi pubbliche dei suoi
interlocutori. Ogni utente conserva un archivio di chiavi pubbliche
165
associando ad ognuna due valori: appartenenza reale al presunto
titolare, capacità del titolare di garantire per altri.

Ogni volta che un soggetto invia dei documento firmati, si porta dietro, a
garanzia della sua, le firme dei soggetti che conosce e che garantiscono
per lui. Le regole tecniche del DPCM 8 febbraio 1999, già citate in
precedenza, restano valide anche in riferimento al DPR 445/2000 e
stabiliscono la formazione, la trasmissione, la conservazione, la
duplicazione, la riproduzione e la validazione, anche temporale dei
documenti informatici. Le principali tematiche trattate dal decreto
riguardano: modalità di generazione e conservazione delle chiavi di
sottoscrizione ( ad es. la lunghezza delle chiavi deve essere almeno di
1024 bit), di emissione e pubblicazione del relativo certificato; gestione
del ciclo di vita del certificato; regole per l’erogazione del servizio di
certificazione delle chiavi; modalità di generazione e verifica delle firme;
regole per la validazione temporale dei documenti informatici; regole
tecniche per le pubbliche amministrazioni. La durata temporale massima
delle chiavi e quella del certificato sono stabilite dalla C.A. Può avvenire
la loro revoca o sospensione nei casi previsti dalla legge. Per certificare

166
il momento temporale in cui è posta la firma la legge stabilisce che
possono essere utilizzate le cosiddette marche temporali che indicano il
momento in cui è stata completata una operazione in modo non
ripudiabile. Le marche temporali possono essere utilizzate anche per:
protrarre gli effetti di un documento oltre il limite della validità della
chiave di sottoscrizione; evitare che vengano redatti documenti
utilizzandocertificati di firma revocati o scaduti;

Per la legge italiana un dispositivo di firma è “un apparato elettronico


programmabile solo all’origine, facente parte del sistema di validazione,
in grado almeno di conservare in modo protetto la chiave privata e
167
generare al suo interno le firme digitali”. Uno degli strumenti che è
possibile utilizzare come dispositivo di firma è la smart card crittografica.
La smart card è simile, per dimensioni e forma, ad una carta di credito
ma incorpora un processore con capacità di memoria. Si accede alla
smart card mediante un PIN personale. E’ considerato un supporto di
memorizzazione affidabile oltre che portabile e legato al Titolare.
Attraverso una smart card dotata di processore crittografico è possibile:
generare e memorizzare al suo interno la chiave privata di firma;
apporre la firma digitale ai documenti informatici.
La smart card è letta da un apposito lettore collegato al computer
mediante porta seriale o usb. Naturalmente a corredo dell’interfaccia è
fornito anche apposito software. Vi sono, disponibili sul mercato, alcuni
prodotti per le firme digitali, ma finora solo alcune società in Europa
hanno iniziato ad offrire servizi in tale settore. Uno dei principali motivi è
la debolezza della domanda, in parte dovuta all'assenza di un
riconoscimento giuridico uniforme delle firme digitali. Esistono inoltre
problematiche legate all’assenza di standard tecnologici: sono in
commercio almeno 5 smart card con 5 lettori diversi. Un problema non
indifferente per l'utente finale, che dovrà andare in giro con un computer
portatile e diversi lettori per smart card. Qualche anno fa si è molto
parlato della possibilità di avere più applicazioni sulla stessa smart card,
perché dal punto di vista commerciale è molto attraente. Il problema è
chi possiede di fatto la smart card. Ci sono problemi di giurisdizione e di
responsabilità se mettiamo insieme, ad esempio, applicazioni bancarie e
di sanità. Il possessore della carta controlla i dati che ci sono sulla
stessa. È possibile avere applicazioni multiple solo all'interno dello
stesso dominio, quindi ha un senso che la banca inserisca all'interno
della sua carta diverse applicazioni, però non si possono sommare
domini incompatibili. La carta non è di nostra proprietà, la carta è di chi
l'ha emessa. E’ auspicabile giungere ad avere almeno un solo lettore
anche se ogni produttore di smart card tende ad imporre il suo standard.

168
Uso della crittografia su internet: SSL
La tecnologia crittografica di gran lunga più diffusa su Internet per
effettuare sessioni di scambio informazioni sicure si chiama Secure
Sockets Layer Handshake Protocol (SSL). Questo protocollo è stato
realizzato da Netscape Communications Corporation ma è supportato
sia da Navigator che da Microsoft Internet Explorer. Infatti per utilizzare
il sistema Ssl non è necessario acquistare o scaricare un nuovo
programma, è già tutto incluso nel browser.
Ssl è un sistema basato sulla crittografia asimmetrica detta anche a
chiave pubblica. Come tutti i sistemi di questo tipo ogni utente o
organizzazione ha una coppia di chiavi, una pubblica e una privata. La
chiave pubblica viene distribuita mentre quella privata viene tenuta al
sicuro. Il punto debole di questo tipo di sistemi è che sono suscettibili di
plagio. In altre parole non è possibile essere sicuri che una chiave
pubblica appartenga realmente alla persona o all'organizzazione a cui
viene associata. Questo perchè le chiavi pubbliche vengono distribuite
liberamente sulla Rete. Una volta ottenuta una chiave pubblica si può
verificare che questa appartenga realmente alla persona indicata
verificando, via telefono con quest'ultima per esempio, che le
fingerprints della chiave privata e di quella pubblica siano identiche.
Solo a questo punto posso riporre piena fiducia nella chiave pubblica.
Un sistema di questo tipo, efficiente per lo scambio tra utenti privati,
diventa problematico se applicato a grosse organizzazioni che
gestiscono migliaia di clienti al giorno. Per questo motivo sono nate le
Certification Authorities (Ca). Queste non sono altro che organizzazioni
che si pongono come garanti della reale corrispondenza tra una
persona fisica o un'organizzazione e la corrispondente chiave pubblica
tramite il rilascio di un certificato digitale.
Facciamo un esempio concreto. Mettiamo il caso che Mario Rossi
debba acquistare della merce dal sito di Pinco & Pallino. Nel progettare
il negozio virtuale Pinco & Pallino ha richiesto e ottenuto di essere
certificato dalla Ca di Verisign. Al momento della transazione quindi
Pinco & Pallino ha in mano il proprio certificato digitale rilasciato da

169
Verisign. Nel frattempo Mario Rossi ha accreditato Verisign come
Certification Authority di fiducia e ne possiede la chiave pubblica.
 Mario Rossi invia una richiesta per avviare una sessione di
scambio informazioni protetta da un sistema crittografico al sito di
Pinco & Pallino. Questo può avvenire semplicemente accedendo,
tramite un link o la digitazione di un Url, al sito predisposto per il
commercio elettronico.
 In risposta a questa richiesta il server su cui è ospitato il sito di
Pinco & Pallino invia il proprio certificato digitale. Questo certificato
digitale è stato rilasciato da Verisign. Il certificato contiene le
seguenti informazioni:
o Il nome di Pinco & Pallino.
o La chiave pubblica di Pinco & Pallino.
o La data di scadenza della chiave pubblica di Pinco & Pallino.
o Il nome della Ca in questione, in questo caso Verisign.
o L'impronta digitale di Pinco & Pallino.
o Tutte queste informazioni sono firmate digitalmente con la
chiave privata di Verisign.
 Mario Rossi apre il certificato digitale con la chiave pubblica di
Verisign. Visto che egli ripone piena fiducia nelle informazioni che
recano questa firma ora ha in mano la chiave pubblica di Pinco &
Pallino autenticata.
 Mario Rossi genera una chiave detta di sessione. Questa chiave
ha una vita molto breve e viene utilizzato solo per la transazione in
corso, poi viene eliminata.
 Ora Mario Rossi cripta la chiave di sessione con la chiave pubblica
di Pinco & Pallino, in cui ora ripone piena fiducia, e la spedisce al
server.

170
 Il server che ospita Pinco & Pallino recupera la chiave di sessione
decifrando il messaggio con la propria chiave privata.
 A questo punto il server che ospita Pinco & Pallino genera un
messaggio che viene criptato con la chiave di sessione.
 Mario Rossi riceve questo messaggio, verifica che la chiave
ricevuta del server sia quella corretta e avverte il server
dell'avvenuta identificazione.
 A questo punto entrambi gli interlocutori si sono identificati, il
canale sicuro è stato aperto e la sessione criptata viene avviata.
Tutti i dati scambiati da ora in poi verranno criptati con la chiave di
sessione.
Questo è in breve quello che avviene con Ssl, altri protocolli di questi
tipo funzionano allo stesso modo. I tempi di reazione di una sessione
criptata sono generalmente più lenti rispetto alla navigazione normale.
Questo perché a ogni click i dati vengono criptati dal browser e
decriptati del server, o vice versa, prima di essere processati. Per
questo stesso motivo non tutte le pagine all'interno di un sito
predisposto per il commercio elettronico vengono criptate.
Secure Sockets Layer (SSL) è un protocollo per la protezione di un
canale di comunicazione attraverso una rete e funziona allo strato di
trasporto, tra i protocolli di trasporto e di applicazione. Come altri
protocolli di sicurezza di rete, SSL utilizza la crittografia simmetrica e
asimmetrica e le funzioni di hash per fornire l’autenticazione del server
(e in opzione anche del client), la cifratura dei messaggi e l’integrità dei
dati.
Quindi quando un client (tipicamente un browser) accede a un sito web,
è possibile che trovi una parte delle pagine protette, come accade nei
siti che supportano transazioni bancarie o commerciali e la raccolta di
informazioni personali tramite moduli da compilare (form). Quando il
client passa da una pagina pubblica a una pagina sicura, il web server
invoca SSL per proteggere la comunicazione e l’utente se ne accorge
perché l’URL della pagina è preceduto da https (cioè HTTP over SSL)

171
anziché http; inoltre compare solitamente un’icona nella finestra del
browser che segnala la presenza di una connessione protetta.

Funzionamento di PGP
Con Pretty Good Privacy si possono cifrare i messaggi di posta
elettronica. Per raggiungere un alto livello di sicurezza, PGP ricorre a un
algoritmo a doppia chiave, basato su coppie di numeri primi assai alti.
All'utente finale in realtà non interessa sapere esattamente come
funzione l’algoritmo, gli basta sapere che una volta avviato, PGP è in
grado di generare due lunghe stringhe di caratteri: una è la chiave
personale; che dovrà essere custodita gelosamente, e non essere
comunicata a nessuno; l'altra è la chiave pubblica, che si dovrà
distribuire a tutti i potenziali corrispondenti.
Come si legge nel sito ufficiale di PGP (http://www.pgpi.com) il codice
sorgente aperto serve a tranquillizzare tutti i paranoici che sospettano
che PGP nasconda delle volute backdoor (porte di accesso conosciute
solo da che ha scritto il programma) che renderebbero vulnerabile la
cifratura di PGP agli sviluppatori del programma. Il software è reperibile
alla URL: http://www.pgpi.com/download/#5.0i.
Una volta prelevato il programma, sarà molto semplice installarlo. Per
avviare la procedura di installazione basta fare un doppio click sul file
appena scaricato e seguire le istruzioni. Ad un certo punto sarà
necessario inserire il proprio nome, cognome ed indirizzo e-mail. Subito
dopo sarà richiesto di scegliere la lunghezza in bit della coppia di chiavi
che il programma genererà per noi (si va da un minimo di 768 bit, per
una chiave a basso livello di sicurezza, fino ad un massimo di 4.096,
che corrisponde ad un livello di sicurezza pressoché inviolabile). Fatta la
nostra scelta il programma ci chiederà se vogliamo inoltrare la nostra
chiave pubblica ad un keyserver (un computer che immagazina e rende
disponibili elenchi di chiavi pubbliche archiviate in relazione agli indirizzi
e-mail degli utenti). Prima di accettare questa opzione bisogna
considerare che questa operazione diminuisce leggermente la sicurezza
della comunicazione PGP. Infatti è possibile immaginare che un
172
espertissimo hacker sostituisca sul keyserver la nostra chiave pubblica
con un'altra, potendo così mettere in chiaro i messaggi di posta
elettronica in viaggio verso il nostro personale mail server. Ovviamente
è assai poco probabile che possa accadere una cosa del genere. In
ogni caso, se veramente la sicurezza ci sta a cuore, è meglio
consegnare direttamente, magari di persona su un dischetto, la nostra
chiave pubblica agli interlocutori con cui vogliamo stabilire una
corrispondenza totalmente sicura. Fatta dunque la nostra scelta di
pubblicazione o meno sul keyserver, l'installazione può dirsi terminata e
siamo così in grado di iniziare ad utilizzare PGP 5.

Ovviamente c’è bisogno della chiave pubblica e chiave privata


Chi volesse scrivere un messaggio sicuro, dopo averlo scritto in chiaro
lo dovrebbe dare in pasto alla sua versione di PGP, assieme alla chiave
pubblica del destinatario. PGP usa la chiave pubblica per crittografare il
messaggio, ma attenzione: chiave pubblica e chiave privata sono legate
in modo tale che un messaggio crittografato con una chiave pubblica
può essere decifrato solo disponendo della corrispondente chiave
privata! Ciò significa che lo stesso mittente non potrà più decifrare il
messaggio che PGP ha codificato per lui. Potrà però spedirlo in tutta
sicurezza: solo il destinatario, che dispone della sua chiave privata,
potrà leggerlo.
In realtà di norma un messaggio viene crittografato due volte: con la
chiave privata del mittente, il che ne assicura la provenienza, e con la
chiave pubblica del destinatario, il che ne assicura la segretezza).

Cifrare un messaggio. – Funzionamento

Per criptare il testo di un messaggio, Pgp utilizza la funzione Appunti di


Windows. In altre parole si può scrivere il testo della mail direttamente
nel programma di posta elettronica, copiarne il contenuto negli appunti,
aprire PGPtools, criptare il contenuto degli appunti e poi copiare di
nuovo il contenuto degli appunti (ora criptato) nel programma di posta
elettronica.
Facciamo un esempio concreto utilizzando Netscape Messenger 4.0 .
Aperto il programma di posta si seleziona l'opzione per scrivere un
nuovo messaggio. Si compila il messaggio per intero.

173
Si seleziona l'intero messaggio con la funzione Seleziona tutto, si copia
il testo selezionato, si apre il menù delle funzioni di Pgp e si seleziona
Launch PGPtools. Si aprirà la seguente finestra.

A questo punto cliccare il bottone per criptare il testo (il secondo


partendo da sinistra). Si aprirà un'altra finestra in cui viene chiesto quale
file criptare. Seleziona la voce Clipboard (Appunti). In questo modo si
cifrerà il contenuto degli appunti.

174
Verrà chiesto quale chiave utilizzare. In questo caso visto che si sta
scrivendo a Marco selezionare la sua chiave pubblica.

Se si deve inviare il messaggio a più destinatari è possibile selezionare


più chiavi pubbliche. Sarà necessario il possesso di una sola delle
chiavi private corrispondenti per decriptare il messaggio.
A questo punto si può tornare nella finestra in cui si stava componendo
il messaggio e si incolla. In questo modo si sta copiando il contenuto
degli Appunti (ora criptato) nel messaggio. Il risultato dovrebbe essere
questo:

175
Ora che il messaggio è stato cifrato si può spedirlo tranquillamente
Decifrare un messaggio
Se si riceve un messaggio criptato con la propria chiave pubblica si può
decriptarlo con la propria chiave privata. Per decriptare un messaggio in
codice per prima cosa occorre aprirlo. Dovrebbe apparire una cosa
simile all'immagine.

176
Selezionare il testo del messaggio. Aprire la finestra PGPtools e
selezionare il tasto per decriptare e verificare i messaggi (cerchiato in
rosso nella figura).

Apparirà una finestra in cui verrà chiesto di specificare quali file


decifrare. Selezionare il tasto Clipboard (Appunti).

177
Visto che per decriptare il messaggio bisogna utilizzare la propria chiave
privata verrà chiesta la "passphrase" (la parola d'accesso).

Il programma ora decifrerà il messaggio e si potrà leggere il messaggio


in chiaro.

178
Domande di comprensione del capitolo 8
Rispondere alle domande che seguono per verificare di aver appreso
tutti i concetti illustrati in questo capitolo.
Le risposte alle domande sono riportate nell’allegato A alla fine del libro.
Se qualche risposta data dovesse risultare errata, si consiglia di
rivedere i concetti specifici dove si sono commessi errori.
1. Cosa si intende per crittoanalisi?
a. Lo studio per svelare le password segrete
b. Lo studio per svelare il messaggio cifrato g
c. Lo studio dell'algoritmo segreto
2. Nella crittografia asimmetrica uno di questi elementi è diffuso
pubblicamente. Quale?
a. La chiave
b. Il messaggio
c. L’algoritmo g
3. Se l’utente A vuole dimostrare la sua identità con l’utente B, come
deve autenticare il messaggio??
a. Con la sua chiave pubblica
b. Con la sua chiave privata g
c. Con la chiave pubblica di Bob
d. Con la chiave privata di Bob
4. Quali, tra questi termini, identifica l'hash?
a. Digest g
b. PKI
c. CA
5. Come viene chiamato un certificato emesso da una Certification
Authority ufficiale?
a. X.509 g
b. Id digitale
c. Firma digitale
d. PEC

179
SOMMARIO

CAPITOLO 5: MONITORARE LA RETE ................................................................................................... 4

Firewall ..................................................................................................................................................................... 4

Personal firewall ..................................................................................................................................................... 7

Tipologie di firewall basate su filtraggio dei pacchetti ....................................................................................... 8

Filtraggio statico dei pacchetti .............................................................................................................................. 8

Stateful inspection..................................................................................................................................................11

Packet filter con content inspection ....................................................................................................................13

Architetture di rete e DMZ ....................................................................................................................................15

Firewall basati su proxy ........................................................................................................................................20

Uso dei proxy ..........................................................................................................................................................23

Reverse proxy .........................................................................................................................................................24

Proxy a protezione dei client ................................................................................................................................24

Uso dei proxy e controlli applicativi ....................................................................................................................25

Selezione del traffico con filtri IP .........................................................................................................................28

Network Address Translation ...............................................................................................................................29

Intrusion Detection System ...................................................................................................................................36

Tipologie di sistemi di IDS .....................................................................................................................................39

Network-Based IDS ................................................................................................................................................40

Host-Based IDS........................................................................................................................................................44

Distributed IDS .......................................................................................................................................................47

Accesso al traffico ...................................................................................................................................................48

Honeypots/Honeynets ...........................................................................................................................................50

VPN ...........................................................................................................................................................................51

Altri protocolli di tunneling ..................................................................................................................................60

Servizi locali ............................................................................................................................................................64

Gestione dei log ......................................................................................................................................................70


180
Domande di comprensione del capitolo 5 ...........................................................................................................73

CAPITOLO 6: WIRELESS E DISPOSITIVI MOBILI ............................................................................ 74

Tecnologie wireless ...................................................................................................................................................74

GSM/GPRS/UMTS .....................................................................................................................................................80

WLAN 802.11x ...........................................................................................................................................................81

Bluetooth ..................................................................................................................................................................86

Irda ............................................................................................................................................................................86

Sicurezza delle tecnologie wireless ............................................................................................................................87

Accessi alle rete .........................................................................................................................................................88

Wi-Fi ..........................................................................................................................................................................91

Attacco al bluetooth ..................................................................................................................................................93

Wireless DoS..............................................................................................................................................................95

Domande di comprensione del capitolo 6 .................................................................................................................99

CAPITOLO 7: AUTENTICAZIONE E CONTROLLO DEGLI ACCESSI ........................................... 100

Principi generali di autenticazione e controllo degli accessi .....................................................................................100

Autenticazione con password ..................................................................................................................................101

Autenticazione tramite token ..................................................................................................................................107

Autenticazione tramite PIN .....................................................................................................................................111

Autenticazione con Challenge ..................................................................................................................................111

Biometria.................................................................................................................................................................112

Autenticazione di rete .............................................................................................................................................114

Protocolli per l’autenticazione degli utenti ..............................................................................................................116

Kerberos ..................................................................................................................................................................118

Controllo degli accessi .............................................................................................................................................120

Disponibilità ............................................................................................................................................................121

Confidenzialità.........................................................................................................................................................121

Integrità...................................................................................................................................................................122
181
Responsabilità .........................................................................................................................................................122

Concetto di ‘Modello d’accesso’ ..............................................................................................................................122

Terminologia dei modelli di controllo accessi ..........................................................................................................123

Il modello Bell-La-Padula .........................................................................................................................................124

Modello di Biba .......................................................................................................................................................126

Modello di Clark e Wilson ........................................................................................................................................126

DAC (Discretionary Access Control) .........................................................................................................................128

MAC (Mandatory Access Control) ............................................................................................................................129

RBAC........................................................................................................................................................................130

Access Control List ...................................................................................................................................................133

Domande di comprensione del capitolo 7 ...............................................................................................................135

CAPITOLO 8: LA CRITTOGRAFIA....................................................................................................... 136

Un poco di storia .....................................................................................................................................................137

Crittografia simmetrica: Sostituzione o trasposizione ..............................................................................................142

Crittografia asimmetrica ..........................................................................................................................................146

La firma digitale .......................................................................................................................................................156

La funzione hash ......................................................................................................................................................159

Infrastruttura a chiave pubblica...............................................................................................................................162

Uso della crittografia su internet: SSL ......................................................................................................................169

Funzionamento di PGP ............................................................................................................................................172

Domande di comprensione del capitolo 8 ...............................................................................................................179

182

Potrebbero piacerti anche