Soy nuevo en el tema y quería saber el concepto de comer hashes salados antes de pasar a los detalles técnicos.
Por lo que he entendido
- contraseña - texto sin formato
- contraseña de hash: la contraseña de texto simple se cifra mediante un algoritmo de hash que es irreversible (de una sola manera)
- contraseña de hash con sal: texto aleatorio + contraseña de texto sin formato / hash (sal + texto sin formato)
- una tabla de arco iris es una lista de resultados de hash precalculados de una lista de palabras del diccionario, al comparar las contraseñas de hash con la lista en la tabla de arco iris para una coincidencia, se revelará la contraseña real que está utilizando el usuario.
Por lo tanto, 2 de las mismas contraseñas de texto sin formato no tendrán el mismo valor hash debido al valor aleatorio de la sal.
La sal se almacena a veces con la contraseña de hash.
De lo anterior,
- Supongo que no hay intentos máximos de contraseña. ¿Cómo evitar que un salt evite que un usuario malintencionado intente forzar la contraseña en el sistema simplemente intentando una contraseña aleatoria (por ejemplo, en una lista de diccionarios)? Están utilizando el mismo mecanismo de inicio de sesión legítimo en comparación con el usuario real al solo intentar / ingresar una contraseña diferente por inicio de sesión.
- Si la sal previene un ataque de arco iris al agregar datos aleatorios al texto sin formato antes del hash MD5, el primer criterio es que el ataque de arco iris tenga una lista de hash (sal + contraseña) con la que comparar. Ahora, ¿el sistema ya no está comprometido cuando el usuario malintencionado tiene esa lista de contraseñas con hash?
- Si la contraseña de sal y el hash se almacenan juntos, ¿no lo haría ese usuario malintencionado (en lugar de usar una tabla de arco iris) simplemente volver a calcular su lista de texto del diccionario + la sal obtenida para obtener los resultados de hash y compararlos con el hash? ¿Contraseña en la lista recuperada?
Es solo que ahora la tabla de arco iris se construye en base a un solo valor de sal para una entrada de contraseña de hash particular. Para otra entrada de contraseña, tendrá que usarse otra tabla de arco iris precomputada basada en la sal asociada.
¿Está mal mi entendimiento? Entonces, ¿qué ayuda realmente la sal?