Desarrollé una aplicación que es similar en concepto a un servidor FTP. Hay varios cientos de cuentas de usuario y usa bcrypt para almacenar contraseñas con hash.
Todas las contraseñas de usuario son GUID v4 de 128 bits generados aleatoriamente.
Una característica de mi aplicación causa muchos inicios de sesión simultáneos. Cuando esto sucede, bcrypt domina los perfiles de rendimiento y degrada la experiencia del usuario. Quiero reducir la carga de la CPU al reemplazar bcrypt con una función hash con menos uso de la CPU.
Las aplicaciones web utilizan bcrypt para las contraseñas en lugar de hashes mucho más débiles (por ejemplo, SHA-1 de una sola ronda, o incluso ROT13), de modo que el craqueo fuera de línea es repentinamente no trivial.
Pero, dado que una aplicación similar a un servidor FTP simplemente lee / escribe archivos en el disco local, cualquier atacante con acceso a la base de datos de inicio de sesión tendrá acceso a este disco local de todos modos. Así que no creo que el hash cracking fuera de línea sea una amenaza creíble.
Eso solo deja la fuerza bruta en línea, pero como tengo la suerte de tener una garantía de contraseñas seguras (GUID de v4 de 128 bits), eso también es realmente imposible.
Por lo tanto, creo que en esta situación es seguro para mí degradar la seguridad hash a algo significativamente más débil (por ejemplo, SHA-1 de una sola ronda, o incluso ROT13).
Mi pregunta es:
¿He olvidado algo? ¿Este análisis es incorrecto?