è più semplice ottenere la password originale se ne hai più di hash?

5

La maggior parte degli utenti utilizza tipicamente la stessa password per più applicazioni. Diciamo che tutte queste applicazioni hanno cancellato la password in qualche modo. Sarebbe più semplice per un utente malintenzionato ottenere la password originale se avesse accesso a tutti i diversi hash? Ovviamente l'attaccante probabilmente guardando gli hash può sapere qual è il più debole e cerca solo di rinforzare questo, ma ha guadagnato qualcosa avendo accesso ad altri hash della stessa password? Anche supponendo che l'attaccante non abbia alcuna tabella arcobaleno contenente nessuno di questi hash.

Quindi, se un utente malintenzionato ha accesso a tutti questi hash della stessa password, può essere più veloce nello spezzarlo rispetto a provare semplicemente a forzare uno degli hash md5 (come in questo caso è il collegamento più debole)?

  • 33c38d9db9759da0d0a813968bc3c1fb
  • 7b8758cf3cb6e540d60b3e9999c48fbef0502ac6
  • faa81286aa90907253a58acfd83d2d89e58120031630d60dc05d0cd365b6df8d
  • $1$NPeNiNCA$AwpOWKuur2LZvXiJxNM6U1
  • $5$VHVZwDnI4aAEUG2m$ZhSJ537JmYJ5ISDxPQ6doWxPOrz9AMjyvxYxecViK23
  • $5$3bRXBWCpG9GEHdm$a2xIBbgK.fyr5k26BhUGo2QCvl25yQU1I9mwFp7mmh5p
  • $6$Hcdqud1hDgz$5MOEbgtOdxfF289OSXrmIevt7NnZBLaQkNGKeijR/X09ZDEbQ/ZfObJjNo0J64t4haSSqihRhfPe4z8l.ptro1
  • $6$hqaQ3RzX$bk8dgMsAlmDPpOX0IWWIrJ9T3awblvI.PCipeqJDdJZSVDQJgCRsQRX8pKpFU2XNcvRr56e3MARcTQR5oJ94V/
  • $2a$13$Hdz8T8vlEqwCvhixyu4rlel2cjj.TfA1qXEZ2dXhabogN35Idd8Je
  • $2a$15$hLPoYhbVJNA48A/Wmv1I5.5XBv/G/1s8BGfDLU7mt37ojGhNjETd2

btw, la password originale è hello12345world12345 , non sto provando a (farti) a craccare la password di qualcuno; -)

    
posta Carlos Campderrós 23.01.2013 - 10:21
fonte

2 risposte

7

In teoria, avere diversi hash può aiutare; in pratica, non così tanto.

The Theory

Consideriamo SHA-256. Da questa funzione, possiamo definire una un'altra funzione di hash, che chiameremo SHB-256, tale che SHB-256 ( m ) = SHA-256 ( m ) XOR m . In parole semplici, computo lo XOR dello SHA-256 e i primi 256 bit di m .

Questo "SHB-256" è una buona funzione di hash crittografica come SHA-256: è ugualmente resistente a collisioni, pre-immagini e seconde pre-immagini. Tuttavia, se ti do entrambi SHA-256 ( m ) e SHB-256 ( m ), allora un semplice XOR di entrambi i valori produce i primi 256 bit di m .

La pratica

Sfruttare diversi hash calcolati con la stessa password si basa su quanto "simili" siano le funzioni hash, in modo da consentire "l'annullamento" l'un l'altro. Questa è una proprietà molto mal definita e (ancora) non completamente investigata. A mia conoscenza, nessuna di queste scorciatoie è nota con le funzioni di hash esistenti. Ci sono molti dettagli in mente; le funzioni iterate e l'uso di sali rendono la questione ancora più complessa.

Che cosa può fare un attaccante realistico quando si trova di fronte a più hash è usare quello che sarà più facile per lui attaccare e ignorare gli altri. Se uno di questi non è salato, l'attaccante prenderà di mira quello che consente l'attacco simultaneo di diverse password con hash e l'uso di tabelle (arcobaleno) precalcolate. Altrimenti, userà la funzione che sarà più efficiente se implementata nel suo hardware (ad esempio se si trova di fronte a PBKDF2 e Bcrypt , l'hacker punterà su PBKDF2, che è più facile da implementare su una GPU). Come dice @Polynomial, i tuoi hash saranno forti quanto i più deboli di essi.

Un effetto extra indiretto riguarda il budget della CPU. Quando si esegue registration , si hash la password dell'utente con all le funzioni hash. Per le funzioni di hash che sono "configurabilmente lente", come bcrypt o PBKDF2, questo potrebbe incitarvi a configurarle come "un po 'più veloci" di quelle che avresti fatto se ne avessi usato solo una, in modo da mantenere i tuoi costi entro limiti tollerabili. Ciò abbassa corrispondentemente gli sforzi dell'attaccante, dato che lui deve solo rompere un hash, non tutti.

    
risposta data 23.01.2013 - 12:52
fonte
0

Dipende dalla forza della password e dall'algoritmo di hashing utilizzato per l'hashing. Ci sono programmi che usano CPU + GPU per rompere gli hash usando attacchi a forza bruta. Quindi, se si utilizza la password comune, è facile da decifrare utilizzando un PC e una scheda grafica. Sono disponibili molte applicazioni che utilizzano la potenza della GPU insieme alla CPU. Non importa se dai due o tre tipi di hash di una password, la tempistica della forza bruta dipende dalla forza della password e dall'algoritmo di hashing.

Se ho 5 diversi hash della tua password e uno di questi è molto debole, allora quella password può essere recuperata rapidamente attaccando l'hash dell'algoritmo di hashing più debole.

    
risposta data 23.01.2013 - 11:21
fonte

Leggi altre domande sui tag