Sicurezza II Prof. Dario Catalano Strong Password Protocols.

29
Sicurezza II Prof. Dario Catalano Strong Password Protocols

Transcript of Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Page 1: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Sicurezza IIProf. Dario Catalano

Strong Password Protocols

Page 2: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Introduzione

Problema: Alice vuole usare una workstation per autenticarsi in un server (Bob). Alice ha solo la sua pwd La workstation non possiede nessuna

configurazione particolare (es. non ha accesso alla chiave privata di Alice).

Il software installato sulla workstation e’ affidabile.

Esistono vari modi in cui Alice puo’ usare la pwd per autenticarsi con Bob.

Page 3: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Vari approcci

La pwd di Alice e’ trasmessa in chiaro a Bob

Eseguire DH (anonimo) per stabilire un canale privato da utilizzare per trasmettere la pwd. Protegge contro “origliatori” ma non

contro chi impersona Bob.

Page 4: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Vari approcci (cont) Calcolare l’hash della pwd e utilizzarla

come chiave segreta in un protocollo challenge/response Rimane il problema dell’attacco del

dizionario. Utilizzare uno schema del tipo One Time

pwd (es. Lamport Hash) Utilizzare uno schema sicuro contro

dictionary attacks. Oggi discuteremo queste due ultime

soluzioni.

Page 5: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Lamport’s Hash

Lo schema permette a Bob di autenticare Alice. Ne’ un origliatore ne’ un avversario

che entra nel server di Bob potra’ impersonare Alice.

Alice ricorda solo la propria password.

Bob mantiene un database.

Page 6: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Il DB di Bob

Per ogni utente Bob mantiene le seguenti informazioni Username n, intero (che viene decrementato

ogni volta che l’utente viene autenticato)

Hashn(pwd)

Page 7: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Configurare i dati di Alice

Alice sceglie la propria pwd ed un intero (suff. grande) n.

Il software di registrazione calcola x1=hash(pwd)

Quindi calcola x2=hash(x1),…,xn=hash(xn-1).

Vengono inviati a Bob xn e n.

Page 8: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Autentica Alice inserisce username e pwd nella

workstation. La workstation invia l’username a Bob Bob risponde con n. La workstation calcola x=hashn-1(pwd) e

manda x a Bob. Bob calcola hash(x), se e’ uguale a xn

Alice puo’ entare. Bob rimpiazza n con n-1 nel database.

Page 9: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Autentica (cont) Quando n arriva ad 1 il sistema deve

essere re-inizializzato. Una nuova pwd deve essere scelta.

Questo e’ piuttosto complicato in un sistema come quello considerato qui.

In pratica, Alice sceglie una nuova pwd’, calcola hashn(pwd’), e trasmette hashn(pwd’) e n (in chiaro) a Bob.

Page 10: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Aggiungere un seme

Un valore casuale seed (seme) e’ scelto in fase di inizializzazione.

Valore univocamente legato ad Alice e memorizzato nel DB di Bob.

Il seme e’ concatenato alla pwd prima di calcolare l’hash.

hashn(pwd||seed)

Page 11: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Aggiungere un seme (cont)

Per calcolare la pwd, il software di registraz sceglie seed (a caso) calcola x1=hash(pwd||seed), …, xn=hash(xn-1||seed).

xn, n e seed sono inviati a Bob.

Page 12: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Vantaggi (nell’utilizzare seed) Alice puo’ utilizzare la stessa password

su tanti server (utilizzando ogni volta un seme diverso).

Alice non ha bisogno di cambiare la pwd quando un dato n arriva a zero. Basta cambiare il seme e ripetere

l’inizializzazione con il nuovo seme. Inoltre aggiungere un seme permette di

fronteggiare un avversario che calcola hashn per tutte le possibili pwd del dizionario.

Page 13: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Proprieta’ dello schema Accedere al server di Bob non

compromette la pwd di Alice. Rispetto ai sistemi a chiave pubblica e’

piu’ efficiente, ma ha altri svantaggi. Dictionary attack. E’ possibile autenticarsi un num limitato di

volte prima di dover reinizializzare il sistema.

Non si ha mutual authentication (Alice non puo’ essere sicura di parlare con Bob).

Page 14: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Small n attack Oscar impersona Bob e attende il

tentativo di log in di Alice Quando Alice effettua il log in, Oscar

invia un valore n’ piccolo (es. 20) Alice risponde con hashn’(pwd). Oscar potra’ impersonare Alice presso il

vero Bob (assumendo che il valore n memorizzato da Bob sia maggiore di n’)

Page 15: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Contromisure

La workstation potrebbe mostrare l’n ricevuto dall’umano (Alice)

Se Alice ricorda il valore (approssimativo) di n le conseguenze dell’attacco possono essere contenute.

Page 16: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Human and paper environment

Ambienti dove la workstation non calcola l’hash, es: Alice si collega da un terminale

“dumb” La workstation non ha il software che

implementa lo schema. La workstation non e’ fidata (Alice

non vuole rivelare la propria pwd).

Page 17: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Human and paper environment (cont) Quando l’info (n,hashn(pwd)) e’

installata nel server, tutti i valori hashi(pwd), i<n, sono calcolati.

Tali valori sono convertiti in formato “digitabile”, stampati e dati ad Alice.

Quando Alice fa il log in, inserisce la stringa all’inizio della pagina, e la cancella da foglio.

Page 18: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Human and paper environment (cont) Tale approccio non e’ soggetto allo

small n attack. Considerato che una funzione hash

restituisce un output di (almeno) 160 bit e assumendo di avere un alfabeto di (almeno) 64 caratteri, la stringa da inserire sarebbe (circa) 32 caratteri!

Ci si potrebbe pero’ limitare alla meta’

Page 19: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Strong Pwd Protocols

Anche se Oscar origlia non puo’ effettuare un dictionary attack.

L’on line pwd guessing rimane possibile Non vi e’ modo di evitarlo. Ma non e’ un attacco troppo

pericoloso.

Page 20: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Bellovin Merritt (EKE)

EKE: Encrypted key exchange Alice e Bob condividono un segreto

W (hash della pwd di Alice) Idea di base: Alice e Bob

effettuano uno scambio Diffie-Hellman “cifrando” i valori DH con W.

Page 21: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

EKE

Alice e Bob condividono W=hash(pwd)Alice Bob

“Alice”, Enc(W;ga mod p)

Enc(W;gb mod p, C1)K=gab K=gab

Enc(K; C1,C2)

Enc(K; C2)

Page 22: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Considerazioni La ragione (intuitiva) per cui il

protocollo e’ sicuro contro origliatori e’ che il valore ga (e gb) non ha nessuna forma facilmente identificabile.

Chi impersona Alice o Bob puo’ verificare la correttezza di una (singola) pwd on line. Ma questo sarebbe, appunto, un attacco

on line.

Page 23: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Dettagli sottili

In realta’ e’ piuttosto complicato realizzare protocolli di questo tipo.

Esiste un’enorme quantita’ di dettagli che, se trascurati, potrebbero rendere possibile un dictionary attack.

Guardiamo un esempio concreto.

Page 24: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Esempio (EKE)

Supponiamo che p sia poco piu’ grande di una potenza di 2 (es 2k-

1<p<2k). Enc e’ un cifrario che ha come

spazio dei msg le stringhe di lunghezza (al piu’) 2k.

ga mod p e’ sempre piu’ piccolo di p ga mod p < 2k.

Page 25: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

L’attacco Provo tutte le pwd. Per ognuna di esse provo a decifrare, se

cio’ che ottengo e’ > di p allora la pwd e’ sbagliata.

Se p e’ poco piu’ grande di una potenza di 2k-1 , ho una probabilita’ significativa che una pwd sbagliata dia luogo ad un fenomeno del genere.

Provando su un numero suff. di conversazioni posso arrivare abbastanza facilmente alla password effettivamente utilizzata.

Page 26: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Evitare l’attacco Per evitare questo attacco e’ opportuno

considerare un p che e’ POCO PIU’ PICCOLO di una potenza di due.

Questo accorgimento rende bassa la probabilita’ che una pwd sbagliata decifri un valore chiaramente scoretto.

Esistono molti altri attacchi (anche molto meno banali) che possono essere fatti su schemi di questo tipo.

Costruire protocolli strong sicuri e’ estremamente complicato.

Page 27: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

Protocolli ulteriormente rinforzati

Se qualcuno conoscesse W, potrebbe impersonare Alice.

Vorremmo un protocollo, che permetta di evitare tale problema. In altri termini, anche entrare nel DB di Bob non

aiuta a spacciarsi per Alice. La versione rinforzata di EKE e’ un po’

troppo complicata per questo corso. Vediamo, quindi, un altro protocollo.

Page 28: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

SRP (Secure Remote Password) Bob memorizza gW mod p. W e’ ottenuto dalla pwd di Alice

tramite una funz. nota. Dunque Bob non conosce W

esplicitamente. Il protocollo prevede che Bob

scelga (ad ogni esecuzione) un valore casuale u (di 32 bit)

Page 29: Sicurezza II Prof. Dario Catalano Strong Password Protocols.

SRP

Alice e Bob condividono W=hash(pwd)Alice Bob

“Alice”, ga mod p

(gW +gb) mod p, u, C1

K=gb(a+uW) K=gb(a+uW)

Enc(K; C1), C2

Enc(K; C2)