Supongamos que hay una base de datos que contiene nombres y que cada uno de ellos tiene un hash y se borra el texto simple.
Si un atacante robara esta base de datos, ¿podría él / ella obtener la lista de nombres?
Supongamos que hay una base de datos que contiene nombres y que cada uno de ellos tiene un hash y se borra el texto simple.
Si un atacante robara esta base de datos, ¿podría él / ella obtener la lista de nombres?
Una función hash es unidireccional en el siguiente sentido: dada la salida, el método más rápido para encontrar una entrada coincidente es probar las posibles entradas hasta que se encuentre una coincidencia. No puedes obtener más de un solo sentido que eso. Sin embargo, esto no significa que el hash de nombres y la esperanza de una coincidencia no funcionen; de hecho, los nombres de las personas no son lo suficientemente depresivos, es fácil enumerarlos y hacerlos todos. Dado que una función hash es pública (sin elementos secretos) y determinista (si hash dos veces los mismos datos, obtienes el doble de la misma salida), la fuerza bruta en los nombres funcionará. Una PC con una GPU de tamaño mediano puede codificar miles de millones de cadenas por segundo.
El mismo problema ocurre con contraseñas , que están limitadas por la imaginación promedio de los usuarios humanos. Cuando tengamos las contraseñas, debemos hacerlo con cuidado . Lo mismo se aplicaría a nombres , posiblemente incluso más.
trivialmente.
Los nombres no tienen suficiente entropía y, como dijo Thomas Pornin, una GPU es lo suficientemente rápida como para permitirle que avance bruscamente a través de miles de millones de nombres hasta que encuentre los hashes correspondientes con relativa rapidez.
Si la base de datos tiene otros campos más largos que tienen mucha entropía en ellos, concatenándolos juntos y agregando la suma que con los nombres aumentará la entropía; cuanto más larga sea la probabilidad de que alcances una longitud lo suficientemente larga como para que un atacante tenga que ir a distancias razonables para obtener coincidencias, siempre y cuando utilices un algoritmo de hashing suficientemente fuerte.
Lo que mi último párrafo explica es esencialmente salado.
Es probable que el atacante tenga las sales; esto en sí mismo dificulta las cosas para los ataques estilo tablas arco iris, pero no significa que el atacante no pueda seguir formando cadenas en la sal, especialmente al hacer nombres comunes primero, es probable que no tengan que probar demasiados.
Este artículo es bastante excelente: enlace
Lea otras preguntas en las etiquetas hash cryptography