Upload
others
View
4
Download
1
Embed Size (px)
Citation preview
Corso di
Sistemi di Elaborazione delle Informazioni
Dott. Francesco Rossia.a. 2019/2020
SCUOLA DI MEDICINA E CHIRURGIA
Università degli Studi di Napoli Federico II
Il concetto di sicurezza
• Un sistema informatico dovrebbe garantire
– Confidenzialità:solo chi è autorizzato a leggere i dati lo può fare
– Integrità:solo chi è autorizzato a modificare i dati lo può fare
– Disponibilità: i dati devono essere accessibili a chi è autorizzato
4
La sicurezza informatica
• Ambito applicativo e di ricerca di grande attualità e di ampio interesse
• I risultati sono applicati:
– in ambito militare e civile
– per enti governativi, grandi aziende, privati cittadini
• Problematiche molto complesse:
– vedremo principalmente aspetti interessanti per un uso privato dei computer
5
Chi è l’avversario?
• Avversario: entità che tenta di violare la sicurezza di un sistema
• Agente software: un programma autonomo finalizzato a danneggiare dei sistemi e, in genere, a diffondersi autonomamente
• Agente umano: persona che, utilizzando diversi applicativi software, tenta di violare la sicurezza di un sistema.
6
La sicurezza assoluta non esiste.
• Il livello di sicurezza deve essere adeguato alle informazioni che devono essere protette.
• Quanto vale l’informazione da proteggere?
– Quanto siamo disposti aspendere per proteggerla?
– Quanto è disposto a spenderel’avversario per ottenerel’informazione?
7
Organizzazione della lezione
• Introduzione alla crittografia
– aspetti teorici e concettuali
• Alcune nozioni relative alla sicurezza
– aspetti maggiormente pratici e applicativi
• Introduzione alla gestione della privacy
8
• Cifratura è il processo di conversione dei dati in una forma non comprensibile a persone non autorizzate (dati cifrati).
• Decifratura è il processo di riconversione dei dati cifrati nella loro forma originare, accessibili a chiunque(dati in chiaro).
Definizioni
Storia della crittografia
11
Scitala lacedemonica: la più antica forma di crittografia (400 a.c.)
Consisteva nell’avvolgere un nastro di cuoio ad elica attorno ad un bastone
Scrittura per colonne parallele all’asse del bastone lettera per lettera.
Il segreto è il diametro del cilindro.
Storia della crittografia
12
Testo sacro atbash: Ideato dal popolo ebraico.
Consisteva nel capovolgere l’alfabeto, di conseguenza la prima lettera
diventava l’ultima e l’ultima la prima e così per tutte le altre lettere
dell’alfabeto.
Storia della crittografia
13
Cifrario di Cesare (II secolo d.c.): E’ un codice di sostituzione molto
semplice, nel quale ogni lettera del testo veniva sostituita dalla lettera
che la segue di tre posti nell’alfabeto.
Storia della crittografia
14
Cifrario di Polibio: L'idea è quella di cifrare una lettera con una coppia di
numeri compresi tra 1 e 5, in base ad una matrice 5x5, contenente le
lettere dell'alfabeto.
Ogni lettera viene rappresentata da due numeri, guardando la riga
e la colonna in cui essa si trova. Per esempio, a=11 e r=42.
Storia della crittografia
15
Cifrario di Vigenére (1586): Propose in un trattato di cifrari pubblicato
nel 1586 un codice che ebbe molta fortuna e che è ricordato con il suo
nome.
Utilizza 26 alfabeti cifranti per cifrare un solo messaggio (cifrario
polialfabetico). Il metodo si può considerare una generalizzazione del
codice di Cesare (cifrario monoalfabetico).
Storia della crittografia
Cifrario di Vigenére (1586)
16
TESTO IN CHIARO : RAPPORTOIMMEDIATOSEGRETO : VERMEVERMEVERMEVETESTO CIFRATO : MEGBSMXFUQHIUUEOS
TESTO CIFRATO : MEGBSMXFUQHIUUEOSSEGRETO : VERMEVERMEVERMEVETESTO IN CHIARO : RAPPORTOIMMEDIATO
Storia della crittografia
ENIGMA
17
Ruolo di primo piano della Crittografia nella II Guerra Mondiale .
La macchina Enigma fu usata dai tedeschi e considerata a torto inattaccabile.
Storia della crittografia
Crittografia nella II Guerra Mondiale (ENIGMA)
19
Alan Mathison Turing (Londra, 23 giugno 1912 – Wilmslow, 7 giugno 1954)
https://it.wikipedia.org/wiki/Alan_Turing
La crittografia a chiave simmetrica
• Tecnica finalizzata ad alterare l’informazione in modo tale da renderla inutilizzabile a chiunque tranne che alle persone autorizzate.
20
CifraturaTesto in chiaro Testo cifrato
DecifraturaTesto in chiaro
Chiave di cifratura Chiave di decifratura
Cifratura a chiave simmetrica: esempio
21
Sergio Daniela
<K> <K>
m = “casa”
ENC_K (m) = CC
DEC_K (C) = m
DEC_K (ENC_K (m)) = m
Cifratura a chiave simmetrica: esempio
• il messaggio da spedire m = “casa”.
• Sergio cifra il messaggio m = “casa” con la sua chiave condivisa k. Poi invia il testo cifrato C a Daniela
• Daniela riceve il testo cifrato C. Prova a decifrare con la sua chiave condivisa k ed ottiene m
22
La crittografia a chiave simmetrica
• La stessa chiave utilizzata per cifrare e decifrare
• Esempio di funzione di cifratura: XOR
– XOR = operatore logico booleano
– input = due valori booleani
– output = 1 (vero) se unodei due input è 1 (vero), ma non entrambi; altrimenti, output=0 (falso)
23
a b a OR b
VERO VERO FALSO
VERO FALSO VERO
FALSO VERO VERO
FALSO FALSO FALSO
XOR
Una proprietà dell’XOR
• Date due serie di bit A e B, indichiamo A XOR B il risultato del XOR applicato ai bit di A e B
– esempio: 0101 XOR 1001 = 1100
– si dice “applicato bit a bit”
• Vale quindi la seguente proprietà:
– A XOR B = C → C XOR B = A
– 0101 XOR 1001 = 1100 → 1100 XOR 1001 = 0101
24
“A cosa ci serve?”
• Cifratura:
– “testo in chiaro” XOR “chiave” = testo cifrato
• Decifratura:
– “testo cifrato” XOR “chiave” = testo in chiaro
• Possiamo usare la stessa chiave per cifrare e decifrare
25
• Supponiamo che l’attaccante ottenga un bit di informazione cifrata e non conosca la chiave– L’attaccante ottiene l’informazione 1
– Supponiamo che anche la chiave sia di 1 bit
• L’attaccante sa che:– se la chiave fosse 1, allora il testo in chiaro sarebbe 0 (0 XOR 1 = 1)
– se la chiave fosse 0, allora il testo in chiaro sarebbe 1 (1 XOR 0 = 1)
– la chiave ha il 50% di probabilità di essere 0 e il 50% di essere 1
• Dunque dato il testo cifrato, l’attaccante sa che il testo in chiaro è 1 al 50% e 0 al 50%– Cioè non ha imparato nulla sul testo in chiaro!
– È proprio quello che volevamo.
Cosa può fare l’attaccante? Esempio con 1 bit
26
Cifratura a chiave simmetrica: perché funziona
• L’idea è che:
– Cifrare è “facile”
– Decifrare è “facile” se si conosce la chiave
– Decifrare è “molto difficile” se non si conosce la chiave
• Quale formalismo usiamo per catturare formalmente questa intuizione?
27
Complessità computazionale della cifratura a chiave simmetrica (1)
• Consideriamo un testo in chiaro T di lunghezza fissata
• Problema: cifra T usando una chiave (nota) K
– Complessità computazionale lineare nella lunghezza (in bit) di K
• Problema: decifra T usando una chiave (nota) K
– Complessità computazionale lineare nella lunghezza (in bit) di K
• (nota: in alcuni sistemi usati nella pratica, la complessità computazionale è ancora minore)
28
Complessità computazionale della cifratura a chiave simmetrica (2)
• Problema: decifra T senza conoscere la chiave
– Bisogna provare per tutte le chiavi possibili
– Quante sono le chiavi possibili?
• Se la lunghezza della chiave è n-bit, tutte le chiavi possibili sono 2n
• La complessità computazionale è esponenziale rispetto alla lunghezza (in bit) della chiave.
29
Complessità computazionale della cifratura a chiave simmetrica (3)
• “E questo a cosa ci serve?”
• Basta aumentare di 1 bit la lunghezza della chiave
– Il tempo necessario per cifrare e decifrare (conoscendo la chiave) aumenta di pochissimo
– Il tempo necessario per decifrare (senza conoscere la chiave) raddoppia!
30
“compro un sacco di computer e ti frego, tiè!”
• No, non ce la puoi fare.
• Un algoritmo di cifratura a chiave simmetrica con chiave a 64bit è stato violato usando un migliaio di computer per 5 anni.
• Violare una cifratura a 128 bit è 2^64 volte più difficile:– Per farlo nello stesso tempo (5 anni) servirebbero circa 2^64 (=circa
10^19) volte il numero di computer (circa 10 mila miliardi di miliardi di computer)
• oppure mille computer per 50 miliardi di miliardi di anni
– Invece il tempo per cifrare e decifrare (conoscendo la chiave) raddoppia solamente!
31
Cifratura a chiave simmetrica
• Vantaggi:
– molto rapido cifrare e decifrare
– molto difficile da violare
• Svantaggi:
– le due componenti della comunicazione devono preventivamente concordare la chiave
– c’è una chiave per ogni possibile coppia di entità che devono comunicare: se le componenti sono n, le chiavi sono nell’ordine di n2
32
Quando viene usata la cifratura a chiave simmetrica
• Tutte le volte in cui le due componenti della comunicazione hanno un “momento sicuro” per scambiarsi la chiave
• Esempi:
– in ambienti militari: prima che l’aereo decolli, scambia la chiave con la base
– nei cellulari: la chiave è scritta nella SIM e l’operatore la conosce (è l’operatore stesso che ha rilasciato la SIM)
33
La cifratura a chiave pubblica (o asimmetrica)
• La chiave usata per cifrare è diversa dalla chiave per decifrare.
– Non entriamo nel dettagli di come si calcola la funzione di cifratura
• Le chiavi vengono create a coppie <PR, PU>:
– PR: la chiave privata è nota solo all’utente
– PU: la chiave pubblica è nota a tutti
Se cifro usando PR, posso decifrare solo con PU…o viceversa: se cifro con PU, posso decifrare solo con PR 34
Crittografia a chiave pubblica: cifratura dell’informazione
35
CifraturaTesto in chiaro Testo cifrato
DecifraturaTesto in chiaro
Chiave pubblica
del destinatario
Chiave privata
del destinatario
Cifratura a chiave pubblica : esempio
36
Sergio Daniela
<PRS, PUS> <PRD, PUD>
m = “casa”
ENC_PUD (m) = C
C, Sergio
DEC_PRD (C) = m
DEC_PRD (ENC_PUD (m)) = m
Cifratura a chiave pubblica : esempio
• il messaggio da spedire m = “casa”.
• Sergio cifra il messaggio m = “casa” con la chiave pubblica di Daniela . Poi invia a Daniela il testo cifrato C, assieme al proprio nome.
• Daniela riceve “Sergio” e un testo cifrato C. Prova a decifrare il testo cifrato C con la sua chiave privata ed ottiene m.
37
Cifratura a chiave pubblica
• Vantaggi:
– non richiede lo scambio preventivo di chiavi
– ogni entità deve avere una chiave per ogni altra entità, quindi se ci sono n entità, il numero delle chiavi è nell’ordine di n
• Svantaggi:
– cifratura e decifratura sono più lente rispetto alla cifratura a chiave simmetrica
– la dimostrazione di correttezza di queste tecniche è basata su un’assunzione non ancora dimostrata.
38
Quando viene usata la cifratura a chiave pubblica
• Quando ci sono tante entità che devono comunicare tra di loro ma che non si conoscono a priori
• Esempi:
– Sul web (tutte le volte che accedete ad un indirizzo del tipo “https:”)
– Posta elettronica: esistono programmi che permettono lo scambio di chiavi e la cifratura dei messaggi
39
Sicurezza su Internet
Algoritmo RSA
(R.Rivest, A. Shamir and L.
Adleman)
Protocollo DH
(W.Diffie and M.Helmann)
La Firma Digitale
• La firma digitale è basata su un sistema di chiavi
crittografiche, una pubblica e una privata, correlate tra loro,
che consente al titolare tramite la chiave privata e al
destinatario tramite 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”.
Codice dell'amministrazione digitale. (GU n.112 del 16-5-2005)
Proprietà della Firma Digitale
• Autenticità: se la firma risultasse valida è garantita l’identità
del firmatario.
• Non-repudio: il firmatario non può disconoscere una firma
valida su un documento.
• Integrità: assicura che il documento non sia stato modificato.
• Irriproducibilità: solo il firmatario è in grado di generare una
firma valida
• Non-riuso: una firma di un documento non può essere usata
per un altro documento.
Funzioni di Hash
• Il calcolo di un valore di Hash di qualsiasi messaggio è veloce
• Non è molto difficile dato un valore di Hash, ottenere il messaggio da
cui è stato generato
• La modifica di un messaggio comporta la variazione del suo valore di
Hash
• È molto difficile che due messaggi diversi generino lo stesso valore di
Hash 44
Firma digitale: esempio
• Supponiamo che il file da spedire sia m.
• Sergio calcola l’Hash del messaggio H(m) e lo cifra con la propria chiave privata ed ottiene ENC_PRS(H(m) ) = c
• Poi invia c ed m a Daniela
• Daniela riceve il messaggio m e calcola il valore H’(m) cifrato. Prova a decifrare c con la chiave pubblica di Sergio ed ottiene DEC_PUS (c) = H(m)
– se H(m) = H’(m) vuol dire che il messaggio arriva proprio da
Sergio perché deve essere stato cifrato con la chiave privata
di Sergio (che solo Sergio conosce) e la firma è valida
46
Come memorizzare le chiavi
47
• Token hardware and software
• Standard PKCS#12 ▪ Certificati Digitali
standard x.509
Firma Digitale
• CADES: file con estensione (.p7m)
• PADES: file con estensione (.pdf)
Firma Digitale Cloud–Based
• Firma Digitale da dispositivi mobili
• Firma di un documento da qualsiasi luogo
• Firma di un documento senza token