El nombre de usuario siempre se almacena como texto sin formato. Casi no hay ninguna ventaja con solo conocer la contraseña y muchas veces el nombre de usuario es público como su ID de correo electrónico.
La segunda parte es la contraseña, nunca la almacene como texto sin formato. Siempre debes hacer hash de la contraseña. La función hash es una función unidireccional. Obtiene el mismo hash de la misma contraseña cada vez, pero conociendo el hash, no puede adivinar la contraseña. Hash es la comida preparada, mientras que la contraseña es la receta. No importa cuántas veces cocines con una receta, siempre obtienes la misma comida. Pero, ¿puedes adivinar la receta exacta al probar la comida?
Hay una forma de adivinar la contraseña cifrada, que es la búsqueda de fuerza bruta. Intentan cada método hasta que se genera el mismo hash. También pueden usar una tabla hash precalculada llamada tabla Rainbow. Los hash se generan para contraseñas comunes y cuando obtienen hash, buscan el hash y obtienen la contraseña.
- Cómo usar Wireshark para detectar amenazas
- ¿Hay un keylogger en mi computadora?
- ¿Cómo funciona la teoría de criptografía y encriptación? ¿Cómo demostraría con conjuntos de datos de 8 bits?
- ¿Cómo podría crear un sitio web totalmente seguro protegido con contraseña?
- ¿Es posible obtener un virus incluso si ejecuta el complemento bloqueador de secuencias de comandos y Avast Antivirus? ¿Si es así, cómo?
Para superar el método de la tabla Rainbow, usamos Salt. Se genera una cadena aleatoria, agregada a su contraseña antes del hash. Dado que el atacante no conoce una secuencia aleatoria de antemano, no es posible calcular la tabla del arco iris. Además, si la sal es única para cada cuenta, la tabla hash puede no ser útil ya que el atacante debe forzar cada contraseña y su operación es muy costosa.
Tomemos un ejemplo. Estoy usando MD5, pero MD5 es un hash débil, puedes usar hashes más fuertes como SHA. Supongamos que la contraseña sea contraseña
1) MD5 (contraseña) = 5f4dcc3b5aa765d61d8327deb882cf99
2) MD5 (contraseña.salt1) = 05b604d36ceaeadd8c8fe358f112d98e
3) MD5 (contraseña.salt2) = 4e513a3fc7b203d970d750f125506416
Aunque la contraseña es la misma en los tres casos anteriores, debido a la sal, se genera un hash diferente. Nunca asuma que sus contraseñas son seguras solo porque es secreto, las mejores son aquellas en las que le da todo al atacante y, sin embargo, no pueden adivinar el original.
Personalmente no me gusta el hash ya la contraseña hash. Reduce el conjunto universal. Por ejemplo, MD5 tiene 16 caracteres posibles y la longitud es 32. Entonces, las combinaciones máximas son 16 ^ 32 = 3.4028237e38 Si usa sal de minúsculas, mayúsculas y números, obtendrá 62 caracteres y 62 ^ 22 = 2.7e39 combinaciones con solo 22 caracteres. . Eso incluye tu contraseña. Más si usa caracteres especiales en su contraseña / salt.