È mai sicuro pubblicare dati con hash?

3

Sto avendo un dibattito amichevole con qualcuno che pensa che un sito web possa tranquillamente rendere pubblici i dati sensibili dei suoi utenti a condizione che i dati vengano sottoposti a hashing (non chiedere perché, è un lungo e storia ipotetica). La mia posizione è che questo apre i dati fino agli attacchi di forza bruta almeno e che nessun hash è veramente indistruttibile dato abbastanza tempo e risorse, quindi anche i dati sottoposti a hash dovrebbero essere protetti e mantenuti privati. Chi è (più) giusto? I dati privati possono essere resi sicuri in modo sicuro in pubblico a condizione che sia sottoposto a hash o no?

    
posta Michael Mathews 19.09.2014 - 11:45
fonte

3 risposte

5

Sei corretto che gli attacchi di forza bruta siano fattibili, specialmente se i dati che vengono sottoposti a hashing provengono da uno spazio di ricerca relativamente piccolo. Ecco un esempio recente dove i dettagli delle cabine di New York erano inadeguatamente camuffati usando un hash. Dall'articolo:

It turns out there's a significant flaw in the approach. Because both the medallion and hack numbers are structured in predictable patterns, it was trivial to run all possible iterations through the same MD5 algorithm and then compare the output to the data contained in the 20GB file. Software developer Vijay Pandurangan did just that, and in less than two hours he had completely de-anonymized all 173 million entries.

Si noti che non è l'uso di MD5 che è il problema qui. Qualsiasi algoritmo di hash potrebbe essere forzato bruto esattamente allo stesso modo.

Potrebbe essere possibile rendere irreversibile l'hashing aggiungendo sale prima dell'hashing; tuttavia a quel punto dovresti fare altrettanto bene per creare una tabella di ricerca che mappasse i dati sensibili a valori interamente casuali, quindi non ci sarà alcun algoritmo di hash da interrompere.

Naturalmente tutto ciò presuppone che ci siano associazioni nei dati che si desidera conservare dopo l'anonimizzazione. In caso contrario, l'approccio più sicuro è quello di omettere o mascherare completamente tutti i dati sensibili.

    
risposta data 19.09.2014 - 12:23
fonte
0

L'hash semplice non è sicuro se l'utente malintenzionato progetta di recuperare alcune password utilizzando un attacco con arcobaleno (o altre tecniche di forza bruta). L'aggiunta di sale dovrebbe rendere l'hash ragionevolmente sicuro, anche se rilasciato al pubblico.

"hash indistruttibile" non ha senso. Se utilizzi una password debole (ad es. "123456") e non usi salatura, qualsiasi funzione di hash strong diventa "debole".

    
risposta data 19.09.2014 - 11:51
fonte
0

Se stai truciando dati arbitrari, non c'è un modo semplice per ricostruirlo, dal momento che non ha una dimensione di pre-hashing prevedibile. La ragione per cui gli hash delle password non salati sono pericolosi quando trapelati è perché hai a che fare con un insieme molto limitato di possibilità. Senza sale, la password di "password" risulterà sempre nello stesso hash. Ciò consente a un utente malintenzionato di iniziare con una password comune e vedere se ci sono corrispondenze, che spesso esistono. Se si prendono dati di una dimensione arbitraria e l'hash, non si può ragionevolmente indovinare qual è il contenuto originale. Immagina di prendere un file da 1 megabyte e di ridurlo a un hash MD5 da 16 byte. Senza altre informazioni sui dati, non esiste un modo realistico per trasformare l'hash nelle informazioni originali.

    
risposta data 19.09.2014 - 21:38
fonte

Leggi altre domande sui tag