Sì, questa è 'un'altra domanda di hashing sul lato client'. Ma, non partire ancora, penso che qui ci sia un certo valore.
Mi piacerebbe fare qualcosa per mitigare l'effetto sulla comunità nel suo complesso quando il mio database di hash delle password viene rubato. (Vedi: LinkedIn, Match.com, Yahoo, ecc ...)
In questi casi, l'analisi statistica delle password trapelate è stata utilizzata per migliorare l'euristica per il targeting del cracking della password di un utente. Mi piacerebbe aiutare a impedire che ciò accada.
Ecco l'idea: prendi la password cleartext dell'utente, rallenta l'hash sul lato client di quanti round possono essere aggiunti. Quindi, utilizzare l'hash come password passata al server. Tratta l'hash di client-password come una normale password e l'hashing lento di nuovo sul lato server.
Questo dovrebbe rendere il mio database delle password immune agli attacchi euristici. (Beh, non proprio immune, solo extra costoso usare l'euristica.)
La mia preoccupazione, tuttavia, è che l'entropia ridotta nell'output di hashing sul lato client potrebbe eliminare i guadagni che ho trovato nell'eliminare il valore dell'euristica.
Come si può quantificare questo trade-off? Qualche idea sull'approccio?
Modifica
Per essere chiari, sto cercando di rendere meno preziosi gli attacchi euristici. io voglio rendere 'Password1' una buona password come 'tqwe657fdh'. Significa che un attaccante dovrà cercare lo stesso spazio per crearne uno.
Un'altra modifica
La discussione mi ha aiutato a chiarire i miei pensieri:
Con le recenti fughe di così tanti grandi database di password e l'analisi risultante di password e pattern comuni, credo che l'euristica utilizzata nei sistemi di password cracking debba essere migliorata.
I recenti progressi con l'esecuzione di hash assistito dalla GPU ( link ) stanno ulteriormente spostando il vantaggio di squilibrio della CPU verso l'aggressore. (Ad ogni modo, era già piuttosto squilibrato: è un compito arduo gestire password di hashing lento su hardware di server centralizzato una volta che un sistema si avvicina a Internet.)
Voglio fare due cose:
Elimina il vantaggio che il mio attaccante riceve dall'euristica, forzando così un vero attacco di forza bruta.
Diminuisci i benefici che il mio database delle password avrà per la comunità dei cracker una volta rubato a me.
Sospetto che la mia idea possa essere d'aiuto, ma ho bisogno di un modo per quantificare i compromessi.