1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi...

39
1 ◘ Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation e server sulla propria rete locale (LAN) o su altre reti interconnesse usando switches /routers Uso di LAN parzialmente o totalmente wireless ◘ Attacchi Spionaggio da altre workstation sulla stessa rete Uso di link e routers per entrare dall’esterno e spiare Accesso all’armadio di cablaggio che funge da punto di interconnessione per le linee interne, le linee telefoniche e le linee di comunicazione esterne e ascolto sui cavi

Transcript of 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi...

Page 1: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

1

◘ Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi

◘ Scenario tipico

Workstations accedono ad altre workstation e server sulla propria rete locale (LAN) o su altre reti interconnesse usando switches/routers

Uso di LAN parzialmente o totalmente wireless

◘ Attacchi

Spionaggio da altre workstation sulla stessa rete

Uso di link e routers per entrare dall’esterno e spiare

Accesso all’armadio di cablaggio che funge da punto di interconnessione per le

linee interne, le linee telefoniche e le linee di comunicazione esterne e ascolto sui cavi

Page 2: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

2

Un attacco può aver luogo in un qualsiasi punto di collegamento

Page 3: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

3

Due principali alternative per stabilire cosa crittografare e dove localizzare il sistema di crittografia

Crittografia di canale (link encryption)

-Criptazione indipendente su ciascun link

-Implica la necessità di decriptare il traffico tra i link

- Richiede molti dispositivi

-Se viene utilizzata la rete pubblica l’utente non ha controllo sulla sicurezza dei nodi

-Ogni coppia di nodi che condivide un collegamento deve avere una chiave univoca

e per ogni collegamento deve essere utilizzata una chiave differente

-Occorre generare una grande quantità di chiavi

Page 4: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

4

Crittografia end-to-end (end-to end encryption)

-Criptazione tra la sorgente primaria e la destinazione finale

-Bisogno di dispositivi alle due estremità con chiavi condivise

-Riduce i rischi connessi alla sicurezza dei collegamenti e delle reti

- Si presentano problemi su cosa crittografare poiché è necessario conoscere l’intestazione per potere inoltrare i dati

Si ottiene una sicurezza maggiore adottando entrambi i sistemi

Page 5: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

7

Usando l’encryption end-to-end si debbono lasciare gli header in chiaro

La rete così può instradare l’informazione correttamente

Quindi, anche se I contenuti sono protetti,

gli andamenti dei flussi di traffico non lo sono

Idealmente si vorrebbe avere insieme tutto

La protezione end-to-end che protegge i dati lungo

l’intero percorso e fornisce l’autenticazione

La protezione a livello link che impedisce

il monitoraggi dei flussi di traffico

Analisi del traffico

Page 6: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

10

Analisi del traffico

Anche con l’encryption un opponent può ottenere

delle informazioni utili

Può essere fatto monitorando il flusso di traffico

Utile negli ambienti militari e commerciali

Può pure essere usato per creare un canale coperto

Problema minimizzato dalla link encryption che

oscura i dettagli degli header

In ogni modo i volumi del traffico globale rimangono visibili

Una soluzione è rappresenata dal traffic padding

Page 7: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

11

Padding del traffico

Un dispositivo di crittografia Traffic panding

GeneratoreContinuo di dati casuali

Algoritmo di

crittografia

Chiave

Input discontinuo

di testo in chiaroOutput cifrato

continuo

Page 8: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

12

Distribuzione delle chiavi

Schemi simmetrici richiedono che entrambe le parti

condividano una chiave comune segreta

Il problema è come distribuire con sicurezza

questa chiave

Frequenti crash di sistemi sicuri dovuti a un break

nello schema di distribuzione delle chiavi

Page 9: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

13

Distribuzione delle chiavi

Due parti A and B hanno varie

alternative per la key distribution:

A sceglie una chiave e la consegna fisicamente a B

Una terza parte può scegliere e consegnare

la chiave ad A e B

Se A e B hanno comunicato in precedenza, possono

usare la chiave precedente per criptare una nuova chiave

Se A e B hanno comunicazioni sicure con una terza parte

C, questa può può può fare da relay della chiave tra A e B

Page 10: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

14

Gerarchia delle chiavi

Data

Chiavi di sessione

Chiavi master

Protezione

crittografica

Protezione

crittografica

Protezione

Non crittografica

Page 11: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

15

Crittografia in una rete a commutazione di pacchetto

Ogni utente i condivide una

master key ki col KDC

Page 12: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

16

Problemi di distribuzione delle chiavi

◘ Per grandi network sono richieste gerarchie di KDC, ma

questi devono avere reciprocamente fiducia

◘ Per maggiore sicurezza i tempi di vita delle chiavi di sessione deve essere limitato

◘ Il tempo di vita tipico di una chiave, nel caso protocolli connection-less è limitato a un tempo fisso

◘ Il tempo di vita tipico di una chiave, nel caso protocolli

connection oriented, è limitato a una sessione

◘ Uso della distribuzione automatica di chiavi a beneficio degli utilizzatori ma servono sistemi con fiducia

Page 13: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

Generatori di Numeri PseudoCasuali

Anyone who attempts to generate random numbers bydeterministic means is, of course, living in a state of sin.

--John von Neumann

Page 14: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

18

I generatori di numeri casuali (RNGs) risultano

componente fondamentale per diverse applicazioni:

- Esperimenti statistici –analisi di algoritmi-

- Simulazione di sistemi stocastici

- Analisi numerica basata su metodi Monte-Carlo

- Algoritmi probabilistici

- Computer games

- Crittografia

- Protocolli di comunicazione sicuri

- Gambling machines

- Virtual Casino

Page 15: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

19

molti algoritmi crittografici necessitano di (tanti) bit casuali

le sorgenti casuali (macroscopiche) sono rare in Natura produrre bit casuali è costoso

idea: si usa un generatore di numeri pseudocasuali (PRNG)

dato un seme casuale, un PRNG produce una sequenza di bit che è indistinguibile da una sequenza di bit casuali

PRNG

Page 16: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

20

indistinguibile significa che nessun algoritmo eseguibile in tempo polinomiale su una Macchina di Turing(MdT) probabilistica sa decidere se la sequenza emessa dal PRNG è casuale oppure calcolata definizione di tipo computazionale

Neanche Eve è in grado di capire se stiamo usando numeri casuali o pseudocasuali

PRNG

Page 17: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

21

definizione: un PRNG è un algoritmo, eseguibile in tempo polinomiale su una MdT deterministica, che calcola una funzione

G : {0,1}k → {0,1}l(k), con l(k) > k(k= lunghezza stringa in ingresso, l(k)= lunghezza stringa in uscita)

i PRNG possono essere uniformi o non uniformi

PRNG

Un PRNG non uniforme

Page 18: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

22

generatore congruenziale lineare: siano a, b ed m tre interi tali che 0 a, b < m dato un seme intero s, con 0 s < m, il sistema di

equazioni:

si chiama generatore congruenziale lineare

1mod1

0

imbaxx

sx

ii

PRNG

Page 19: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

23

proposto da Lehmer nel 1951, produce una sequenza di numeri della medesima lunghezza

la scelta di a, b ed m è critica per non ottenere sequenze facili da prevedere

viene usato spesso (ma non in Crittografia) non è un buon generatore: i numeri prodotti

presentano relazioni lineari

se Eve scopre quattro valori x0, x1, x2, x3 prodotti, risolvendo il sistema di equazioni:trova i valori di a, b, ed m

mbaxx

mbaxx

mbaxx

mod

mod

mod

23

12

01

PRNG

Page 20: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

24

problema: costruire una funzione

G : {0,1}k → {0,1}l(k)

che allunga l’input, verificando i requisiti della definizione

domanda: dobbiamo costruire una funzione diversa per ogni possibile funzione l(k) ?

PRNG

Page 21: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

25

risposta: no. A partire da un PRNG H : {0,1}k →{0,1}k+1 possiamo costruire qualunque PRNG G : {0,1}k → {0,1}l(k)

Data la stringa x0 {0,1}k per costruire una stringa pseudocasuale di lunghezza l(k)>k è sufficiente applicare l(k) volte il generatore pseudocasuale H, ottenendo ogni volta un bit della stringa di output ed un nuovo seme per applicare H.

PRNG

Page 22: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

26

abbiamo quindi ridotto il problema di costruire G a quello di costruire H, che allunga l’input di un solo bit ci basterà una funzione one-way

definiamo il concetto di hard-core bit se f è una funzione (permutazione) one-way, è

difficile da invertire: dato y, è difficile calcolare x tale che f(x) = y

se x è difficile da calcolare, alcuni suoi bit saranno difficili da calcolare (se x {0,1}n, devono essere più di log2n, ad esempio n/4)

i bit difficili da calcolare sono hard-core bit per f

PRNG

Page 23: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

27

supponiamo che Alice debba mandare il bit b {0,1} a Bob preleva la chiave pubblica (nB, eB) di Bob sceglie a caso un intero x < nB/2

(quindi, 2x < n) trasmette a Bob y = (2x + b)eB mod nB

Bob, ricevuto y: calcola ydB mod nB = 2x + b prende il bit meno significativo del risultato

Intermezzo: RSA randomizzato

Numeri casuali generati in modo crittografico

Page 24: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

28

osservazione: non si sa se gli altri bit di m (in particolare, quali e quanti) sono hard-core bit per RSA

quindi, per cifrare in modo sicuro un messaggio m, si può cifrare ogni bit di m con RSA randomizzato la crittoanalisi diventa molto difficile se il messaggio è lungo, il metodo è

inefficiente

RSA randomizzato

Page 25: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

29

RSA pseudorandom bit generator

1. Si sceglie a caso due grandi primi p e q

2. Si calcola2.1 n = pq2.2 = (p-1)(q-1)2.3 e tale che MCD(e,) = 1

3. Si sceglie a caso un seme x0 < n-1

(N.B. Intel generator consigliato)

4. Si itera quanto serve4.1       xi = xi-1

e mod n,

4.2       bi = xi mod 2

(N.B. bi è il bit meno significativo di (xi)2

#define MAX_LUNGHEZZA 256void RSAGenerator(intero z[MAX_LUNGHEZZA],intero l){ intero n,p,q;intero phi;intero x[MAX_LUNGHEZZA];p=prime(1000,5000);q=prime(1000,5000);n=p*q;phi = (p-1)*(q-1);intero e = random(1,phi);while(mcd(e,phi)!=1) e = random(1,phi); x[0]=random(1,n-1); //semefor (intero i=1;i<=l;i++) {x[i]=powermod(x[i-1],e,n);z[i-1]=x[i]%2;printf("%d",x[i]%2);}}

Page 26: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

30

proposta da Meyer e Matyas nel 1982 a partire da una master key (seme) si

produce una sequenza di chiavi di sessione si usa un contatore avente periodo N il valore del contatore viene usato come

chiave (o come testo in chiaro) in un crittosistema simmetrico

ogni volta che viene usato, il contatore viene incrementato

Cifratura ciclica

Numeri casuali generati in modo crittografico

Page 27: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

31

per rafforzare ulteriormente lo schema si può usare una sequenza di input più complicata

C

C+1

ENC

contatore con periodo N

xi = Ekm(C+1)

master key km

Cifratura ciclica

Numeri casuali generati in modo crittografico

Page 28: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

32

si può anche usare il modo di funzionamento OFB di un crittosistema simmetrico per generare un keystream, che poi si usa come l’output di un PRNG

Ek

m1

c1

z0 z1 Ek z2

m2

c2

Keystream nel modo OFB

Numeri casuali generati in modo crittografico

Page 29: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

33

è uno dei PRNG crittografici migliori tra quelli noti viene usato in PGP utilizza 3DES come indicato in figura (vedere

prossima slide) input:

DTi: rappresentazione a 64 bit della data e dell’ora attuali. Viene aggiornato ad ogni blocco pseudocasuale generato

Vi: seme da 64 bit chiavi:

k1, k2: da 64 bit ciascuna

Vengono usate nei tre moduli di 3DES, in modalità EDE (encryption – decryption – encryption)

ANSI X9.17

Numeri casuali generati in modo crittografico

Page 30: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

34

ANSI X9.17

Page 31: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

35

output: Ri: blocco pseudocasuale da 64 bit Vi+1: valore aggiornato del seme

dalla figura si vede che:Ri = EDEk1,k2(Vi EDEk1,k2(DTi ))

Vi+1 = EDEk1,k2(Ri EDEk1,k2(DTi ))

riassumendo, il PRNG: usa una chiave da 112 bit vengono fatte nove cifrature/decifrature con DES si usano i valori pseudocasuali DTi e Vi, che

cambiano ad ogni valore prodotto

ANSI X9.17

Page 32: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

36

per quanto riguarda la sicurezza: la quantità di informazioni da

compromettere è enorme anche se Eve riesce a trovare un Ri, non

riesce comunque a trovare i successivi

ANSI X9.17

Page 33: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

37

proposto nel 1986 siano p e q numeri primi (grandi) tali che:

p 3 mod 4, q 3 mod 4 sia n = p q si sceglie a caso s tale che MCD(s, n) = 1

(s non è multiplo né di p né di q) il generatore produce la sequenza di bit:

B1, B2, …

con il seguente algoritmo

Generatore di Blum, Blum e Shub (BBS)

Numeri casuali generati in modo crittografico

Page 34: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

38

BBS(s)X0 = s2 mod n

i = 1while (true)

do Xi = (Xi-1)2 mod n

Bi = Xi mod 2 Bi = lsb(Xi)

la sicurezza si basa sulla (congetturata) difficoltà di fattorizzare n

Generatore di Blum, Blum e Shub (BBS)

Page 35: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

39

Blum-Blum-Shub generator

1. Si scelgono due grandi e diversi primi p e q, congruenti a 3 modulo 41. Si calcola n = p.q. 2. Si sceglie a caso un s < n-1 tale che MCD(s,n) = 1 3. Si calcola x0 = s 2 mod n

4. Si itera quanto serve5.1       xi = xi-1

2 mod n,

5.2       bi = xi mod 2.

(Teorema di Dirichlet): “se MCD(a,n) = 1, allora esistono infiniti numeri primi del tipo p=a+k.n” N = 3 + k.4

N primo?

k = k + 1

k = 0

NO

L’efficienza è alta: una quadratura per passo

la sicurezza si basa sulla (congetturata) difficoltà di fattorizzare

Page 36: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

40

#define MAX_LUNG 256void BBSgenerator(interoz[MAX_LUNG],intero l){intero p,q;intero n,s;intero x[MAX_LUNGHEZZA];do{ p=prime(1000,5000); while(!congruente(p,3,4)) p=prime(1000,5000); q=prime(1000,5000); while(!congruente(q,3,4)) q=prime(1000,5000);} while (p!=q);n=p*q;s=random(1,n-1); //semewhile(mcd(s,n)!=1) s = random(1,n-1);x[0]=powermod(s,2,n);for (intero i=1;i<=l;i++) {x[i]=powermod(x[i-1],2,n);z[i-1]=x[i]%2;printf("%d",x[i]%2);}}

Blum-Blum-Shub generator

Page 37: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

41

si dimostra che BBS supera il next-bit test

ovvero, non esiste nessun algoritmo polinomiale che, dati i primi k bit della sequenza di output:

B1, B2, …, Bk

è in grado di indovinare il (k+1)-esimo (cioè Bk+1) con probabilità > ½

Generatore di Blum, Blum e Shub (BBS)

Page 38: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

42

Generatori di numeri realmente casuali (TRNG)

Si ottengono campionando processi naturali non prevedibili

Intel ha sviluppato un circuito integrato che campiona il rumore termico amplificando la tensione misurata ai capi di una resistenza

Bell Labs utilizza una tecnica che sfrutta le variazioni nel tempo di risposta delle richieste di lettura di un settore di un disco rigido

Vi sono problemi legati alla reale casualità e alla distribuzione in rete di tali numeri casuali.

Page 39: 1 Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi Scenario tipico Workstations accedono ad altre workstation.

43

Skew

Un TRNG può non rispettare la richiesta di omogeneità nella distribuzione di 0 e 1.

Per ridurre tale inconveniente sono stati sviluppati alcuni algoritmi chiamati algoritmi di deskew.

Uno di questi medodi utilizza funzioni hash generate con MD5 o SHA-1