1 / 29

Sicurezza II Prof. Dario Catalano

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

aimon
Télécharger la présentation

Sicurezza II Prof. Dario Catalano

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sicurezza IIProf. Dario Catalano Strong Password Protocols

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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)

  7. 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.

  8. 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.

  9. 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.

  10. 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)

  11. 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.

  12. 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.

  13. 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).

  14. 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’)

  15. 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.

  16. 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).

  17. 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.

  18. 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’

  19. 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.

  20. 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.

  21. 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)

  22. 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.

  23. 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.

  24. 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.

  25. 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.

  26. 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.

  27. 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.

  28. 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)

  29. 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)

More Related