¿Qué es el hashing de contraseñas?

Cybersecurity Content Writer

Los últimos años no han sido demasiado buenos para la seguridad de la información. Las filtraciones de datos parecen copar los titulares cada pocos días. Así que, no es de extrañar que aparezcan informes sobre graves debilidades de seguridad en algunas de las mayores empresas tecnológicas cada pocas semanas.

En 2019, dos gigantes de la tecnología admitieron graves defectos de seguridad en sus sistemas. Facebook admitió almacenar las contraseñas de millones de usuarios de Instagram en texto sin formato. Unos meses más tarde, Google reveló el mismo problema relacionado con los usuarios de G Suite. ¿Pero por qué es tan grave mantener las contraseñas como texto sin formato? ¿Y cómo deberían almacenarse?

Si las contraseñas se guardan en texto sin formato, cualquiera que tenga acceso interno puede verlas. Por no mencionar que si hay una violación de la base de datos, los piratas también podrían ver las credenciales a simple vista. Por eso, cualquier empresa que siga, al menos, las prácticas de seguridad más básicas, nunca guardaría las contraseñas en texto sin formato.

Por el contrario, las contraseñas se convierten en una complicada cadena de caracteres mediante algoritmos de codificación (hash) de contraseñas. Luego, cuando inicias sesión en tu cuenta, la contraseña codificada se compara con otros códigos de la base de datos de la empresa. Si la codificación de contraseña coincide, se te concede acceso a tu cuenta.

Pero ¿cómo funciona exactamente el hashing? Hashing es una función de un sentido que altera los datos. Toma texto legible y lo convierte en una serie de caracteres totalmente distintos de la longitud establecida.

Sin embargo, al contrario que otros algoritmos de encriptación que transforman los datos, el hashing es casi imposible de revertir. Si los hackers se hacen con una base de datos de contraseñas hashed, la decodificación es inútil. Sin embargo, existen otras formas a disposición de los cibercriminales para descubrir la contraseña original.

Descifrando el Hash

El mayor problema con la codificación de contraseñas es que si se pasa una palabra específica, como «verde» a través de un algoritmo de codificación, el resultado codificado para esa palabra siempre será el mismo. O sea, digamos que los cibercriminales consiguen hacerse con una base de datos de contraseñas codificadas. Nadie les impide adivinar millones de contraseñas y pasarlas por el mismo algoritmo para ver cuál es el código para una palabra específica.

En la actualidad, los piratas ya no confiarán en los ataques por fuerza bruta poco sofisticados. Ahora han aumentado el nivel de sofisticación en su enfoque y emplean una estrategia más sigilosa y taimada, conocida como «ataque de diccionario». En lugar de intentar adivinar la contraseña aleatoriamente, utilizan combinaciones predecibles y palabras de uso frecuente, como «contraseña123» para decodificar las contraseñas.

Algunos piratas han subido el nivel y utilizan una técnica llamada «tablas Rainbow». En esencia estas son tablas precalculadas de valores codificados para las contraseñas y combinaciones más utilizadas, con lo que les es más fácil descifrar rápidamente hasta los códigos más complejos de contraseñas. Es como si tuviesen una llave secreta y no les costase utilizarla.

Codificación fuerte vs. codificación débil

Por esta razón hay varios tipos de codificación. Por ejemplo, los algoritmos de codificación como SHA-1 y MD5 se consideran, en general, anticuados y sencillos de descifrar. Los algoritmos más modernos, como bcrypt y SHA2 son más seguros, pero siguen siendo vulnerables a ciertos tipos de ataques. En la actualidad, el algoritmo recomendado para la codificación de contraseñas es Argon2id, que está diseñado para consumir mucha memoria y ser computacionalmente costosos, lo que hace que sea resistente a los tipos más comunes de ataques por fuerza bruta. Argoin2id puede codificar la contraseña unas cuantas veces. Sin embargo, debido a la complejidad de sus operaciones, Argoin2id se considera más seguro que el algoritmo PBKDF2, que ejecuta miles o incluso millones de iteraciones de codificación sencillas. Por eso NordPass utiliza Argoin2id para codificar las credenciales cuando se inicia sesión, porque es uno de los algoritmos de codificación más seguros que hay.

Para hacer que el proceso de codificación sea aún más seguro, hay aderezos, o más concretamente «sales» y «pimientas». Las «sales» son cadenas de caracteres que se generan y añaden a la contraseña antes de codificarla. El objetivo de la sal es complicar aún más el proceso de codificación, lo que, por extensión, hace que sea aún más difícil para los atacantes utilizar las «tablas Rainbow» o bases de datos de códigos precalculadas para descifrar contraseñas. En la mayoría de los casos, las «sales» se almacenan en una base de datos junto a la contraseña codificada.

De una forma similar, la «pimienta» es un valor secreto que se añade a la contraseña antes del proceso de codificación. Sin embargo, al contrario que la «sal», la «pimienta» suele estar codificada por hardware en el sistema que realiza la codificación de las contraseñas, lo que dificulta más que los potenciales atacantes descifren la contraseña.

Limitaciones de las funciones Hash

Existen ciertas limitaciones para las funciones de codificación, como las colisiones hash. Ocurre cuando dos entradas diferentes tienen la misma salida codificada. Sin embargo, la probabilidad de una colisión en la mayoría de algoritmos es increíblemente baja, especialmente en las funciones moderna, así que no debería ser un gran problema.

En resumen

En conclusión, no siempre es posible saber cómo de fuerte es la función que utiliza su proveedor de servicios, así que asegúrese siempre de utilizar contraseñas fuertes. Puede generar una contraseña segura con el generador de contraseñas de NordPass. Sin embargo, como muestran los casos de Google y Facebook, en ocasiones las credenciales pueden quedar al descubierto en texto sin formato, así que nunca utilice contraseñas duplicadas. Comprendemos que recordar todas esas contraseñas es casi imposible, pero siempre puede usar el administrador de contraseñas de NordPass.

Suscríbete a las noticias de NordPass

Recibe las últimas noticias y consejos de NordPass directamente en tu bandeja de entrada.