¿Cómo autenticar una contraseña con sal?

9

Si solo se almacena el hash de contraseña y el usuario ingresa la contraseña original, ¿cómo sabe el programa que es correcto? Supongo que podría comprobar todas las sales posibles, pero si hay sales de 32 bits, el programa tiene que verificar todas las sales 2 ^ 32 (en el peor de los casos), lo que parece que llevaría mucho tiempo.

    
pregunta Charles 16.12.2012 - 19:36
fuente

3 respuestas

24

La respuesta es simple; La sal se almacena junto con el hash de contraseña. Un esquema de base de datos típico se vería como:

uid  | username    | password         | password_salt
-----|-------------|------------------|--------------
0    | alice       | 862a6c81b7f8361b | 71e9c02731

La sal no es un secreto. Está ahí para hacer más difíciles ciertos tipos de ataques de órdenes de magnitud.

Esta respuesta debe contener todo lo que necesita saber.

Si no, esta respuesta tiene aún más información sobre los entresijos de la salazón.

    
respondido por el lynks 16.12.2012 - 20:07
fuente
1

Como se ha mencionado, la sal se almacena junto con el hash. La sal está destinada principalmente a proteger tus hashes contra los ataques de la mesa del arco iris. En otras palabras, los ataques de fuerza bruta no se pueden ejecutar antes de tiempo

    
respondido por el Aurand 17.12.2012 - 05:45
fuente
0

Como señalaron los lynks, la sal se almacena con el hash. El objetivo de las sales es hacerlo para que alguien no pueda atacar la base de datos en conjunto buscando una contraseña que coincida con el hash de cualquier usuario.

Por ejemplo, digamos que tenía la tabla de usuarios para el sitio web realmente grande A y que tenían 100 millones de usuarios. Si estuvieran usando un hash de 32 bits (que de todas formas no es seguro) y cada usuario tenía una contraseña que se resolvía en un hash diferente, entonces solo tendría que probar unas 43 contraseñas antes de encontrar una que coincida con algún usuario. Sin embargo, si se usa una sal diferente para cada una, entonces debo atacar cada contraseña individualmente.

    
respondido por el AJ Henderson 17.12.2012 - 00:30
fuente

Lea otras preguntas en las etiquetas