Corso di Reti di CalcolatoriA.A. 2005-2006Prof. D. Rosaci
Capitolo Sei:
Il livello delle Applicazioni
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Il livello delle applicazioni
Nessuno dei livelli visti in precedenza effettuano compiti realmente utili per l’utente, ma forniscono soltanto un supporto di comunicazione affidabile Tuttavia, anche a livello delle applicazioni vi è la necessità di protocolli di supporto per le applicazioni reali Analizzeremo tre classi di protocolli
– Sicurezza– DNS– Gestione della Rete
Inoltre analizzeremo due applicazioni reali:– Il World Wide Web– La posta elettronica
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
La Sicurezza nelle reti
Nei primi decenni di esistenza, le reti venivano usate solo dai ricercatori universitari per inviare messaggi o dai dipendenti delle industrie per condividere stampanti: scarse le necessità di sicurezza
Oggni milioni di cittadini usano Internet per effettuare operazioni che coinvolgono flussi di denaro e dati personali
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Le problematiche
Nessuno dovrebbe poter leggere o modificare messaggi destinati ad altri
Nessuno dovrebbe poter accedere senza autorizzazione a servizi remoti
Dovrebbe esser certa la provenienza di ogni messaggio
Dovrebbe essere impossibile intercettare e riprodurre messaggi autografi
Dovrebbe essere impossibile negare di aver inviato messaggi invece effettivamente spediti
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Gli avversari
Avversario Scopo
Studente Divertirsi a curiosare nella posta altrui
Hacker Verificare i sistemi di sicurezza di altri; rubare dati
Venditore Pretendere di rappresentare tutta Europa
Uomo d’affari Scoprire il piano di mercato di un concorrente
Ex dipendente Vendicarsi per essere stato licenziato
Cassiere Appropriarsi del denaro di una società
Agente di cambio Negare una promessa fatta ad un cliente via e-mail
Truffatore Rubare numeri di carte di credito
Spia Scoprire la forza militare di un nemico
terrorista Rubare segreti per una guerra batteriologica
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Quattro aree di problemi
Segretezza: riservatezza delle informazioni Autenticazione: determinare con chi si sta
parlando prima di rivelare informazioni Non disconoscimento: provare che una
persona abbia inviato un certo messaggio Controllo di integrità: essere sicuri che un
messaggio sia davvero uguale a quello spedito e non sia stato modificato
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Dove si trova la sicurezza?
Ogni livello contribuisce in qualche modo A livello fisico, si possono racchiudere le linee di trasmissione
in tubi sigillati pieni di gas argo ad alta pressione che, se fuoriesce, fa scattare un allarme
A livello data-link è possibile codificare i pacchetti appena lasciano la macchina sorgente e decodificarli sulla macchina destinazione
A livello rete è possibile installare firewall per accettare o non accettare pacchetti
A livello trasporto è possibile codificare l’intera connessione Nessuna di queste soluzioni risolve efficacemente i problemi di
autenticazione e di non disconoscimento: occorre operare a livello delle applicazioni per affrontare tali problemi
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
La crittografia
Storia lunga e pittoresca Quattro gruppi di persone hanno contribuito
a svilupparla:– Militari– Diplomatici– Scrittori di diari– amanti
I militari hanno avuto il ruolo più importante
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Limiti della crittografia tradizionale
Difficoltà del codificatore nell’eseguire le trasformazioni necessarie
Difficoltà di poter passare da un metodo crittografico ad un altro, quando il primo fosse stato scoperto
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Modello crittografico
Intrusi passivi: ascoltano semplicemente
Testo
in chiaro
Intruso
Metodo di cifratura, E
Testo cifrato, C=EK(P)
Chiave di decifratura, K
Chiave di cifratura, K
Metodo di decifratura, D
Testo
in chiaro
Intrusi attivi: possono modificare i messaggi
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Testi, chiavi, codifiche
Testo in chiaro P: messaggio da codificare E: funzione di codifica, parametrizzata attraverso
una chiave K C=EK(P): codifica del messaggio P D: funzione di decodifica, parametrizzata attraverso
la chiave K (la stessa utilizzata per la codifica) P=DK(C): codifica di C
Ovviamente P=DK(EK(P): ):
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Crittografia, Crittanalisi e Crittologia
Crittografia: arte di progettare cifrari Crittanalisi: arte di violare cifrari Crittologia= crittografia+crittanalisi
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Crittografia: regole generali
Si deve assumere che il crittanalista conosca il metodo di codifica E
Inventare un metodo di codifica è cosa difficile: inutile pensare di tenerlo segreto, reinventandolo ogni volta che qualcuno lo scopre
La forza della codifica deve stare nel parametro (la chiave) La chiave deve essere lunga: esempio della serratura a
combinazione (una chiave con 3 cifre significa 1000 combinazioni possibili, una con 6 cifre genera 1.000.000 di combinazioni)
Per evitare che qualcuno vi legga la posta possono bastare chiavi a 64 bit, per messaggi che coinvolgono la politica internazionale ne occorrono almeno 256
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Crittanalisi: 3 varianti principali
Problema del testo cifrato semplice: a disposizione una grande quantità di testo cifrato e nessun testo in chiaro (tipo giochi nei giornali)
Problema del testo in chiaro conosciuto: a disposizione del testo cifrato e il corrispondente testo in chiaro.
Problema del testo in chiaro selezionato: si è in grado di codificare parti del testo in chiaro di propria scelta
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Metodi di codifica
Cifrari a sostituzione Cifrari a trasposizione
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Cifrari a sostituzione
Ogni lettera o gruppo di lettere vengono rimpiazzati da un’altra lettera o gruppo di lettere in modo da mascherarli
Cifrario di Cesare: Es: A diventa D, B diventa E, C diventa F,…,e Z diventa C
Generalizzazione del cifrario di Cesare: ogni lettera invece di essere trasposta di 3 posti è trasposta di k posti. K è la chiave del metodo
Dai galli in poi, questo cifrario non ha più fatto impazzire nessuno
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Sostituzione monoalfabetica
Miglioramento nella cifratura per sostituzione: ogni lettera è mappata in una qualunque altra lettera. La chiave è quindi lunga quanto l’intero alfabeto
Nell’esempio, esistono 21! chiavi
a b c d e f g h i l m n o p q r s t u v z
g h u a c b v r p s l e z n q o t c f d i
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Violare la sostituzione monoalfabetica
Basta una quantità sorprendentemente piccola di testo in chiaro per violarla
L’attacco sfrutta le proprietà statistiche dei linguaggi naturali Ad es., in inglese la “e” è la lettera più comune, seguita da “t”, “o”, “a”,
“n”, ecc. I bigrammi più comuni sono “th”, “in”, “er”, “re” e “an”. I trigrammi più comuni sono “the”, “ing” e “and”.
Basta che il crittanalista conti le frequenze relative di ogni lettera del cifrato. Quindi potrebbe assegnare la lettera più frequente alla “e”, quella con seconda maggior frequenza alla “t” e così via. Quindi potrebbe fare ragionamenti analoghi con trigrammi e bigrammi
Si potrebbero anche cercare nel testo parole che si sa che dovrebbero essere frequenti: ad es. “finanziamento” in un testo finanziario (si cercherebbero due “i” separate da quattro occorrenze)
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Cifrari a trasposizione
I cifrari a sostituzione conservano l’ordine dei simboli del testo in chiaro, ma li trasformano
I cifrari a trasposizione riordinano le lettere senza trasformarle
Cifrario comune: trasposizione per colonne Parola chiave: MEGABYTE Lo scopo della chiave è di numerare le colonne, con
la colonna 1 sotto la lettera della chiave più vicina all’inizio dell’alfabeto. Il testo in chiaro è scritto orizzontalmente per righe, quello cifrato viene letto per colonne, iniziando dalla colonna numero 1.
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Esempio di cifratura a trasposizione
M E G A B Y T E
6 3 5 1 2 8 7 4
l’ a t t a c c o
e’ f i s s a t o
p e r l e c i n
q u e d i d o m
a n i g h t u v
Testo in chiaro: lattaccoefissatoperlecinquedidomanightuv
Testo cifrato: tsldgaseihafeunoonmvtireilepqa
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Violare un cifrario a trasposizione
1. Ipotizzare un numero di colonne
2. Ordinare le colonne: l’ordinamento migliore corrisponde alla migliore adesione che le frequenze delle parole nel cifrato manifestano rispetto al testo in chiaro
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Algoritmi a chiave segreta
Tradizionalmente i crittografi si affidavano ad algoritmi semplici ed a chiavi molto lunghe
Ai nostri giorni si cerca di rendere l’algoritmo di codifica così complesso che anche se il crittanalista riuscisse a possedere una grande mole di testo cifrato, non riuscirebbe a dare ad esso nessun senso (nessuna possibilità di usare le proprietà statistiche dei linguaggi naturali)
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Dispositivi a blocco P e a blocco S
Un dispositivo a blocco P è usato per effettuare una trasposizione su un ingresso di 8 bit. E’ possibile creare un blocco P che effettui qualunque trasposizione, praticamente alla velocità della luce
Un dispositivo a blocco S accetta un ingresso a n bit e produce un’uscita ad n bit, effettuando una cifratura per sostituzione
Mettendo in cascata un’intera seriue di blocchi P ed S, possiamo ottenere un’uscita che è una funzione estremamente complicata dell’ingresso
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Il DES
E’ un cifrario composto sviluppato dall’IBM e adottato nel 1977 dal governo statunitense
Il testo in chairo viene codificato in blocchi di 64 bit L’algoritmo, parametrizzato da una chiave di 56 bit, ha 19 passi
distinti Il primo passo è una tarsposizione indipendente dalla chiave
sui 64 bit del testo in chiaro L’ultimo passo è l’esatto contrario di questa trasposizione Il penultimo passo scambia i 32 bit più a sinistra con i 32 bit più
a destra I rimanenti 16 passi sono funzionalmente identici, ma
parametrizzati da differenti funzioni della chiave
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Violare il DES
Alla fine, per quanto complicato, il DES è essenzialmente un cifrario a sostituzione monoalfabetico che utilizza una chiave a 64 bit
Ogni volta che viene dato in pasto al DES un testo in chiaro di 64 bit, si produce lo stesso testo cifrato di 64 bit
Un crittoanalista può sfruttare questa proprietà per violarlo
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Esempio di violazione del DES
• Leslie può accedere al file codificato. Può cambiarlo per ovviare alla situazione a lei sfavorevole?
• Basta copiare il blocco 11 (quello relativo al premio di una collega che Leslie sa essere la favorita del capo) nel blocco 3
•Esistono dei metodi per ovviare a questa debolezza del DES, quali il DES concatenato
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Macchine per violare il DES
Molte proposte sono state avanzate per violare il DES
Nel 1977, venne progettata una macchina da Diffie ed Helmann che poteva effettuare una ricerca nello spazio delle chiavi in meno di un giorno (la macchina sarebbe però costata 20 milioni di dollari)
Esiste il metodo proposto da Quisquater e Girault nel 1991, detto della Lotteria Cinese, che propone di utilizzare congiuntamente milioni di processori per esplorare lo spazio delle chiavi. 256 è uno spazio che può essere così violato in pochi minuti
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Ancora sul DES
Sono state fatte varie proposte per migliorare il DES (es., eseguire due volte il DES con due diverse chiavi da 56 bit), ma sono state trovate soluzioni per violare ognuna di tali proposte in tempi ragionevoli
Eppure DES è ancora largamente utilizzato per applicazioni di sicurezza importanti, quali quelle bancarie tipo bancomat
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Un problema fondamentale: la segretezza della chiave
Tutti i metodi finora passati in rassegna sono affetti dalla medesima problematica: la chiave deve essere conservata con grande attenzione
Ma la chiave deve pure essere distribuita dal cifratore a chi deve decrittare: la distribuzione è un punto di estrema debolezza del processo crittografico
Nel 1976 due ricercatori della Stanford University, Diffie ed Helmann proposero un crittosistema radicalmente nuovo, nel quale la chiave di decifratura era diversa da quella di cifratura, e non poteva essere derivata da quest’ultima. Nella loro proposta, l’algoritmo di cifratura E e quello di decifratura D devono rispettare i seguenti requisiti:
1. D(E(P))=P2. E’ estremamente difficile dedurre D da E3. E non può venir violato da un attacco con testo in chiaro selezionato
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Algoritmi a chiave pubblica
Una persona (es. Alice) che vuole ricevere messaggi segreti dapprima inventa due algoritmi, EA e DA che rispettano i requisiti suddetti
L’algoritmo, con la relativa chiave di cifratura, EA è reso pubblico. DA è invece mantenuto privato
Se adesso un utente (es. Bob) vuole inviare un messaggio ad Alice, basta che cripti il messaggio usando l’algoritmo a chiave pubblica EA.
Alice sarà in grado di leggere il messaggio decriptandolo con la sua chiave segreta DA.
Un intruso che intercettasse il messaggio non conoscerebbe la chiave segreta di Alice e non potrebbe decriptare il messaggio
Alice ha risolto il problema di non dover distribuire la sua chiave segreta
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
L’algoritmo RSA
E’ stato ideato da un gruppo del MIT (Rivest, Shamir e Adleman) nel 1978
1. Scegliere due grandi numeri primi, p e q (tipicamente più grandi di 10100)
2. Calcolare n=pxq e z=(p-1)x(q-1)3. Scegliere un numero che sia primo rispetto a z e chiamarlo d4. Trovare e tale che exd=1 mod z Quindi si divide il testo in blocchi di k bit, con 2K<n. Per cifrare il blocco P, si calcola C=Pe(mod n) Per decifrare C, si calcola P=Cd (mod n) E’ possibile provare che per ogni P le funzioni di cifratura e
decifratura sono inverse La chiave pubblica consiste nella coppia (e,n) La chiave privata è la coppia (d,n)
D. RosaciCorso di Reti di Calcolatori Capitolo Sesto
Sicurezza di RSA
Si basa sulla difficoltà di fattorizzare numeri grandi Se il crittanalista riuscisse a fattorizzare n (pubblico)
potrebbe trovare p e q e da questi z. Attraverso z ed e si può trovare d Ma fattorizzare un numero grande richiede tempi
epocali. Ad esempio, se il numero è di 500 cifre, occorrerebbero 1025 anni usando una macchina che impienga 1 microsecondo per istruzione.