Durante mucho tiempo, las funciones hash han requerido un factor de trabajo para mantener la operación lo suficientemente lenta como para proteger contraseñas individuales en el caso de una fuga de base de datos. Bcrypt y PBKDF2 son ejemplos notables.
También soy consciente de lo que se dice de "No rodar por tu cuenta" cuando se trata de seguridad, pero es fácil imaginar una situación en la que, con el tiempo, el factor de trabajo del esquema de hashing de contraseñas se vuelve demasiado rápido debido al aumento de hardware. También se podría imaginar una situación en la que los propietarios de la base de datos actualicen su propio hardware y, por lo tanto, un factor de trabajo más alto sea adecuado en comparación con lo que se estaba utilizando antes de la actualización del hardware para garantizar una mejor seguridad por contraseña.
El problema viene con tener que "volver a cifrar" una contraseña, ya que no desea almacenar un texto sin formato o incluso una contraseña cifrada en una base de datos, por lo que el sistema no tiene forma de acceder a la contraseña nuevamente para volver a cambiarla. El factor trabajo. Para solucionar este problema, simplemente vuelva a aplicar el código cuando un usuario inicie sesión. Cuando el usuario inicie sesión con su contraseña de texto sin formato ya esté disponible para el sistema, en una verificación correcta de la contraseña, el sistema puede verificar el factor de trabajo anterior asociado con el hash de la contraseña (fácil de hacer en bcrypt) y si es menor que el factor de trabajo estándar seleccionado por los operadores del sistema, entonces la contraseña de texto sin formato se reinicia y se almacena con el nuevo factor de trabajo y la nueva sal. No es necesario restablecer las sesiones ya que se usa la misma contraseña que antes, solo un factor de trabajo y sal diferentes.
Aparte de que la contraseña de texto simple está en la memoria durante un tiempo más largo durante la verificación de la contraseña y un mayor tiempo para verificar la contraseña cada vez que se emite un aumento del factor de trabajo, no puedo encontrar ningún fallo en este modelo. ¿Hay algún fallo de seguridad que haya pasado por alto?