Sicurezza delle Reti

Transcript

Sicurezza delle Reti
Sicurezza delle Reti
complementi
Ing. Rudi Verago
[email protected]
1
Proprietà
●
AUTENTICAZIONE: gli attori della comunicazione devono
dimostrare la propria identità
●
CONFIDENZIALITÀ: i dati sono cifrati
●
INTEGRITÀ: i messaggi non devono essere modificati
e a seconda delle applicazioni
●
●
●
AUTORIZZAZIONE: l'utente autenticato ha il permesso di
accedere a determinate informazioni e/o risorse
NON RIPUDIABILITÀ: impossibilità di negare ciò che si è
fatto con le proprie credenziali di accesso
ACCESSIBILITÀ: i dati devono essere sempre accessibili
2
Un po' di storia
●
Antica Grecia si usano cifrari con sostituzione semplice
●
Il cifrario Atbash nella Bibbia
●
IX sec a.C.: la scitala lacedemonica, riferisce Plutarco, era un bastone
in cui si avvolgeva ad elica un nastro di cuoio
●
II sec a.C : scacchiera di Polibio
●
I sec a.C. :cifrario di Giulio Cesare
●
IV sec d.C.: Enea il tattico compila il 1° trattato sui messaggi segreti
●
IV-V sec d.C.: ideazione codici indiani ed ebrei
●
Codici medievali
●
1586: cifrario di Blaise de Vigenere
●
Prima metà del '900: algoritmo di Vernan, Turing, Enigma
●
Dalla Seconda metà '900 crittografia moderna...
3
Semplici cifrari storici
●
Cifrario di Atbash: usato nel libro di Geremia per cifrare la
parola Babele, monoalfabetico che sostituisce la prima lettera
dell'alfabeto con l'ultima, la seconda con la penultima ecc.
Chiaro
a b c d e f g h i j k l m n o p q r s t u v w x y z
Cifrato
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
●
Cifrario di Cesare: usato nelle corrispondenze private,
sostituzione semplice (3 lettere in avanti)
Chiaro
a b c d e f g h i j k l m n o p q r s t u v w x y z
Cifrato
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
4
Codice di Vigenere
●
●
●
●
Codice a sostituzione polialfabetica, si traslano le lettere in
base alla chiave
Chiave:
LINUX
Chiaro:
Cifrato:
N O N S O R R I D E R E
Y W A M L C Z V X B C M
Attenzione: si parte da 0 (A=0, B=1...)
Al termine della lunghezza della chiave si riparte dalla prima
lettera
Uso della tavola di Vigenere per una veloce codifica/decodifica:
26righe*26colonne, con traslazione orizzontale di uno ogni riga
5
Enigma e Turing
●
●
●
●
Durante la seconda guerra mondiale le
trasmissioni militari venivano cifrate con la
macchina Enigma inventata dall'ingegnere Arthur
Scherbius; usava un cifrario a rotore; enigma non
aveva stampante (questioni di peso) e i risultati
apparivano illuminati sulla tastiera una lettera alla
volta
Si basava sulle trasposizioni, potevano essere
singole o multiple
E' stata forzata da Turing per conto del governo
inglese, usò macchine chiamate Colossi (vista la
loro dimensione)
http://www.math.arizona.edu/~dsl/enigma.htm
6
Questione di chiave
●
●
La robustezza dell'algoritmo dipende dalla lunghezza della chiave
Il cifrario ideale (“improbabile” da realizzare) prevede un uso chiave
casuale lunga quanto il plaintext (cifrario di Vernan)
chipertext=chiave+plaintext
●
Shannon ha dimostrato nel 1949 questo teorema:
cifrario sicuro <=> cifrario di Vernan
●
Questo è intuitavamente vero poiché con una chiave così lunga e
casuale il chipertext non contiene informazioni sul plaintext, quindi
invulnerabile ad attacchi classici della crittanalisi
●
Requisito fondamentale: non usare due volte la stessa chiave
●
Problema: SCAMBIO DELLA CHIAVE
●
E' stato usato dai russi durante guerra fredda
7
Crittografia moderna
●
●
●
L'introduzione degli elaboratori rende inefficace l'uso delle tecniche
crittografiche classiche poiché si è in grado di elaborare numerose
quantità di dati
La crittografia
dell'algoritmo
classica
si
basa
sul
concetto
di
segretezza
La crittografia moderna abbandona questo concetto, concentrandosi
sulla non reversibilità dell'algoritmo poiché quasi sempre l'algoritmo è
di pubblico dominio
8
Chiave simmetrica 1/2
●
●
●
Entrambi gli attori (A e B, ossia Alice e Bob di norma) della
comunicazione conoscono un segreto (K), che è rappresentato
tipicamente da una sequenza di bit lunga
A elabora il file con K e lo trasmette, B sempre con K esegue
l'operazione inversa e ricostituisce il file nella forma originaria
A e B devono accordarsi sull'algoritmo di cifratura e sulla chiave
9
Chiave simmetrica 2/2
●
●
La debolezza si basa sulla difficoltà maggiore o minore, da
parte dell'hacker, di indovinare la chiave
La sicurezza quindi è basata sull'impossibilità di ricavare la
chiave dal messaggio criptato
●
Il pregio di questa metodologia è la semplicità
●
Algoritmi più diffusi: DES (e varianti), AES, IDEA, BlowFish
●
I limiti sono fondamentalmente:
●
●
Gli attori devono scambiarsi la chiave in modo sicuro (tramite
un canale sicuro)
Rinnovo delle chiave
10
Esempio: procedimento
●
●
●
L'hacker conosce:
●
X = messaggio cifrato
●
F = algoritmo
●
128 bit = dim chiave (supponiamo sia nota)
ma non conosce
●
Z = plaintext
●
K = chiave
Procedimento: prova tutte le combinazioni di 128 bit (K1, K2 ...) e
controlla se Z = F (Ki,X), le possibili combinazioni sono
128
2
11
Esempio: tempo di esecuzione
128
38
2 =3.4⋅10
10
supponiamo 10 chiavi al secondo
22
t~3.3⋅10 anni
12
Chiave asimmetrica 1/2
●
●
Ogni utente deve avere una coppia di chiavi, una privata e
una pubblica, e deve esistere un algoritmo in grado di
cifrare con una chiave e decifrare con l'altra
B diffonde la sua chiave pubblica, A acquisisce questa chiave,
utilizzandola cifra i dati e li trasmette; l'utente B decifra il file
usando la propria chiave privata.
13
Chiave asimmetrica 2/2
●
●
●
●
L'assunto fondamentale è che la chiave privata non sia
facilmente ricavabile da quella pubblica e dai messaggi
cifrati (che di solito vengono scambiati tra canali insicuri)
E' necessario tenere segreta la chiave segreta, solo il
proprietario deve conoscerla, nemmeno un eventuale ente
fornitore deve esserne a conoscenza: qualcosa di simile
succede con i PIN dei Bancomat o delle carte di credito
E' necessario assicurare l'autenticità della chiave pubblica,
introduzione di una Certification Authority (CA)
Introduzione Public Key Infrastructure (PKI)
14
Confronto tra i metodi
ASIMMETRICA
SIMMETRICA
●
Semplice l'implementazione e
la gestione della singola chiave
●
Complessa l'implementazione e
la gestione
●
Veloce
●
Lento (100 volte simmetrica)
●
Solo gli attori interagiscono
●
Introduce altri enti (CA...)
●
Chiavi brevi
●
Chiavi lunghe
●
Mediamente sicuro
●
Molto sicuro
SOLUZIONE: si usa una tecnica ibrida
Si usano le tecniche asimmetriche per scambiarsi le chiavi di
sessione, ossia le chiavi usate dalla crittografia simmetrica
15
Panoramica degli algoritmi
●
DES
●
3DES
●
IDEA
●
AES
●
chiave simmetrica(segreta)
#bit chiave=128,256...
Blowfish,
TwoFish
●
Serpent
●
RC*
●
DH
●
RSA
chiave asimmetrica (pubblica)
#bit chiave: 1024,2048...
16
Data Encryption Standard
●
●
●
●
Il DES è stato sviluppato dalla IBM e modificato dalla National
Security Agency (NSA)
Adottato come standard dal governo degli Stati Uniti dal
1977, dismesso nel 1998 quando la Electronic Frondier
Fondation realizza la DES Cracker Machine e documenta i
risultati nel libro “Cracking DES: Secrets of Encryption
Research, Wiretap Politics, and Chip Design”
Usa una chiave a 56 bit (+ 8 di controllo) per cifrare i dati in
blocchi da 64 bit
E' stato pensato per essere efficiente dal punto di vista HW
17
3DES
●
●
●
Per fronteggiare l'evoluzione HW si introduce 3DES: ripete l'operazione
del DES tre volte (chiave a 168 bit)
L'applicazione doppia di algoritmi di cifratura è suscettibile ad attacchi
di tipo meet-in-the-middle, che permette di decifrare i dati con al più
2^N+1 (N=dim chiave) tentativi; non si ricorre mai a soluzioni che
usano un numero pari di chiper
Svantaggio 3DES: lentezza
18
IDEA
●
●
●
IDEA è nato come evoluzione del DES nel 1991 da due
progettisti svizzeri: Xuejja Lai e James L. Massey (tipici nomi
svizzeri...)
IDEA usa blocchi da 64 bit ma chiavi da 128
E' uno degli algoritmi più usati nei software commerciali, ma
non ha mai avuto diffusione nel mondo open source poiché è
protetto da brevetto (un po' quello che succede con LZ77 e
LZ78)
19
Il concorso
●
●
National Institute of Standards and Technology (NIST) il 2 gennaio
1997 indice un concorso per trovare il nuovo sostituto del DES
Tra venti candidati vengono scelti i cinque finalisti:
●
Rijndael
●
Serpent
●
Twofish
●
RC6
●
Mars
Il vincitore risulta Rijndal, nel 2001 (dopo 5 anni di
standardizzazione) diventa lo standard AES
20
Advanced Encryption Standard 1/3
●
●
●
Rijndael è stato sviluppato da due ricercatori belgi Rijmen and
Daemen da cui ha preso anche il nome
E' stato dichiarato Federal Information Processing Standard
(FIPS) il 6 Dicembre 2001
Può usare tre differenti lunghezze di chiave: 128, 192 e 256 bit.
Interessante è un famoso confronto con l'antenato DES:
In the late 1990s, specialized DES Cracker machines were built that
could recover a DES key after a few hours... by trying possible key
values... assuming that one could build a machine that could recover
a DES key in a second, then it would take that machine
approximately 149 thousand-billion (149 trillion) years to crack a 128bit AES key. To put that into perspective, the universe is believed to
be less than 20 billion years old.
21
Advanced Encryption Standard 2/3
●
●
●
●
L'AES usa chiavi relativamente brevi (128 bit) avendo però un
affidabilità molto maggiore di qualsiasi altro algoritmo di
cifratura
La schedulazione della chiave è veloce, le richieste di
memoria sono basse, è efficiente in HW con poca memoria
Ottimizzazione per architetture parallele
Poiché sono presenti solo semplici operazioni a livello
logico permette di ottenere ottimi risultati in termini di
velocità: un'implementazione scritta in C++ su un Pentium 200
permette un efficienza di crittografia di 70 Mbit al secondo
22
Advanced Encryption Standard 3/3
●
●
●
L'algoritmo: messaggio XOR chiave K0, poi si ripete 10 volte la
funzione di cifratura F con chiavi generate tramite espansione K0
In ingresso ad ogni blocco si hanno messaggi da 16 byte, si effettua
una prima permutazione S ad ogni byte e successivamente una
seconda permutazione P a tutto il blocco
L'espansione delle chiavi si basa anch'essa su delle permutazioni delle
chiavi precedenti
23
Algoritmi asimmetrici
●
●
●
●
●
Sono stati Introdotti nel 1976 da Whitfield Diffie e Martin
Hellman
Come detto si basano su di una coppia di chiavi: una pubblica e
una privata non ricavabili una dall'altra
Risolve il problema della distribuzione della chiavi poiché quella
pubblica può/deve essere diffusa il più possibile
Il primo algoritmo in assoluto è il Diffie-Hellman (DH), si
basa sulla difficoltà dei problemi logaritmici; è solitamente
usato per concordare una chiave segreta simmetrica
Il “tempo di vita” di una chiave è strettamente correlato al suo
numero di bit
24
RSA
●
●
●
●
●
L'algoritmo più usato in assoluto è RSA (dalle iniziali degli
sviluppatori: Ron Rivest, Adi Shamir e Leonard Adelman)
Si basa sul concetto che è facile calcolare il prodotto di 2
numeri primi molto grandi ma, dato il loro prodotto, è
particolarmente difficile risalire ai fattori primi che lo
compongono
Il problema è infatti NP difficile
Più lunga è la chiave più sicura è la comunicazione, ma
complessa la cifratura dal punto di vista computazionale; chavi
lunghe 256 bit sono attaccabili in alcune settimane, 512 in
alcuni mesi e 1024 bit in alcuni secoli (o meglio anni)
Tipicamente vengono usate chiavi da 1024 (buon livello
sicurezza) o 2048 bit (considerata inattaccabile)
25
RSA: algoritmo 1/2
●
●
●
Operazione fondamentale: creazione chiavi, si basa sui numeri
primi
Si sceglie una chiave N tale che N = P * Q, con P e Q due numeri
primi molto grandi, N deve essere scelta in modo da essere
difficilmente fattorizzabile o meglio non fattorizzabile in breve tempo
Si calcola il valore Z della funzione di Eulero di N
Z = (P-1) * (Q-1)
●
Si scegli un valore D tale che D e Z siano primi tra loro
●
Si ricerca un numero E:
E*D mod Z = 1
26
RSA: algoritmo 2/2
●
Il plaintext M viene visto come una sequenza di bit e diviso in blocchi
M1, M2, M3. . . lunghi K bit, dove K è il più grande intero che
soddisfa l equazione: 2^K < N
●
Chiave privata= (N,D)
Chiave pubblica = (N,E)
●
La cifratura in fase di trasmissione avviene nel seguente modo:
Ci = MiE mod N
●
C =messaggio cifrato
●
In fase di ricezione si esegue la decodifica con la chiave privata:
Mi = CiD mod N
●
La sicurezza sta nel fatto che non è stato trovato il modo rapido di
fattorizzare due numeri primi, cioè trovare P e Q conoscendo N.
27
Firme del nuovo millennio
●
●
●
●
●
La firma autografata che si fa quando si sottoscrive un
contratto non assicura un livello di sicurezza adeguato, inoltre
in ambito digitale è molto difficile il suo utilizzo
L'integrità, cioè la certezza che il destinatario riceva i dati
inviati e non dati modificati, si esegue mediante il riassunto
matematico del file: firma elettronica
Si deve garantire che due file diversi non abbiano la stessa
firma.
Dalla firma elettronica deve essere impossibile risalire al
messaggio originale.
La firma digitale è un tipo di firma elettronica avanzata, ed
è la sola che conferisce al documento informatico il pieno
valore legale, è un particolare tipo di firma elettronica
qualificata basata sul sistema di chiavi asimmetriche
28
Firma digitale: applicazione
●
Il procedimento è invertito rispetto al caso normale della
crittografia asimmetrica:
●
●
●
●
●
●
M=messaggio, A=mittente, B=destinatario
A cifra il messaggio con la chiave pubblica di B e lo firma con la
sua chiave privata
B decifra il messaggio con la sua chiave privata e controlla
l'autenticità con la chiave pubblica di A
Se è tutto OK B è sicuro che è stato A ad inviare il messaggio
A può non cifrare tutto il messaggio ma solo il digest ottenuto
mediante l'hashing
La vera e propria firma è la cifratura dell'hashing
29
Modello firma
testo in
chiaro
A
testo in
chiaro
B
Firma
Cifratura
chiave
privata A
chiave
pubblica B
Controllo
firma
Decrifratura
chiave
pubblica A
testo
cifrato
chiave
privata B
30
Hashing
●
Tali algoritmi sono detti one-way-hash
●
●
●
●
●
●
Hash perché trasformano un testo in una stringa a lunghezza
fissa
One-way perché è facile calcolare tale stringa ma difficile
effettuare l'operazione inversa
Il mittente cifra il messaggio M ottiene X, invia X e il valore di hash H
calcolato su M (non è necessario che H sia cifrato)
Il destinatario decifra X ottenendo M, calcola l'hash J e controlla
l'uguaglianza di J e H; se sono uguali il messaggio è integro
E' usata anche per verificare l'integrità dei pacchetti, in questo caso
non si cifra il messaggio originale
Un semplice esempio di hashing uniforme è il modulo di M, dove M è
un numero molto grande: H(m) = m mod M
31
MD*
●
●
●
●
La serie degli MD* è stata sviluppata dalla RSA Data Security inc.
MD2: produce un valore di hash di 128 bit e richiede come input multipli di
16 byte; è stato violato
MD4: hash a 128 bit più veloce della funzione precedente richiede messaggi
multipli 512 bit; più sicuro di MD2
MD5 produce hash di 128 bit elaborando blocchi di 512 bit alla volta, per
questo usa il padding: si aggiungono un uno seguito da tanti zeri alla fine in
modo da ottenere un messaggio lungo un multiplo di 512-64 bit, infine si
aggiungono 64 bit contenenti la lunghezza originale del messaggio (modulo
264); è più lento di MD4 ma ha sicurezza leggermente maggiore
●
E' probabilmente l'algoritmo di hashing più usato (ad esempio per le
password in Linux), per creare chiave hash a 128 bit di un file in Linux:
md5sum nomefile
●
E' usato ad esempio per verificare l'integrità dei pacchetti disponibili su
Internet
32
SHA*
●
●
●
●
●
Il SHA è simile all MD4; creato dal NIST e della National Security
Agency (NSA) del governo degli Stati Uniti
Il messaggio viene elaborato a blocchi di 512 bit producendo di solito
(dipende dalle versioni) un hash di 160 bit, usa tecniche di padding
Non si usa la versione originale ma una variante, chiamata SHA-1,
introdotta per porre rimedio ad alcune vulnerabilità
Altre varianti sono state introdotte per corrispondere alle chiavi da
128, 192 e 256 bit dell AES; lo sforzo per rompere un algoritmo di
crittazione con attacco di tipo brute force è 2N.aes operazioni, ma con
un attacco di tipo birthday sono necessari soltanto 2(N..hash/2) tentativi,
la regola pratica dice che la N.hash=2*N.aes. SHA-256, SHA-384
and SHA-512 sono progettati per corrispondere dunque a chiavi AES
rispettivamente di 128, 192 e 256-bit
In Linux esiste, come per MD5, sha1sum nomefile
33
Certificati & C.
●
●
E' necessario assicurare l'autenticità della chiave pubblica
Si introduce un ente che autentica la chiave pubblica attraverso
la sua certificazione, garantendo che la chiave pubblica sia
stata generata dall'attore che legittimamente possiede la
relativa chiave privata
●
L'organo si chiama Certification Authority (CA)
●
L'organizzazione delle CA è ad albero
●
●
Inoltre esiste un Certification Revocation List (CRL) che si
occupa di gestire la scadenze/rinnovo dei certificati
L'entità a cui si certifica la chiave pubblica può essere una
persona, un organizzazione, un programma, un computer ecc.
●
La CA agisce quindi come terza parte fidata
●
E' fondamentale la marca temporale del certificato
34
CA: percorso di fiducia
●
●
E' necessario che la CA sia a sua volta certificata: gerarchia ad
albero
Ecco alcune CA italiane:
●
BNL Multiservizi S.p.A.
●
I.T. Telecom S.p.A.
●
Infocamere SC.p.A.
●
Regione Piemonte
●
Trust Italia S.p.A.
●
In.Te.S.A. S.p.A.
●
Postecom S.p.A.
●
ENEL.IT S.p.A.
Root CA
CA
PCA
CA
PCA
PCA
35
CA in Europa
36
Gli standard dei certificati
●
●
●
Lo standard più usato per i certificati è X.509, definisce quali
informazioni devono risiedere all'interno dei certificati
Per le trasmissioni che non possono gestire dati binari è
disponibile lo standard testuale Privacy Enhanced Mail (PEM)
La serie dei PKCS* (Public Key Cryptography Standard) è stata
definita da RSA nel 1991, sono standard informali, alcuni
esempi sono:
●
PKCS#1: RSA encryption standard
●
PKCS#3: usato con Diffie Hellmann (altro algoritmo molto usato)
●
PKCS#7: certificato+certificati relativi al percorso di certificazione
●
PKCS#11: usato con le smartcard o token USB crittografici
●
PKCS#12: security bag (anche con chiave segreta), usato con i
browser
37
Il futuro della crittografia
●
Biometria
●
Crittografia quantistica
●
...
38
Interfacce a linea di comando
●
Telnet, rlogin, rcp, rsh hanno molti punti deboli: tutte le
comunicazioni avvengono in chiaro, autenticazione compresa,
introducono problemi di spoofing e sniffing ma non solo
●
Secure Shell (SSH) offre l'alternativa sicura a questi “prodotti”
●
Instaura una comunicazione sicura tra due stazioni
●
●
Usa la tecnica mista: chiave pubblica per stabilire la
connessione e chiave segreta per la trasmissione
Il pacchetto di riferimento in Linux è OpenSSH
39
Comunicazioni sicure: SSL
●
Secure Sockets Layer
●
Protocollo aperto
●
●
Garantisce autenticazione, integrità e
confidenzialità
SSL Handshake
Composto da due parti:
●
●
●
HTTP
protocollo SSL HandShake:
autenticazione reciproca clientserver, negoziazione algoritmo di
crittografia, chiave segreta per la
prima sessione di comunicazione
protocollo SSL Record: si occupa
della vera e propria comunicazione,
si interfaccia con il TCP
SSLv3
SSL Record
TCP
IP
Host to Network
40
Implementazioni
●
●
L'implementazione open source di riferimento è OpenSSL (su cui si
basa tra l'altro anche OpenSSH)
HTTPS (HTTP Secure): può usare autenticazione two-way o oneway (senza certificato client), Trasmissione sicura di pagine web o
dati dei form HTML: ad controllo mail con yahoo.it quando si inviano
login-password, oppure si inserisce il numero di carta di credito su
amazon.com
●
●
●
In realtà si usa TLS (Transport Layer Security) che deriva dal
protocollo SSL; lavora tra livello 4 (trasporto) e livello 5
(sessione)
TLS definisce molti più messaggi di errore di SSL, inoltre ha
espedienti più efficienti per la sicurezza: differenze nel calcolo del
MAC e nell'espansione del master secret per la generazione delle
chiavi (TLS usa una funzione pseudocasuale)
In realtà TLS e SSL sono molto simili, ma non sono compatibili.
Vengono implementati entrambi nei browser
41
Virtual Private Network
A virtual private network (VPN) is a private data network that makes use
of the public telecommunication infrastructure, maintaining privacy
through the use of a tunneling protocol and security procedures
●
E' un'infrastruttura end-to-end, garantisce la sicurezza solo tra le
due entità ai capi della connessione
●
Assicura autenticazione, confidenzialità, integrità
●
Uso anche mezzo pubblico
42
Internet Protocol Security: IPsec
●
IPSec è il protocollo più usato per le VPN, è stato sviluppato
dalla IETF; è in realtà una suite:
●
●
●
●
●
●
●
Encapsulating
Security
Payload
riservatezza, autenticità e integrità
(ESP):
garantisce
Authentication Header (AH): garantisce integrità e autenticità
Internet Key
connessione
Exchange
(IKE):
gestisce
le
chiavi
di
Operativamente prima viene creato il tunnel con l'IKE (metodi chiave
pubblica) e poi si effettua comunicazione con AH e/o ESP
E' una sorta di SSL/TLS evoluto ed esteso a tutto il traffico IP
Algoritmi usati: MD5, SHA, AES, 3DES, BlowFish, DH, RSA, Radius,
SecureID, Smartcard, dati biometrici...
Opera a livello 3 della pila ISO/OSI sia in modalità trasporto che
tunnel
43
Alternative ad IPsec
●
●
●
PPTP (Point to Point Tunnelling Protcol): evoluzione del PPP
sviluppato soprattuto da Microsoft; è usato molto negli Internet
Service Provider; è il più vecchio e il più supportato da molti tipi di
rete; non usa PKI per l'autenticazione ma login-password; è in grado
di assegnare anche gli indirizzi IP; molto semplice
L2TP (Layer 2 Tunneling Protocol): sviluppato da Microsoft e
Cisco; supporta client anche non IP; lavora a livello datalink; è usato
di solito come connessione client-gateway o gateway-gateway
Tecniche miste: L2TP/IPSEC
44
Malware (wikipedia.org) 1/2
●
●
●
●
Virus: sono parti di codice che si diffondono copiandosi all'interno di altri programmi, o
in una particolare sezione del disco fisso, in modo da essere eseguiti ogni volta che il
file infetto viene aperto. Si trasmettono da un computer a un altro tramite lo
spostamento di file infetti ad opera degli utenti
Worm: questi malware non hanno bisogno di infettare altri file per diffondersi, perché
modificano il sistema operativo della macchina ospite in modo da essere eseguiti
automaticamente e tentare di replicarsi sfruttando per lo più Internet. Per indurre gli
utenti ad eseguirli utilizzano tecniche di social engineering, oppure sfruttano dei difetti
(bug) di alcuni programmi per diffondersi automaticamente
Trojan horse: software che oltre ad avere delle funzionalità "lecite", utili per indurre
l'utente ad utilizzarli, contengono istruzioni dannose che vengono eseguite all'insaputa
dell'utilizzatore. Non possiedono funzioni di auto-replicazione, quindi per diffondersi
devono essere consapevolmente inviati alla vittima. Il nome deriva dal famoso cavallo
di Troia
Backdoor: letteralmente "porta sul retro". Sono dei programmi che consentono un
accesso non autorizzato al sistema su cui sono in esecuzione. Tipicamente si diffondono
in abbinamento ad un trojan o ad un worm, oppure costituiscono una forma di accesso
di emergenza ad un sistema, inserita per permettere ad esempio il recupero di una
password dimenticata.
45
Malware (wikipedia.org) 1/2
●
●
●
●
Spyware: software che vengono usati per raccogliere informazioni dal
sistema su cui sono installati e per trasmetterle ad un destinatario
interessato. Le informazioni carpite possono andare dalle abitudini di
navigazione fino alle password e alle chiavi crittografiche di un utente.
Dialer: questi programmi si occupano di gestire la connessione ad Internet
tramite la normale linea telefonica. Sono malware quando vengono utilizzati
in modo truffaldino, modificando il numero telefonico chiamato dalla
connessione predefinita con uno a tariffazione speciale, allo scopo di trarne
illecito profitto all'insaputa dell'utente.
Hijacker: questi programmi si appropriano di applicazioni di navigazione in
rete (soprattuto browser) e causano l'apertura automatica di pagine Web
indesiderate.
Rootkit: i rootkit solitamente sono composti da un driver e, a volte, da delle
copie modificate di programmi normalmente presenti nel sistema. I rootkit
non sono dannosi in se ma hanno la funzione di nascondere, sia all'utente
che a programmi tipo antivirus, la presenza di particolari file o impostazioni
del sistema. Vengono quindi utilizzati per mascherare spyware e trojan.
46
Firewall
●
●
Ha il compito di difendere la rete locale dagli attacchi proveniente
dall'esterno (tipicamente da Internet); rende affidabile la
comunicazione tra rete trusted e untrusted; opera una difesa
perimetrale
Mette in atto policy di sicurezza anche complesse definendo regole
d'accesso alla rete privata, cioè limitando o permettendo l'accesso ad
alcune “applicazioni”
Internet
firewall
Lan
47
Tipi di firewall
●
●
●
●
Packet filtering: più comune, usa intestazione IP e TCP per
decidere se lasciare o meno un pacchetto, veloce e trasparente agli
utenti, svantaggi: non comprende il concetto di sessione
Proxy Service: Non filtrano i pacchetti ma regolano l'accesso;
quando un client tenta di collegarsi all'esterno viene creata una
connessione con il proxy, e solo quest'ultimo gestisce la connessione
all'esterno, costituiscono semplicemente un unico punto di accesso
alla rete esterna, possono prevedere l'autenticazione dell'utente,
svantaggi: non tutti i servizi possono appogiarsi ad un proxy,
prestazioni
Logging: registrazione accessi rete privata, tenendo traccia
soprattutto delle attività sospette, di solito è implementato all'interno
dei modelli firewall precedenti
...
48
Introduction Detection System
●
●
Sistema HW o SW che si occupa di rilevare e gestire le intrusioni in
modo il più possibile real time, posizionamento in punti strategici
del sistema
Due categorie:
●
●
●
Network (NIDS): costituiti da uno sniffer e da un motore (engine) per l'analisi e la
gestione dei dati raccolti mediante un insieme di regole sulla tassonomia degli
attacchi
Host-Based (HIDS): simile ad un scanner antivirus, check log, analisi
applicationi... rileva ad es. modifiche ai filesystem e comunicazione sulle porte
Problemi:
●
●
Falsi positivi e Falsi negativi
Di norma i falsi negativi sono più pericolosi dei falsi positivi, i secondi al massimo
possono provocare semplici DoS
●
Soprattutto nei NIDS difficoltà di scrittura dell'insieme di regole dell'engine
●
Errori piuttosto frequenti degli sviluppatori di software
49
Wireless
50
IEEE 802.11: standard wireless
Gruppo di lavoro
802.11a
trasmissioni 5 Ghz wireless
803.11b
trasmissioni 2.4 Ghz wireless
804.11c
Migliorie allo standard 802.11b
805.11d
Migliorare interoperabilità tra 802.1 e 802.11
806.11e
Supporto Quality of Service
807.11f
Migliorare interoperabilità tra AP differenti
808.11g
Evoluzione 802.11b
809.11h
Migliorare 802.1a
810.11i
Migliorare la sicurezza delle reti wireless
811.11j
Aumentare i canali nella banda 5Ghz in Giappone
812.11k
Misure radio
812.11n
Reti metropolitane e aumento banda disponibile
...
812.11u
●
Scopo
...
Connessione con reti non 802, ad es. Cellulari
802.11g: standard che ridefinisce il livello fisico e il MAC
(Medium Access Control) , banda teorica 54 Mbps
51
Insicurezza wireless
●
●
●
Per attaccare una rete cablata è necessario avere
accesso al mezzo fisico
Tutti invece hanno accesso all'aria: quindi è
teoricamente più semplice attaccare le reti wireless
Per questo motivo l'IEEE sin dalle prime versioni degli
standard ha previsto meccanismi di sicurezza
52
Wired Equivalence Privacy
●
●
●
●
WEP è il protocollo di base usato nelle reti 802.11
Chiavi statiche (non variano nel tempo), impostate manualmente
e devono essere scambiate tra tutti gli utenti della rete
Si basa sull'algoritmo
simmetrico RC4 e
lavora
a
livello
datalink (livello 2)
nella pila ISO/OSI
La lunghezza delle
chiavi WEP varia da
40 a 128 bit (256 e
512 sono di solito
soluzioni proprietarie)
53
Autenticazione
●
Ogni sottorete gestita da un AP (Access Point) ha un nome univoco detto
SSID (Service Set Identifier), SSID è di 32 bit e viene inserito in tutti i
pacchetti trasmessi; per connettersi a qualsiasi WLAN è necessario conoscere
almeno l'SSID
●
Di default l'SSID è inviato in broadcast: NON FARLO MAI!!!
●
I metodi di autenticazione di base sono due:
●
●
open key: un WT (terminale wireless, host) si autentica conoscendo
solo l'SSID, nel caso in cui il WEP sia attivo viene abilitato solo il traffico
di rete cifrato con la chiave corretto
shared key: utilizzato solo con WEP attivo:
1.WT invia la sua identità in chiaro all'AP, il suo MAC, la velocità di
connessione e SSID
2.AP risponde con un challenge in chiaro (breve pacchetto)
3.WT cifra il challenge con la chiave WEP e lo restituisce all'AP
4.Se la cifratura è corretta il WT è autenticato
●
Si può usare il MAC address filtering (difficoltà gestione ecc.).
54
Vulnerabilità di base
●
MAC filtering sono insicuri: sniffing e spoofing
●
Shared/Open Key non sono veri e propri metodi di autenticazione
●
●
●
SSID non deve essere inviato in broadcast e deve essere scelto
relativamente lungo e difficile da indovinare; ATTENZIONE perchè
viene appeso ad ogni messaggio
Per l'integrità (checksum) viene usato il Cyclic Redudancy Check
(CRC), è noto che si può calcolare la differenza di CRC di due
messaggi che differiscono di un solo bit; iterando la tecnica è
possibile modificare arbitrariamente n bit di un messaggio e
aggiustare correttamente il CRC
Il DHCP attivo in qualsiasi rete facilita l'attacco
55
WEP = disastro
●
●
●
●
●
Una chiave da 64 bit è formata da 40 bit sono riservati della chiave
WEP (settata dall'amministratore) mentre gli altri 24 sono un numero
casuale Initialization Vector (IV)
Il pacchetto cifrato (con 40+24 bit) viene inviato con lo IV in chiaro
riducendo pertanto la chiave a 40 bit effettivi
Gli IV vengono generati pseudo-casualmente, ma la sequenza si
riazzera spesso ad es. per problemi di comunicazione
I ricercatori Stubblefield, Ioannidis e Rubin hanno dimostrato, nello
studio intitolato “Using Fluhrer, Mantin and Shamir attack to break
WEP” che l'uso di uno stesso IV consente ad un hacker di risalire alla
chiave WEP usata analizzando il traffico cifrato
Hanno sperimentato inoltre che sono sufficienti da 500.000 a
1.000.000 di pacchetti (1/2 ore di comunicazioni) per risalire alle
chiavi.
56
Warchalking
●
Guerra dei gessetti: codice per segnare le reti già attaccate e per
comunicare ad altri le protezioni presenti; simboli segnati con dei
gessetti per terra davanti agli edifici (si usano anche mappe)
Kenneth Newman in una famosa
presentazione: “. . . dalla finestra del
mio appartamento riesco a captare il
segnale di 12 AP in 5 minuti: 6 default
(nessuna protezione, come sono usciti
dalla fabbrica) e 3 WEP . . .
camminando in Wall/Water/ Broad
Streets 150 AP in 20 minuti . . . in
macchina 448 in 90 minuti: 75
defaults, 26% WEP. . .”.
57
802.1x: una soluzione
●
Nato per le reti cablate ma applicabile alle reti wireless
●
Agisce a livello 2 datalink
●
Le richieste di accesso che arrivano all'AP vengono inoltrate ad un
server AAA (Authentication Authorization Accounting) sulla rete
cablata tipicamente RADIUS o Kerberos
58
EAP e 802.1x
●
●
●
●
802.1x definisce solo l'architettura ma non l'implementazione
L'EAP (Extensible Authentication Protocol) è la sua
realizzazione, provvede all'autenticazione e alla gestioni delle chiavi di
connessione
All'inizio era utilizzato sulle reti PPP; successive modifiche da parte
dell'IEEE hanno definito le specifiche EAPOL (EAP over LAN), ossia
metodi che permettono di incapsulare i messaggi EAP e di inviarli su
reti Ethernet o segmenti di reti LAN wireless
EAP usa un paradigma di comunicazione challenge/response, un
modello sincrono in cui sono definiti quattro tipi di messaggi:
●
EAP Request per le richieste di autenticazione o di credenziali
●
EAP Response come risposta alle request
●
EAP Success per comunicare il successo dell operazione
●
EAP Failure per la notifica di un errore
59
EAP: metodi one way
EAP-MD5
●
●
●
Il primo modello della serie EAP
Supporta esclusivamente l'autenticazione one-way (solo del client)
tramite login-password, non supporta il key management
Il nome deriva dal fatto che viene fatto l'hashing della password con
MD5; non è consigliato l'uso sulle WLAN ma solo sulle reti cablate
LEAP (Lightweigth EAP)
●
●
●
●
Protocollo proprietario della Cisco
Cifra i dati usando chiavi WEP dinamiche e supporta la mutua
autenticazione
La maggior parte delle implementazioni LEAP compatibili usa però un
autenticazione a livello di login-password
Recenti studi hanno evidenziato un estrema vulnerabilità nel caso
di preshared password
60
EAP-TLS
EAP-TLS (Transport Layer Security)
●
Essenzialmente è lo standard-de-facto in sistemi Linux e Microsoft
●
E' basato sui certificati e provvede alla mutua autenticazione
●
●
●
●
L'autenticazione EAP-TLS avviene automaticamente, senza alcun
intervento da parte dell utente, usa concetti di PKI: il client e il server
devono preventivamente avere un certificato valido e vi deve essere
un CA server
Al termine della fase di riconoscimento avviene la creazione di un
tunnel SSL/TLS
Il server provvede alla generazione delle chiavi per la sessione
wireless in modo dinamico
Ha il pregio di permettere una veloce riconnessione (via
rigenerazione della sessione del tunnel SSL/TLS).
61
EAP: metodi evoluti
EAP-TTLS (Tunnelled Transport Layer Security)
●
●
●
E stato sviluppato dalla Funk Software e dalla Certicom Corp
E un'estensione dell'EAP-TLS e non necessita della configurazione
del certificato dal lato client; si può appoggiare ad un'infrastruttura
esistente (ad es. LDAP o Active Directory) e per questo sta
riscuotendo notevole successo
Elimina il problema della distribuzione dei certificati PKI
PEAP (Protected EAP)
●
●
●
E', come il TTLS, un'evoluzione dell EAP-TLS ed è stato sviluppato da
Cisco, Microsoft e RSA Security Group
E' molto simile all EAP-TTLS e per questo è in diretta competizione
Anche il PEAP usa solo il certificato digitale del server per creare un
tunnel SSL/TLS cifrato su cui scambiare successivamente le
credenziali di autorizzazione del client
62
EAP: pregi
●
E' versatile
●
Lavora a livello due (datalink), teoricamente sicurissimo
●
●
●
Gli schemi con la mutua autenticazione eliminano l'attacco
Man-in-the Middle
Implementa un sistema di amministrazione e distribuzione di
chiavi centralizzato
Permette di definire in modo semplice policy centralizzate per
la classificazione degli utenti wireless
63
EAP: riassunto
64
Wireless Protected Access
●
●
●
●
●
●
WPA è un meccanismo di sicurezza sviluppato in attesa del nuovo
protocollo di sicurezza 802.11i
Uso del TKIP (Temporal Key Integrity Protocol): provvede alla
gestione dinamica delle chiavi tramite l'uso della lifetime; ad es. se
lifetime è uguale ad 1 minuto alla fine del minuto viene scambiata la
nuova chiave di sessione K cifrata con la chiave di sessione attuale,
tutte le comunicazione d'ora in poi avverranno con K
Il TKIP viene usato nel WPA con il protocollo WEP ma con IV di 48 bit
Introduzione nuovo algoritmo di integrità chiamato MIC che risolve i
problemi del CRC, usa 64 bit
Il WPA rimane però ancora suscettibile da attacchi di tipo DoS e non
solo in caso di PSK
Viene installato come firmware upgrade negli AP e SW upgrade nei
WT
65
802.11i
●
●
●
Integra TKIP e MIC
Sostituisce WEP con il nuovo algoritmo AES (standard NIST),
per questo richiede un coprocessore negli AP
Integra inoltre l'architectural framework 802.1x quindi le
tecniche EAP (preferibilmente su RADIUS o DIAMETER)
●
Ha un supporto più spinto per il roaming
●
Sicura deautenthication e deassociation
66