¿Por qué no usar el nombre de usuario como contraseña salt? [duplicar]

1

El punto de poner sal en los hashes de tu contraseña es evitar que el atacante use una tabla de arco iris lista para usar. La sal debe ser única por usuario, pero no necesita ser secreta.

¿Por qué no usar el nombre de usuario / ID de usuario como un salt en lugar de mirar un valor separado en la base de datos? ¿Hay alguna razón por la que necesitaría cambiar la sal de un usuario en el futuro?

[Ya habría esperado encontrar una pregunta como esta, pero no lo hice. Tampoco miré muy duro]

    
pregunta Mike Ounsworth 01.02.2017 - 00:24
fuente

1 respuesta

3
  • El hecho de que el salt sea una función determinista del nombre de usuario hace que sea probable que los usuarios que usan el mismo nombre de usuario y contraseña en dos sitios diferentes terminen con el mismo hash de contraseña en ambos. Los atacantes que observan esta coincidencia podrían entonces concentrar sus esfuerzos en descifrar esas entradas de contraseña, por lo que podría estar exponiendo a sus usuarios a un mayor riesgo. (En principio, esto podría mitigarse incorporando algunos datos específicos del sitio a la sal).
  • Cuando el usuario cambie su contraseña, se enviará de forma idéntica a la anterior. Los crackers pueden atacar esas dos entradas de contraseña con el mismo esfuerzo que solo una.
  • Realmente no le gana nada en comparación con el simple expediente de seleccionar un salt aleatorio cada vez que almacena una nueva contraseña. Esto es simple y óptimo , porque las sales aleatorias no solo son altamente probables de ser únicas en su base de datos, sino que también son en todas las bases de datos de contraseñas que se hayan mantenido . ¿Por qué desviarse de una estrategia que es tanto simple como óptima?
respondido por el Luis Casillas 01.02.2017 - 00:37
fuente

Lea otras preguntas en las etiquetas