Si las contraseñas se almacenan en hash, ¿cómo sabría una computadora que su contraseña es similar a la última si intenta restablecerla? ¿No serían las dos contraseñas totalmente diferentes ya que una es hash y no se puede revertir?
11
Respuestas:
Una forma de implementar esto es si restablece la contraseña, por lo general también se le pide que ingrese su contraseña anterior. Simplemente puede usar una comparación de similitud de cadena regular en esa situación porque tiene ambas contraseñas en forma de texto sin formato en ese punto.
Otra forma de implementar esto es normalizar la contraseña, por ejemplo, los caracteres acentuados se normalizan a los alfabetos ingleses más cercanos, intentar transcribir el texto fonéticamente, eliminar números, etc., y calcular previamente varias versiones de los hashes que se generan a partir de la contraseña que había sido normalizado de diferentes maneras. Tenga en cuenta que esto debilita el mecanismo de hash en una cantidad no especificada. No lo consideraría una buena práctica de seguridad.
fuente
La respuesta simple es que un sistema seguro no sabe si son similares.
Pero algunos sistemas reducen intencionalmente la seguridad de una contraseña específica de alguna manera para evitar que las nuevas contraseñas sean viejas o similares. La compensación de costo beneficio es que se creará una nueva contraseña antes de que alguien descifre maléficamente la contraseña actual incluso con la información de similitud.
En general, cada una de estas técnicas reduce la seguridad de las contraseñas.
Mantener contraseñas antiguas reduce la seguridad de esas contraseñas. Si alguna de esas contraseñas se descifra, existe una alta probabilidad de que la contraseña actual sea similar a ellas, la mayoría de las personas solo cambian un número.
El enclavamiento del pulgar y las estadísticas pueden eliminar las suposiciones de contraseña incorrecta más rápidamente que intentar descifrar la suposición y comparar. Esto se debe a que los hash, particularmente los hash seguros, son complicados de calcular y requieren esfuerzo, incluso si el hardware se acelera. Si bien un cálculo más simple que dice 'definitivamente no' o 'tal vez' puede eliminar la mayoría de esas suposiciones, después de todas las comprobaciones de similitud están destinadas a evitar que use contraseñas similares, no el uso de una contraseña completamente nueva que no se parece en nada a la anterior.
En resumen, desconfíe de cualquier sitio que indique una medida de similitud con su contraseña actual / anterior. A menos que estén diciendo que la nueva contraseña es la contraseña anterior.
fuente
Usted genera múltiples contraseñas similares a la que ingresó el usuario y verifica si alguno de sus valores hash coincide con el de la contraseña anterior.
fuente
Otro patrón es que su sistema tiene algunos subconjuntos característicos de su contraseña y almacena esos hash para verificar si los subconjuntos de la nueva contraseña coinciden con alguno de los antiguos, es decir: contraseña: "Admin2018" y subconjunto: "Admin" = no puede ingresar "Admin2019" como uno nuevo.
fuente
Una forma sería almacenar las últimas cinco contraseñas hash en una tabla como 'Historial de contraseñas' y cuando el usuario esté tratando de establecer una nueva contraseña, descifrarla y compararla con las contraseñas hash de la tabla.
fuente