Ho sviluppato un'applicazione simile nel concetto a un server FTP. Esistono diverse centinaia di account utente e utilizza bcrypt per memorizzare le password con hash.
Tutte le password utente sono GUID V4 a 128 bit generati casualmente.
Una caratteristica della mia applicazione causa molti accessi simultanei. Quando ciò accade, bcrypt domina i profili delle prestazioni e degrada l'esperienza dell'utente. Voglio ridurre il carico della CPU sostituendo bcrypt con una funzione hash meno intensiva della CPU.
Le applicazioni Web utilizzano bcrypt per le password anziché gli hash molto più deboli (ad esempio SHA-1 single-round o anche ROT13) in modo che il cracking offline sia improvvisamente non banale.
Tuttavia, dal momento che un'applicazione simile a un server FTP legge e scrive i file sul disco locale, qualsiasi utente malintenzionato con accesso al database di accesso avrà comunque accesso al disco locale. Quindi non credo che l'hash-cracking offline sia una minaccia credibile.
Questo lascia appena la bruteforce online, ma dato che sono fortunato ad avere una garanzia di password forti (GUID V4 a 128 bit), anche questo è davvero irrealizzabile.
Quindi penso che in questa situazione sia sicuro per me ridimensionare la sicurezza dell'hash in qualcosa di significativamente più debole (ad esempio SHA-1 single-round o anche ROT13).
La mia domanda è:
Ho dimenticato qualcosa? Questa analisi è sbagliata?