Elementi di sicurezzaElementi di sicurezzanelle retinelle reti
Problemi di sicurezza Problemi di sicurezza attivaattiva
Trasmissione di dati attraverso una rete con tecniche di cifratura che evitano che i dati vengano:
– intercettati e letti (secrecy)– modificati (message integrity)
Autenticazione e certificazione della propria identità (authentication)
Le funzionalità di sicurezza sono presenti in più livelli dell’architettura di rete
Network SecurityNetwork Security
Alice e Bob (possono essere router, host, applicativi di posta, ecc.) vogliono comunicare in modo sicuro.
Esempi comuni di situazioni in cui si richiede sicurezza:
relazioni sentimentali comunicazioni in tempo di guerra transazioni commerciali
Alice
Bob
Trudy
Trudy può essere passiva o attiva.
““Sicurezza” in InternetSicurezza” in Internet
Tecniche crittograficheTecniche crittografiche
Tipi di attacchiTipi di attacchi
attacco solo sul messaggio cifrato (cyphertext only)
attacco conoscendo il messaggio in chiaro (known plaintext)
attacco scegliendo il messaggio in chiaro (chosen plaintext)
Tecniche crittograficheTecniche crittografiche
Due approcci fondamentali: chiavi simmetriche: la cifratura e la decifratura usano
una stessa chiave segreta (es. cifratore di Cesare; cifratore monoalfabetico; cifratore di de Vigenere o polialfabetico; DES – Data Encryption Standard)
chiavi pubbliche: solo la chiave di decifratura è segreta; la chiave di cifratura è nota a tutti (es. algoritmo RSA – Rivest Shamir Adleman; funzioni ellittiche)
DES: Data DES: Data Encryption Encryption StandardStandard(US National(US NationalBureau ofBureau ofStandards)Standards)
La funzione f(·) compone in OR gruppi di 4 bit di Ki e di Ri espansi a gruppi di 6 bit. Il risultato va in XOR con Li.
Sicurezza del DESSicurezza del DES
DES usa chiavi da 64 bit di cui 8 di parità. Il 1999 DES Challenge III (gara di “cracking” del
DES-56) è stato vinto in 22 ore, utilizzando un calcolatore progettato appositamente e una rete di volontari.
Si può migliorare la sicurezza applicando più volte il DES con chiavi diverse. Per esempio il triplo DES (3DES) è stato proposto come standard crittografico per il Point-to-Point Protocol (PPP).
Crittografia con chiave Crittografia con chiave pubblicapubblica
L’utente genera, utilizzando software opportuno, una coppia di chiavi (sequenze di bit).
Le due chiavi sono correlate matematicamente, ma dall’una non si può ricavare l’altra.
Una, la chiave pubblica, viene distribuita, l’altra, la chiave privata, viene tenuta segreta.
Crittografia con chiave Crittografia con chiave pubblicapubblica
Protezione dalla letturaProtezione dalla lettura
Chi vuole inviare all’utente X un messaggio M senza che questo venga letto da estranei, usa la chiave pubblica E dell’utente X per cifrarlo. Il messaggio cifrato si calcola come F(E,M)
La funzione F usata per cifrare non è invertibile Il messaggio potrà essere decifrato solo dal
possessore della chiave privata D (la chiave pubblica non è più in grado di farlo) applicando nuovamente la funzione F:
M=F(D,F(E,M))=F(E,F(D,M))
Algoritmo RSAAlgoritmo RSA
Si scelgono due numeri primi grandi p e q. Si calcola n = pq e z = (p-1)(q-1). Si sceglie un numero e < n che non abbia fattori
comuni con z. Si trova un numero d in modo che ed-1 sia
esattamente divisibile per z. La chiave pubblica è (n,e), la chiave privata (n,d).
La codifica è c = me mod n. La decodifica è m = cd mod n.
Perché funziona RSA?Perché funziona RSA?
Teorema di Fermat-Eulero:
a(n) = 1 mod n a < n
(n) = funzione di Eulero: conta il numero di numeri primi con
n Piccolo teorema di Fermat:
ap-1 = 1 mod p a < p, p primo se n = pq, con p e q primi,
(pq) = (p) (q) = (p-1) (q-1) Infine: m = mde mod n = mde mod z + k z mod n
= m1 + k(p-1)(q-1) mod pq = m
Autenticazione del mittenteAutenticazione del mittente
L’utente X invia un’email (o effettua un posting su Usenet), cifrandola mediante la propria chiave privata
Se i destinatari sono in possesso della chiave pubblica del mittente, potranno decifrare il mail e, automaticamente, essere sicuri che è stato inviato dall’utente X
… o è stato solo codificato dall’utente X?
AutenticazioneAutenticazione
AutenticazioneAutenticazione
Cifrare la password non aiuta!
AutenticazioneAutenticazione
Utilizzo del nonce (numero usato una sola volta) e chiave simmetrica.
AutenticazioneAutenticazione
Utilizzo del nonce e chiave pubblica.
Autenticazione?Autenticazione?
Deve essere sicuro lo scambio della chiave pubblica!
Man-in-the-middle attackMan-in-the-middle attack
Alice e Bob non si accorgono dellapresenza di Trudy!
Protezione da contraffazione Protezione da contraffazione (message integrity)(message integrity)
Firma digitaleFirma digitale
Per ridurre la complessità computazionale sovente si “firmano” i message digest:
L’utente X “condensa” il messaggio usando un algoritmo di “hash”, quindi ne codifica il risultato (message digest) con la propria chiave privata.
Il messaggio viene inviato in chiaro, e l’utente X vi acclude il digest codificato.
Se il destinatario (o meglio il suo programma di email) riesce a decodificare con la chiave pubblica di X il digest, il messaggio non è contraffatto.
Firma digitaleFirma digitale
Firma digitale:Firma digitale:trasmissionetrasmissione
Firma digitale:Firma digitale:ricezionericezione
Message DigestMessage Digest
E’ un sommario o “impronta” del messaggio, simile a un controllo di parità.
Algoritmi di hashing: MD5 (RFC1321, RFC1810) SHA-1 (Secure Hashing Algorithm), standard
federale (USA)
Distribuzione delle chiaviDistribuzione delle chiavi
Le chiavi devono essere distribuite in modo sicuro.
Servono “notai elettronici”: Key Distribution Center per sistemi a chiave
simmetrica (es.: Kerberos - RFC1510 - sviluppato al MIT)
Certification Authority per sistemi a chiave pubblica
Key Distribution CenterKey Distribution Center
Il server del KDC ha una chiave simmetrica segreta KX,KDC per ogni utente registrato X.
R1 = one-timesession key
Occorre essere certi delle Occorre essere certi delle chiavi pubbliche!chiavi pubbliche!
Certification AuthorityCertification Authority
Compiti: verificare l’identità delle entità mantenere le chiavi pubbliche delle entità distribuire certificati (firmati dalla Certification
Authority) che legano la chiave pubblica di un’entità alla sua identità
ITU (X.509) e IETF (RFC1422) hanno standard per Certification Authority.
Certification AuthorityCertification Authority
I certificatiI certificati
Un certificato è una chiave pubblica “firmata” con la chiave privata di una Certification Authority
Esistono gerarchie di autenticazione (chi certifica le singole Authority?) con certificati conformi allo standard X.509
Richiedere un certificato ad una CA è possibile a chiunque (ma spesso si paga...)
Un certificatoUn certificato
e-mail sicurae-mail sicura
Segretezza, autenticazione e integrità del messaggio.In Internet PGP (Pretty Good Privacy - http://www.pgpi.com) funziona sostanzialmente secondo questo schema.
e-mail sicurae-mail sicura
Autenticazione e integrità del messaggio: si usa una firma digitale sul message digest.
eA(.)
H(.)
e-mail sicurae-mail sicura
Segretezza del messaggio: si usa una chiave simmetrica perché richiede un minor sforzo computazionale.
Sicurezza in InternetSicurezza in Internet
Livello applicativo: es. PGP Livello trasporto: Secure Socket Layer (SSL),
sviluppato da Netscape; Secure Electronic Transactions (SET) progettato da Visa International e MasterCard per transazioni con carte di credito
Livello IP: IP Security protocol (IPsec - RFC2401, RFC2411)
Problemi di sicurezza Problemi di sicurezza passivapassiva
Senza adeguate protezioni, la rete Internet è vulnerabile ad attachi mirati a:– penetrare all’interno di sistemi remoti– usare sistemi penetrati per sferrare attacchi
verso altre reti e sistemi Questi problemi sorgono a causa di:
– vulnerabilità intrinseca degli host– configurazioni approssimative e assenza di
controlli
Esempi recenti e frequentiEsempi recenti e frequenti
Vulnerabilità di sendmail (UNIX). Problema amplificato dalla vasta diffusione del programma
Vulnerabilità di server FTP, soprattutto nella configurazione anonymous
Installazione di “sniffer” (programmi in grado di carpire le password, che viaggiano “in chiaro” sulla rete, ed altre informazioni)
Pericoli in InternetPericoli in Internet
Autenticazione debole Monitoraggio di password spoofing Denial-of-Service Servizi LAN di scarsa affidabilità Host “a fiducia reciproca” Disponibilità del software di rete Poca scalabilità della sicurezza degli host
Autenticazione deboleAutenticazione debole
Problema presente su sistemi Unix multiuser Normalmente, le password sono contenute (cifrate)
in file leggibili da qualsiasi utente Usando programmi adatti è possibile decrittare le
password prelevate dal file Soluzione: shadow password. Il file di password
non è più leggibile dall’utente senza privilegi
Monitoraggio di passwordMonitoraggio di password
Diverse tecniche:
– Normalmente, un telnet o ftp tra sistemi Unix invia le password in chiaro in rete. Attraverso uno sniffer è possibile intercettarle
– Utenti incauti possono inviare password all’interno di email, intercettabili anch’esse
– Uso di programmi che “leggono” i tasti battuti da un utente su un terminale Xwindow
SpoofingSpoofing
Letteralmente, “spacciarsi per un altro host” Sostalzialmente, si tratta di assumere
l’indirizzo IP di un host “fidato” che ha accesso su un sistema protetto
Il modo più semplice consiste nell’attendere che l’host “reale” venga spento e non si creino conflitti tra indirizzo IP e indirizzo MAC
SpoofingSpoofing con source routing con source routing
Uno spoofing più sofisticato prevede l’uso dell’opzione di source routing IP:
– l’host “cattivo” assume l’indirizzo IP del “buono”– il “cattivo” costruisce una richiesta client in cui
specifica, hop per hop, il percorso dei pacchetti tra sé e il sistema attaccato, e ritorno
– il sistema remoto accetta la richiesta come provenisse dal “buono” e risponde al “cattivo” attraverso la source route indicatagli
Denial-of-ServiceDenial-of-Service
Attacco “subdolo” mirato ad alterare l’attività dell’interfaccia di rete o del software di rete, finché l’host va in “crisi”
Esempi:
– Bombardamento di ‘ping’– Apertura “parziale” di connessioni multiple (syn
flooding)
Denial-of-ServiceDenial-of-Service: : il il syn floodingsyn flooding
Consiste nell’inviare ad un server TCP una sequenza ininterrotta di segmenti SYN senza mai chiudere il three-way handshake
Il server riesce a tenere “in coda” solo un numero limitato di richieste di connessione, e non riesce più a servire quelle “vere”
L’hacker spesso modifica il proprio indirizzo di provenienza sui pacchetti IP, rendendo impossibile qualunque difesa
Servizi LAN a scarsa affidabilitàServizi LAN a scarsa affidabilità
Un esempio: NIS (Network Information Services) e NFS (Network File System)
Idea: gestisco il sistema in maniera distribuita (password, file system ...)
… ma in questo modo aumento la vulnerabilità globale perchè la violazione di uno degli host “regala” all’hacker l’accesso a tutti gli altri
Host a “fiducia reciproca”Host a “fiducia reciproca”
Soprattutto in relazione al servizio “rlogin”: la connessione di un utente da un certo host sono accettati senza password se la coppia (utente,host) è dichiarata “di fiducia”
– vantaggio: non trasmetto la password sulla rete
– svantaggio: se l’utente sull’host “di fiducia” viene violato, lo saranno, a catena, tutti quelli che si fidano
Disponibilità del software Disponibilità del software di retedi rete
Il software TCP/IP ed i suoi meccanismi sono ben noti
Il codice è disponibile liberamente, e può essere studiato per individuarne eventuali debolezze
Il pericoli di nuovi attacchi, sotto forme diverse, è dunque sempre attuale!
Poca scalabilitàPoca scalabilità
Vulnerabilità accertate sono difficili da risolvere se la sicurezza è gestita a livello di host
Occorre un approccio net-wide La soluzione comunemente scelta è il ricorso ad un
firewall
FirewallFirewall
Lo scopo principale di un firewall è di controllare l’accesso da e a una rete protetta
Il controllo è effettuato obbligando le connessioni a passare attraverso il firewall, dove vengono esaminate e valutate
Un firewall può essere un router o anche un PC, posizionati topologicamente per proteggere host o sottoreti
I benefici di un I benefici di un firewallfirewall
Protezione di servizi vulnerabili (come NFS, o spoofing con source routing)
Accesso controllato agli host interni (es.: solo accesso a mail server o WWW server)
Sicurezza concentrata scalabilità Statistiche di accesso, logging di traffico ...
Funzionalità di un Funzionalità di un firewallfirewall
Politica di accesso alla rete
meccanismi avanzati di autenticazione
filtraggio dei pacchetti
funzioni di proxy
… combinazioni delle singole funzionalità
FirewallFirewallPolitiche di accesso alla retePolitiche di accesso alla rete
Affronta il problema ad “alto livello”:
– quali servizi possono avere accesso alla rete (es.: tutti, tranne quelli esplicitamente negati)
– quali servizi devono essere “negati” (es.: tutti, tranne quelli esplicitamente permessi)
… e a “basso livello”:
– quali soluzioni pratiche vanno seguite per accettare o rifiutare i servizi
FirewallFirewallMeccanismi avanzati di autenticazioneMeccanismi avanzati di autenticazione
Poiché i firewall centralizzano il controllo dell’accesso ai siti, sono il punto più logico dove installare servizi avanzati di autenticazione (es: one-time password )
Internet
TELNET, FTPnon autenticati
TELNET, FTPautenticati
FIREWALL
FirewallFirewallFiltraggio di pacchettiFiltraggio di pacchetti
Realizzato attraverso un router in grado di scartare o accettare pacchetti in IP in base a:
– indirizzo sorgente IP– indirizzo destinazione IP– porta sorgente TCP/UDP– porta destinazione TCP/UDP
FirewallFirewallFunzioni di proxyFunzioni di proxy
Un firewall, sotto forma di application gateway, può “connettere” traffico in ingresso ed in uscita sostituendosi di volta in volta alla sorgente e alla destinazione
Può essere usato per una varietà di servizi (da FTP e Telnet, fino al più comune scambio client-server WWW)
La funzione di La funzione di proxyproxy
1.Un client interno invia una richiesta ad un server esterno alla rete
2. Il firewall/proxy intercetta la richiesta e la propaga all’esterno come se fosse sua.
3.Quando torna la risposta, se ne fa (eventualmente) una copia e poi la propaga al client come se provenisse direttamente dal server remoto
client server
F
Problemi irrisoltiProblemi irrisolti
Un firewall può introdurre dei problemi e può talvolta essere inefficace:– Accesso limitato a servizi “desiderati” (telnet, ftp, NFS)– Presenza di backdoors (connessioni modem che
“aggirano” il firewall)– Nessuna protezione contro attacchi “dall’interno” della
rete– Nessuna protezione contro virus scaricati dalla rete!– Possibili limiti sul throughput in ingresso/uscita dal sito
Top Related