27
Reti di Calcolatori Sergio PORCU 1 RETI DI CALCOLATORI Crittografia 2 La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice ed è il fondamento su cui si basano i meccanismi di autenticazione, integrità e segretezza.

RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 1

RETI DI CALCOLATORI

Crittografia

2

La crittografia

La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice ed è il fondamento su cui si basano i meccanismi di autenticazione, integrità e segretezza.

Page 2: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 2

3

La crittografia

L’autenticazione stabilisce al tempo stesso l’identità del mittente e del destinatario delle informazioni. L’integrità garantisce che i dati non siano stati alterati e la segretezza che nessuno, al di fuori di mittente e destinatario, sia in grado di interpretarli.

4

La crittografia

Solitamente, i meccanismi crittografici utilizzano sia un algoritmo sia un valore segreto, detto chiave. In genere, la struttura degli algoritmi èpubblica; le chiavi, invece, vengono mantenute segrete per ottenere la sicurezza richiesta.

Page 3: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 3

5

La crittografia

Il numero di bit necessari per garantire la sicurezza crittografica non è facile da determinare. Più è lungo lo spazio di chiave (l’intervallo di possibili valori), più diventa difficile forzare la chiave con un attacco di forza bruta.

6

La crittografia

Un attacco di forza bruta è un tentativo di arrivare alla chiave nel quale si applicano all’algoritmo tutte le possibili combinazioni di valori, finché non si riesce a decifrare il messaggio.

Page 4: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 4

7

La crittografia

Possibili combinazioni per gli attacchi di forza bruta

Lunghezza chiave (in bit) Numero combinazioni possibili

40 240 = 1.099.511.627.776

56 256 = 7,205759403793 x 1016

64 264 = 1,844674407371 x 1019

112 2112 = 5,192296858535 x 1033

128 2128 = 3,402823669209 x 1038

8

La crittografia

In generale, si tendono a utilizzare chiavi più lunghe possibile, per ridurre le probabilità di forzatura. È comunque necessario tener presente che più lunga è la chiave, maggiori sono i costi in termini di potenza di calcolo dei processi di crittografia e decifrazione. L’obiettivo è che la forzatura sia “piùcostosa” del valore intrinseco delle informazioni protette.

Page 5: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 5

9

La crittografia

Le funzioni crittografiche per l’autenticazione, l’integrità e la segretezza dei dati sono tre:

• chiavi simmetriche;• chiavi asimmetriche;• funzioni hash non invertibili.

10

Crittografia a chiave simmetrica

La crittografia simmetrica, altrimenti detta crittografia a chiave segreta, utilizza una chiave comune e il medesimo algoritmo crittografico per la codifica e la decodifica dei messaggi. In sostanza, due utenti che desiderano comunicare devono accordarsi su di un algoritmo e su di una chiave comuni.

Page 6: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 6

11

Crittografia a chiave simmetrica

Codifica DecodificaInternet

ChiaveSegreta

ChiaveSegreta

Msg Msg

A B

12

Crittografia a chiave simmetrica

Uno degli algoritmi più semplici è il cifrario di Cesare, che sostituisce ognuna delle lettere del messaggio originale con la lettera dell’alfabeto che si trova n posti più avanti nell’alfabeto stesso.

Es. n=3SCANO ⇒ VFDQR

Page 7: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 7

13

Crittografia a chiave simmetrica

Gli algoritmi di uso comune più difficili da decifrare utilizzano uno sei seguenti sistemi:

• DES (Data Encryption Standard);• 3DES (Triple DES);• RC-4 (Rivest Cipher 4);• IDEA (International Data Encryption

Algorithm).

14

DES

Il DES è uno schema crittografico operante su blocchi di 64 bit e utilizza una serie di fasi per trasformare 64 bit di input in 64 bit di output. Nella sua forma standard, l’algoritmo utilizza chiavi a 64 bit, 56 dei quali scelti a caso. Gli altri 8 bit sono bit di parità.

Page 8: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 8

15

3DES

3DES è una versione alternativa di DES. Tale sistema, che può utilizzare una, due o tre chiavi diverse, prende un blocco di 64 bit e vi applica operazioni di codifica, decodifica e ricodifica.

16

RC-4

RC-4 è un algoritmo privato, inventato da Ron Rivest e commercializzato da RSA Data Security. Viene solitamente utilizzato con una chiave a 128 bit, ma le dimensioni della chiave sono variabili.

Page 9: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 9

17

IDEA

Il sistema IDEA, realizzato come alternativa a DES, opera sempre su blocchi di 64 bit, ma utilizza una chiave di 128 bit. Si tratta di un algoritmo brevettato ed è utilizzabile per usi commerciali solo su licenza.

18

Crittografia a chiave simmetrica

La crittografia a chiave segreta viene sostanzialmente utilizzata per garantire la segretezza dei dati, in quanto gran parte degli algoritmi simmetrici sono stati progettati per essere applicati all’hardware e sono stati ottimizzati per la codifica di grandi masse di dati.

Page 10: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 10

19

Crittografia a chiave simmetrica

I punti critici dei sistemi a chiave segreta sono i seguenti:

• necessità di cambiare frequentemente le chiavi segrete per evitare il rischio che vengano scoperte;

• sicurezza nella generazione delle chiavi segrete;

• sicurezza nella distribuzione delle chiavi segrete.

20

Crittografia asimmetrica

La crittografia asimmetrica viene spesso definita come crittografia a chiave pubblica e può utilizzare lo stesso algoritmo, oppure algoritmi diversi ma complementari, per codificare e decodificare i dati. Sono necessari due valori diversi, ma correlati, per la chiave: una chiave pubblica e una privata.

Page 11: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 11

21

Crittografia asimmetrica

Per comunicare utilizzando la crittografia a chiave pubblica, A e B necessitano di una coppia chiave pubblica – chiave privata. Ognuno dei due deve creare la propria coppia di chiavi. Nelle comunicazioni fra loro, A e B utilizzano chiavi diverse per codificare e decodificare i dati.

22

Crittografia asimmetrica

A B

PubPri

PubPri

Pub

Pub

2

1

1 1

2

Crea una coppia chiave privata - chiave pubblica

Scambia solo chiavi pubbliche

Page 12: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 12

23

Crittografia asimmetrica

Alcuni degli utilizzi più comuni per gli algoritmi a chiave pubblica comprendono:

• l’integrità dei dati;• la segretezza dei dati;• l’accettazione del mittente;• l’autenticazione del mittente.

24

Crittografia asimmetrica

Perché avvenga uno scambio di dati segreto, debbono verificarsi le seguenti condizioni:

1. A e B creano le proprie coppie di chiavi pubbliche e private;

2. A e B si scambiano le chiavi pubbliche;3. A scrive a B e codifica il messaggio

utilizzando la chiave pubblica di B prima di trasmetterlo via Internet;

Page 13: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 13

25

Crittografia asimmetrica

4. B utilizza la propria chiave privata per decifrare il messaggio;

5. B risponde, codifica il messaggio utilizzando la chiave pubblica di A e lo trasmette via Internet;

6. A utilizza la propria chiave privata per decifrare il messaggio.

26

Crittografia asimmetricaCome garantire l’integrità e la segretezza dei dati con la crittografia a chiave pubblica

1

2

Codifica Decodifica

Decodifica Codifica

3 4

6 5

1 Coppia chiave pub. – chiave priv. Coppia chiave pub. – chiave priv.

A BChiave pub. di A

Chiave pub. di B Chiave priv. di B

Chiave pub. di B

Messaggiooriginale

Messaggiooriginale

Chiave pub. di AChiave priv. di A

Messaggiocodificato

Risposta diAlessandro

Risposta diAlessandro

Internet

Messaggiocodificato

Pub Pub

Pri Pri

Page 14: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 14

27

Crittografia asimmetrica

La segretezza è garantita nel momento che A trasmette il messaggio originale, in quanto solo B può decodificarlo con la propria chiave privata. Allo stesso tempo, viene assicurata anche l’integrità dei dati, perché il messaggio non può essere modificato se non con la chiave privata di B. Lo stesso vale per la risposta, in quanto solo A ha accesso alla propria chiave privata.

28

Crittografia asimmetrica

Il punto debole di questo meccanismo sta nel fatto che chiunque può far finta di essere A e trasmettere a B un messaggio in codice, utilizzando la chiave pubblica di B, la quale, in effetti, è pubblicamente disponibile.

Page 15: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 15

29

Crittografia asimmetrica

Perché lo scambio sia autenticato, debbono verificarsi le seguenti condizioni:

1. A e B creano le proprie coppie chiave pubblica – chiave privata;

2. A e B si scambiano le chiavi pubbliche;3. A scrive a B, codificando il messaggio

con la propria chiave privata, e trasmette i dati in codice via Internet;

30

Crittografia asimmetrica

4. B utilizza la chiave pubblica di A per decifrare il messaggio;

5. B risponde, codifica il messaggio con la propria chiave privata e trasmette i dati in codice ad A via Internet;

6. A decifra il messaggio con la chiave pubblica di B.

Page 16: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 16

31

Crittografia asimmetrica

Per garantire, con il sistema della chiave pubblica, l’autenticità degli scambi, oltre all’integrità e alla segretezza dei dati, ènecessario introdurre la doppia crittografia. Per prima cosa, A codifica il messaggio a B con la chiave pubblica di B; quindi ricodifica il messaggio con la propria chiave privata. Il messaggio potrebbe essere decodificato da chiunque, ma solo B può decodificare il secondo con la propria chiave privata.

32

Crittografia asimmetrica

Per i loro limiti di prestazioni, gli algoritmi crittografici a chiave pubblica non sono solitamente utilizzati per garantire la segretezza, ma si rivelano particolarmente utili per le applicazioni che richiedono una forma di autenticazione attraverso firme digitali e gestione delle chiavi. Tra i piùcomuni, si segnalano gli algoritmi di Ron Rivest, di Adi Shamir e di Leonard Adleman (RSA) e quello di El Gamal.

Page 17: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 17

33

Funzioni hash

Una funzione hash trasforma un messaggio di lunghezza arbitraria in output di lunghezza fissa (chiamato hash o digest del messaggio originale).

34

Funzioni hash

Per soddisfare le condizioni di sicurezza stabilite per le funzioni hash, gli algoritmi devono avere le seguenti proprietà:

• devono essere coerenti (a input uguali corrispondono output uguali);

• devono essere casuali, o apparire tali, per impedire l’interpretazione accidentale del messaggio originale;

Page 18: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 18

35

Funzioni hash

• devono essere univoci (la probabilitàche due messaggi generino il medesimo hash deve essere virtualmente nulla);

• devono essere non invertibili (risalire al messaggio originale dall’output deve essere impossibile).

36

Funzioni hash

Le funzioni hash non invertibili vengono normalmente utilizzate per assegnare un’impronta digitale a un messaggio o a un file. Come le impronte dei polpastrelli, un’impronta hash èunivoca e costituisce una prova dell’integrità e dell’autenticità del messaggio.

Page 19: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 19

37

Funzioni hash

Esemplificando, se A e B vogliono accertarsi che nessuno sia intervenuto sul contenuto del messaggio in fase di transizione utilizzano proprio una funzione hash non invertibile.

38

Funzioni hash

Per garantire l’integrità dei dati trasferiti fra A e B, devono verificarsi le seguenti condizioni:

1. A scrive un messaggio e ne utilizza il testo come input di una funzione hash non invertibile;

2. il risultato della funzione hash viene accodato al messaggio e ne costituisce l’impronta digitale;

Page 20: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 20

39

Funzioni hash

3. B separa il messaggio dall’impronta e utilizza il testo del messaggio come input della medesima funzione hash utilizzata da A;

4. se i due hash corrispondono, B è certo che nessun altro sia intervenuto sul messaggio.

40

Funzioni hash

A B

Impronta

Impronta

Impronta

Impronta

1

2

3

4

Msg

Page 21: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 21

41

Funzioni hash

Il problema, in questo caso, è che non c’èmodo di proteggere l’impronta da eventuali intrusi. È possibile infatti che qualcuno interferisca, impersonando il mittente o il destinatario delle comunicazioni sicure. Pertanto, per essere utilizzate in maniera sicura, le funzioni hash vanno combinate con sistemi a chiave pubblica per l’assegnazione di firme digitali.

42

Funzioni hash

Tra le funzioni hash più comuni, si segnalano:

• l’algoritmo MD4 (Message Digest 4);• l’algoritmo MD5 (Message Digest 5);• l’algoritmo SHA (Secure Hash

Algorithm).

Page 22: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 22

43

Funzioni hash

Gli algoritmi MD4 e MD5 sono stati elaborati da Ron Rivest per il MIT (Massachusetts Institute of Technology), mentre l’algoritmo SHA èstato sviluppato dal NIST (National Institute of Standards and Technology).

44

Funzioni hash

Gli attuali prodotti per la sicurezza utilizzano principalmente algoritmi MD5 e SHA, entrambi basati sul sistema MD4. MD5 elabora l’input a blocchi di 512 bit e produce un digest di 128 bit. SHA elabora blocchi di 512 bit e produce un digest di 160 bit. SHA richiede un maggiore lavoro da parte del processore ed è leggermente piùlento di MD5.

Page 23: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 23

45

Firme digitali

Una firma digitale è un digest in codice che viene utilizzato per comprovare l’identità del mittente e l’integrità del documento. Le firme digitali si basano su di una combinazione di tecniche crittografiche a chiave pubblica e funzioni hash non invertibili.

46

Firme digitali

Perché B possa creare una firma digitale, si devono verificare le seguenti condizioni:

1. B crea una coppia chiave privata –chiave pubblica;

2. B dà ad A la propria chiave pubblica;

Page 24: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 24

47

Firme digitaliCreazione di una firma digitale 1

Pub

Pri

2

1

1

2

Il mittente crea una coppia chiave privata - chiave pubblica

Il mittente invia la chiave pubblica al ricevente

Pub

AB

48

Firme digitali

3. B scrive un messaggio, che utilizza come input per una funzione hash non invertibile;

4. B codifica l’output dell’algoritmo hash, il digest del messaggio, con la propria chiave privata, ottenendo così la firma digitale.

Il messaggio che B trasmette ad A èl’insieme del documento e della firma digitale.

Page 25: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 25

49

Firme digitaliCreazione di una firma digitale 2

Msg

006FBBC95

Codifica

FIRMA

Il messaggio originale è l’input diuna funzione hash non invertibile

L’output è l’hash del messaggio

L’hash viene codificato con la chiaveprivata del mittente

La firma digitaleè l’hash crittografato

50

Firme digitali

Per il destinatario, le operazioni da svolgere per verificare il messaggio e la firma digitale sono le seguenti:

1. A separa il messaggio ricevuto in documento originale e firma digitale;

2. A utilizza la chiave pubblica di B per decifrare la firma digitale e ottenere il sunto del messaggio originale;

Page 26: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 26

51

Firme digitali

3. A utilizza il documento originale come input della medesima funzione hash utilizzata da B per ottenere il digest del messaggio;

4. A controlla che i digest del messaggio siano uguali.

Se tutto quadra, sono comprovate sia l’integrità del documento, sia l’autenticità del mittente.

52

Firme digitaliMsg

006FBBC95

Decodifica

FIRMAIl ricevente separamessaggio e firma

MsgFIRMA

006FBBC95

Decodifica firma conchiave pubblica mittente

Il risultato èl’hash crittografato

Il messaggiooriginale è l’inputdi una funzionehash noninvertibile

Il risultato è l’hashdel messaggio

Page 27: RETI DI CALCOLATORI - Tiscali Webspaceweb.tiscali.it/rca.sergio.porcu/Crittografia.pdf · 2005. 1. 21. · Reti di Calcolatori Sergio PORCU 4 7 La crittografia Possibili combinazioni

Reti di Calcolatori

Sergio PORCU 27

53

Firme digitali

Lo scambio iniziale di chiavi deve avvenire in modo tale da garantire la sicurezza. È questa la ragione fondamentale dell’esistenza di certificati digitali.

54

Firme digitali

Un certificato digitale è un messaggio con firma digitale che contiene la chiave privata di un terzo di fiducia, il quale dichiara che una determinata chiave pubblica appartiene a una certa persona o entità e ne garantisce nome e caratteristiche. Se lo scambio iniziale non avviene nell’ambito di una relazione di fiducia, chiunque può simulare di essere una determinata entità.