49
Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2019/2020 SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II

Corso di - WordPress.com · 2019-12-07 · Corso di Sistemi di Elaborazione delle Informazioni Dott. ... Prima parte Introduzione alla sicurezza informatica 3. Il concetto di sicurezza

  • 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

Privacy e Sicurezza Informatica

2

Prima parteIntroduzione alla sicurezza

informatica

3

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

Seconda parte:La crittografia

9

“Critto che?”

• 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)

18

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

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

Sergio Daniela

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

Esempio di Firma digitaleDocumento PDF