Questa testata è partner di La Repubblica e contribuisce alla sua audience
Hot topics:
7 minuti

Password Dropbox rubate, cosa vuole dire e come risolvere

Qualcuno ha rubato milioni di dati utente a Dropbox ma questo non significa che i dati siano immediatamente a rischio. Cambiare password è comunque caldamente consigliato.

Password Dropbox rubate, cosa vuole dire e come risolvere

Password Dropbox rubate, cosa vuole dire e come risolvere

In questi ultimi giorni estivi del 2016 c'è stato l'annuncio da parte di DropBox (www.dropbox.com) del leak  del loro database di 68 milioni di accounts dei loro utenti. Il database è stato reso pubblico e risale alla metà del 2012. Tutti coloro che non avevano cambiato la password d'accesso da giugno 2012 sono stati a rischio per 4 anni e mezzo, perché in questo periodo i criminali hanno potuto provare a ricavare le password d'accesso dai dati a loro disposizione.

"Provare a ricavare la password" è un'affermazione importante in questo contesto, perché i criminali non hanno ottenuto le password vere e propria ma piuttosto la sua versione hash (vedi anche: Breve storia della crittografia).

Dropbox phone

Un codice hash è un codice a lunghezza fissa, a seconda dell'algoritmo utilizzato, generato da una funzione matematica non reversibile: dal codice non si può ricavare l'oggetto al quale si riferisce, ossia se applichiamo la funzione di hash ad un file di 200Gb o alla parola "pippo", avremo sempre una sequenza di numeri e lettere di lunghezza fissa. Una sequenza che, comprensibilmente, non contiene alcuna indicazione sul contenuto originale; è un po' come se fosse la targa di un'automobile o l'impronta digitale di un essere umano.

Un esempio vale sempre mille parole:

hash("pippo")= ABC123

hash("l'estate sta finendo")= DFF872

Da qui possiamo capire che dal codice DFF872 non possiamo ricavare l'intera frase "l'estate sta finendo", perché non è una cifratura o una codifica in un altro alfabeto ma è un codice a lunghezza fissa, che identifica univocamente un qualcosa, basta cambiare anche un solo bit ed il codice cambia, per esempio:

hash("l'estate sta finend")=ADB634

Com'è conservata la nostra password online?

Quando scegliamo la password, es. "pippo", nel database viene memorizzato l'hash di "pippo", (per riprendere l'esempio precedente,ABC123) quindi ogni volta che inseriamo la password per accedere ad un servizio, l'applicazione calcola l'hash della password e lo confronta con quello presente nel database, se i due hash coincidono allora la nostra password è corretta.

Ma se i database contengono l'hash delle password e dall'hash è impossibile risalire alla password in chiaro, allora non rischiamo nulla?

Purtroppo i rischi ci sono eccome, perché al di là della teoria esistono metodi per ricavare la password in chiaro, specialmente se molto semplice (parole di senso compiuto, sequenze famose, ecc.), ci sono le rainbow tables, i dizionari, i servizi online. Persino una semplice ricerca su Google può farci trovare lo strumento giusto. Qui un bell'articolo in inglese.

Come funziona?

In sintesi e per semplificare se ho un dizionario di parole con tutti gli hash precalcolati, basta che cerco l'hash ABC123 a che parola corrisponde e trovo "pippo". Di funzioni di hash ce ne sono tante, ma le più utilizzate in molti sistemi sono l'MD5 e lo SHA1.

MD5 è una codifica a 128 bit, che genera un codice alfanumerico di 32 caratteri, mentre SHA1 è a 160 bit che genera un codice di 40 caratteri, se contiamo i caratteri dei codici presenti nel database possiamo intuire che tipo di algoritmo è stato utilizzato.

Depositphotos 48650687 l 2015
Immagine: ulchik74 per Depositphotos

Chiaramente se la password è complessa e non è formata da parole di senso compiuto, difficilmente sarà presente in dizionari o tabelle varie, ma per essere più sicuri in genere le password vengono salvate con la codifica salted, cioè hash + sale!

Che c'entra la cucina adesso? Si chiama salt (sale), una sequenza casuale di caratteri che si aggiunge alla password da noi scelta, questa sequenza non la conosce nemmeno l'utente, ma la genera il sistema al quale accediamo:

hash("pippo" + "A@!763F") = DBB881

che è diverso da ABC123.

Quindi questo sale modifica l'hash della password, rendendo vano l'attacco a dizionario, ma se l'attaccante avesse anche il database del salt o sapesse l'algoritmo che genera i salt, potrebbe ricavare un sistema per provare tutte le combinazioni.

Se i miei salt sono combinazioni di numeri di massimo 4 cifre, diventa facile ad ogni parola del dizionario aggiungere tutte le 10.000 combinazioni  (da 0000 a 9999) di numeri e calcolarne l'hash, per poi confrontarlo con quelli presenti nel database rubato.
Un altro sistema stupido per "salare", potrebbe essere quello di calcolare l'hash della password con lo username come salt:

hash("pippo" + ciccio@xxxxxx.com)

Tornando al caso Dropbox, i responsabili della società hanno detto che metà delle password erano codificate con bcrypt  ed altre con SHA1 + salt. Quelle codificate con bcrypt sono più sicure, ma anche quelle con SHA1 + salt dovrebbero essere sicure perché pare che il database dei salt non sia stato preso, ma nel dubbio è meglio correre a cambiare la password. Dopo tutto questo se volete controllare se il vostro account fa parte dei leaks potete provare ad inserirlo qui: https://haveibeenpwned.com/.  

Quella ottenuta dal sito appena citato è solo un'indicazione di massima. Magari il vostro account è presente ma da allora avete già cambiato password, anche perché DropBox nel 2012 fece un annuncio simile a quello recente, che spinse molti a cambiare password.

Continua a pagina 2
AREE TEMATICHE
Vuoi ricevere aggiornamenti su #Sicurezza?
Iscriviti alla newsletter!