Costruire il proprio algoritmo è mai una buona idea. Anche i crittografi addestrati, cioè le persone che hanno faticato per anni nelle oscure gallerie del mondo accademico e nei campi di battaglia del congresso scientifico, ricorreranno a tale inventiva solo quando tutto il resto ha fallito; e anche allora, preferiscono suggerire schemi che devono essere convalidati dai loro coetanei feroci, di sicuro non essere messi subito in produzione. La maggior parte della formazione accademica riguarda l'acquisizione di una conoscenza intuitiva dei pericoli del proprio campo.
La progettazione del tuo algoritmo è come il tap-dancing in un campo minato.
Tuttavia, l'impossibilità di estendere semplicemente il numero di iterazioni di un hash memorizzato, a partire dal valore hash stesso, è un difetto noto dei soliti candidati (PBKDF2, bcrypt e scrypt). Se devi conviverci, puoi provare lo schema descritto lì , ma neghiamo esplicitamente che la sicurezza sarebbe aumentata in questo modo. La mia formazione e anni di esperienza nel settore mi consentono di affermare con una certa sicurezza che i turni di hashing in più suggerisco di non ridurre la sicurezza.
In futuro, le cose andranno meglio perché una nuova competizione aperta per algoritmi di hashing della password è stata lanciato, utilizzando il modello delle precedenti competizioni AES, eSTREAM e SHA-3. La presentazione è prevista per la fine di gennaio 2014. Un portafoglio di "buoni algoritmi" sarà ottenuto entro la metà del 2015, secondo la tempistica provvisoria. La richiesta di invio include esplicitamente la seguente funzionalità desiderata:
Ability to transform an existing hash to a different cost setting without knowledge of the password.
Quindi possiamo sperare in una soluzione al tuo problema tra poco più di due anni. Solo due anni, è molto veloce per gli standard di progettazione crittografica.
Nel frattempo, dovrai ricorrere al consueto sistema di attesa per l'accesso degli utenti in modo che la loro password possa essere modificata con più iterazioni. La maggior parte degli utenti che non hanno effettuato l'accesso per più di un anno hanno probabilmente dimenticato la password comunque.