Fragili sicurezze

Mi è recentemente capitato di leggere uno studio di due ricercatori accademici dell'università di Cambridge (Joseph Bonneau e Sören Preibusch) riguardante un'analisi empirica delle implementazioni dell'autenticazione username/password su Internet.
La materia è da sempre dibattuta e di grande attualità visto che, oggi, parecchie delle nostre attività quotidiane (dalla gestione della posta elettronica alle transazioni bancarie, dagli acquisti alla semplice lettura di giornali e riviste) si svolgono sul web.
Questo studio, però, per come è stato condotto, mi ha particolarmente incuriosito ed affascinato.

Il "fallimento" del meccanismo di autenticazione basato su username/password per quanto riguarda il livello di sicurezza garantito è sempre stato addebitato all'anello debole della catena: l'utente.
La scarsa capacità della memoria umana di ricordare stringhe alfanumeriche random (così come consigliato dagli esperti di sicurezza per la scelta di una buona password) è sempre stata ritenuta la causa principale della "facilità" di violazione che si riscontra sempre più spesso. Lo studio in questione conferma questa tesi affrontando però l'argomento da una prospettiva differente ed aggiungendo elementi nuovi e davvero interessanti: l'analisi sulla sicurezza di detto meccanismo di autenticazione è accompagnata da argomentazioni di carattere economico e da un'analisi delle motivazioni "etiche" che spingono i fornitori di servizi internet a continuare ad adottarlo nonostante le sue evidenti ed acclarate falle, a discapito della sicurezza dei dati e delle operazioni dei propri utenti.
 

La metodologia

Il lavoro è stato svolto scegliendo di seguire alcune semplici domande:

  • Come varia l'esperienza dell'utente da sito a sito?
  • Che debolezze implementative esistono?
  • Quali sono i fattori circostanziali che condizionano le scelte implementative relative alle password?
  • In che modo i requisiti di sicurezza condizionano le scelte implementative?
  • Perchè i siti scelgono di conservare le password utente?

Per rispondere a tali domande è stata fatta una selezione di siti da "esplorare" identificando tre macrocategorie:

  • content providers
  • e-commerce
  • personal identity host

Utilizzando il ranking di traffico di Alexa, sono stati scelti (in maniera random) 25 siti dai top 100 di ogni macrocategoria e 25 tra quelli in fondo alla lista, per un totale di 150 siti in tutto.
Ognuno tra questi siti è stato sottoposto a valutazione secondo una serie di operazioni definite:

  • Sottoscrizione
  • Login/Logout
  • Aggiornamento password
  • Reset password
  • Password probing (attacco brute force)

 

Risultati e valutazione

I risultati ottenuti sono stati a dir poco scoraggianti.
Circa l'80% dei siti "testati" mancano di suggerimenti agli utenti riguardo la scelta di una password sicura. Solo meno del 10% di essi ha implementato un "dictionary check" per prevenire l'utilizzo della parola "password"... Solo sette siti, inoltre, hanno richiesto l'utilizzo di almeno un carattere numerico all'interno della password e solo due hanno richiesto un carattere non-alfanumerico.
Molti dei siti hanno trasmesso la password in chiaro in caso di richiesta reset e, addirittura, uno di essi ha spedito le credenziali utilizzando il metodo POST in un modo tale che rimanesse nell'history del browser...
Solo 3 siti su 150 hanno criptato la password prima di trasmetterla.
126 siti, infine, non hanno previsto limiti per i tentativi di login (facilitando di molto gli attacchi brute force).
Questo da un punto di vista prettamente "numerico".

La valutazione dei dati raccolti ha portato all'identificazione di un pattern molto interessante (nonchè ovvio ma trascurato dai più): i peggiori "gestori" del meccanismo di autenticazione basato sulla coppia username/password si sono rivelati i content providers. Parecchi di essi offrono contenuti (sponsorizzati) gratuitamente, ragion per cui la "sicurezza" di un login non è qualcosa che li interessa particolarmente.
Il problema è che parecchi utenti tendono a "riciclare" la propria password in contesti diversi e questo rende l'intero meccanismo poco sicuro.
E' facile capire, ad esempio, che recuperare una password utilizzata per loggarsi su debianizzati.org è di per sè poco utile... ma se la stessa password è quella utilizzata per accedere anche a servizi interbancari la gravità della cosa è più che evidente.
Parecchi dei content providers potrebbero benissimo fare a meno di richiedere autenticazione tenuto conto del tipo di servizi che offrono.
E' naturale chiedersi se tutto ciò serva loro per ragioni commerciali piuttosto che, invece, per ragioni di sicurezza.
La ritualità della compilazione del classico form online al momento della registrazione e la successiva richiesta di validazione via email cos'altro è se non un mezzo per raccogliere dati "anagrafici" di utenti?
La limitata capacità della mente umana di ricordare password complesse (citata in precedenza) è diventata un "bene di mercato" per gli imprenditori del web. Non si spiegherebbe altrimenti la riluttanza di parecchi di essi nel permettere autenticazioni via OpenID (per citarne uno) il cui uso è scoraggiato, fra gli altri, persino da Google e da Yahoo...

Quella di strumenti come OpenID, invece, potrebbe essere, a mio avviso, la strada da percorrere per cercare di migliorare la situazione poichè farebbe venir meno il pretesto di raccogliere dati personali (il che è in molti casi solo una tecnica per stabilire un rapporto di fiducia con i propri utenti).
Servizi come OpenID (ovvero quelli basati sui "federated identity protocols") sono stati pensati proprio per questo: evitare agli utenti finali di doversi "fidare" di tante entità virtuali differenti.
E' anche vero però, come sostengono i ricercatori, che se la funzione principale della password è quella di "aiutare" a stabilire un "sentimento di fiducia", rimpiazzarla con altro meccanismo (qualunque esso sia) non si rivelerà affatto un compito semplice.