In un'applicazione web che (come effetto collaterale dell'attuazione della password anti-pattern) memorizza le password, una raccomandazione è di crittografare per archiviarle (o hash salate a senso unico di costo computazionalmente costose). Tuttavia, facendo ciò, il processo del server trascorre la maggior parte del tempo a fare confronti bcrypt intensivi della CPU, dal momento che l'intero punto di utilizzo di bcrypt è che ci vuole tempo per testare una password.
La mia domanda è questa: è sicuro memorizzare nella cache (in memoria) la risposta di un confronto bcrypt? Non sono preoccupato di passare il tempo una volta per processo, ma una volta per ogni singola richiesta diventerà un collo di bottiglia per la scalabilità. Punti bonus (?) Se riesci a far luce se è pratica comune farlo.
Cose che ho considerato:
- Se è solo in memoria, è più difficile attaccare
- L'archivio persistente è sicuro come prima se è compromesso
- L'abbassamento del fattore di caricamento di bcrypt rende il database delle password più vulnerabile, se compromesso