Actualmente estamos trabajando en la autenticación de una aplicación web. Para el almacenamiento de contraseñas, estamos usando Jasypt StrongPasswordEncryptor con SHA-256 y decenas de miles de iteraciones. Al entrar en el proyecto, esperaba implementar PBKDF2-HMAC-SHA512 (no creo que pueda obtener tracción en un conmutador a bcrypt o scrypt).
El Jasypt StrongPasswordEncryptor simplemente vuelve a hacer hash al pasado, sin embargo, muchas veces especificado usando SHA-256 (u otro algoritmo elegido), en lugar de las iteraciones HMAC en PBKDF2. Entiendo que el beneficio de seguridad de PBKDF2 es su velocidad lenta, mientras que SHA es rápido. Sin embargo, dado que PBKDF2 simplemente reitera HMAC-SHA (o alguna otra función), es difícil mostrar una mejora con respecto al método actual.
Si la mejora de seguridad del cambio es mínima, es poco probable que se realice. Si hay una mejora de seguridad sustancial, todavía es lo suficientemente temprano en el proyecto como para realizarlo.
¿Qué tiene HMAC-SHA que lo hace mejor / más lento que un SHA normal?
¿Qué tipo de información puedo aportar a una solicitud de cambio? ¿Cuánta mejora habrá?
¿Es necesario el cambio?