Quali algoritmi sono meglio crackati dalla GPU?

7

Quali algoritmi sono meglio attaccati da un cracker di password alimentato da GPU? Ad esempio, ho sentito che md5crypt che viene utilizzato nel file shadow di unix, non è la scelta migliore per il cracking della GPU perché è praticamente md5 utilizzato 1000 volte rispetto alla password originale per ottenere un hash ...

    
posta dalimama 20.11.2011 - 05:24
fonte

2 risposte

11

Migliaia di iterazioni di MD5 rendono l'hashing della password più difficile per tutti, indipendentemente dal tipo di hardware utilizzato. Non rende le cose specificamente peggiori per una GPU. Ciò che rende le cose più difficili per una GPU (rispetto a una CPU generica) è tutto ciò che utilizza molta RAM: una GPU può accedere a molta RAM, ma non con il pieno parallelismo.

Gli algoritmi che si basano su operazioni a 32 bit interi (aritmetici e logici) sono implementati in modo molto efficiente su GPU. Ciò include MD5, SHA-1 e SHA-2 "piccolo" (SHA-224 e SHA-256). SHA-384 e SHA-512 usano operazioni a 64 bit e GPU hanno problemi con questo - quindi una GPU ti darà una spinta minore quando incrini un hash di password basato su SHA-512 rispetto a una funzione basata su SHA-256. Bcrypt utilizza molti accessi di memoria a un array mutante da 4 kB e GPU ne risentirà, al punto che La CPU potrebbe essere una scelta migliore per provare a crackare le password di bcrypt rispetto a una GPU. Teoricamente, scrypt è ancora più ostile alla GPU.

Ecco perché bcrypt può essere visto come una scelta migliore per l'hashing della password di PBKDF2 (il modo standard di fare più hashing annidato con una funzione hash generica come SHA-1) (vedi questa risposta per i dettagli). Tuttavia, il numero configurabile di iterazioni può rendere difficile il crack delle password anche per una GPU enorme, e PBKDF2 / SHA-256 con un milione di iterazioni sarà tremendamente più sicuro contro gli attacchi di una singola chiamata a SHA-512.

    
risposta data 20.11.2011 - 19:49
fonte
3

Le GPU sono veloci solo quando puoi eseguire molte operazioni in parallelo. Hash 'stretching' alimentando un risultato di un singolo round di un hash in un'altra iterazione come un sale, rende sicuramente l'intero processo più lento. Non solo per impostazione predefinita puoi fare 1000 round di MD5, ma non puoi eseguirli in parallelo, poiché il round 2 deve attendere il round 1 per essere completato.

Le password salate sono un altro "ostacolo" al cracking della GPU. Se hai uno schema di hashing senza sale, l'hash calcolato può essere confrontato con TUTTI i diversi hash che stai cercando di crackare. Con un sale adeguato (alta entropia), se calcoli un hash, tutto ciò che puoi confrontare è l'hash con lo stesso sale che hai appena usato per calcolare il tuo hash. Di solito è solo uno, a meno che tu non sia fortunato (o abbia una serie di password molto grande, o brevi sali), e no puoi confrontare il tuo valore con alcuni hash, non con uno solo.

Un altro aspetto del cracking della GPU che non ho mai visto è il cracking della password singola rispetto a molti. Per farla breve, crackare molte password può essere MOLTO più veloce che se si cerchi di crearne una sola, dato che si sta usando il software giusto per questo. Quindi, prima di eseguire un crack, fare prima una breve analisi dei dati, osservare la velocità. Se è molto più lento del solito, probabilmente devi usare un programma diverso o modificare i parametri per migliorare le prestazioni.

    
risposta data 20.11.2011 - 17:04
fonte

Leggi altre domande sui tag