Elementi di sicurezza nelle reti. Problemi di sicurezza attiva Trasmissione di dati attraverso una...

Preview:

Citation preview

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

Recommended