Ir al contenido principal

¿Qué es el hash de contraseñas?

  |  W. Perry Wortman

Hace unos años, gigantes tecnológicos como Facebook y Google aparecieron ocuparon titulares de seguridad de datos al confesar que almacenaban contraseñas en texto sin formato. Como resultado, cualquiera que tenga acceso a su base de datos puede ver fácilmente esas contraseñas de texto sin formato, lo que pone en riesgo la información confidencial.

Muchas empresas usan el hash de contraseñas para almacenar contraseñas de forma segura, lo que termina con estas preocupaciones y aumenta la seguridad. En esta publicación del blog explicaremos qué es el hash de contraseñas, cómo los desarrolladores hacen hash de contraseñas, los algoritmos que usan y las limitaciones del proceso.

¿Desea obtener más información sobre el uso del administrador de contraseñas de Dashlane en casa o en el trabajo?

Consulte nuestros planes de administrador de contraseñas personales o comience con una prueba gratis de business.

¿Qué es el hash de contraseñas?

El hash de contraseñas implica convertir las contraseñas en una cadena alfanumérica usando algoritmos especializados. 

Su nombre de usuario y contraseña a menudo se someten al hash cuando registra una nueva cuenta en un sitio web o en una aplicación. En vez de almacenar la contraseña como texto sin formato, un algoritmo matemático convierte su contraseña en un código único.

Representación gráfica del hash de contraseñas. A la izquierda, se muestra la contraseña del usuario. En el medio, se muestra la función hash de Argon2. A la derecha, la contraseña del usuario se ha convertido en un código único.

¿En qué se diferencia el hash de la encriptación?

A primera vista, el hash de contraseñas y la encriptación pueden parecer bastante similares. En ambos casos, la información se transforma en un código complejo para mantenerla a salvo de los piratas informáticos. Pero existen algunas diferencias importantes entre los dos.

La encriptación es una vía de doble sentido

La encriptación de las contraseñas crea una cadena alfanumérica aleatoria, pero tiene trampa. La encriptación es una función bidireccional que permite descifrar o decodificar valores encriptados de nuevo en su forma de texto sin formato original.

La encriptación es reversible, lo que significa que la clave de encriptación puede descifrar las contraseñas de nuevo y pasarlas a texto sin formato. Por lo tanto, si los piratas informáticos violan su base de datos o si un empleado malintencionado que tenga acceso privilegiado se hace con las claves, sus contraseñas encriptadas se volverán vulnerables. 

El hash no es reversible

El hash de contraseñas es una función unidireccional. No puede realizar ingeniería inversa del proceso y recuperar o rastrear la contraseña original a partir de su formato sin hash. 

El hash es irreversible y garantiza que incluso si alguien accede a las contraseñas con hash, no podrá descifrarlas de nuevo a su forma original.

La protección de datos frente a la verificación de la integración de datos

La encriptación desempeña un papel crucial en la protección de datos. Convierte los datos en un formato ilegible usando una clave de encriptación, lo que garantiza que solo las personas autorizadas que tengan la clave correspondiente puedan descifrar los datos y acceder a ellos. 

El hash se usa principalmente en la verificación de la integridad de datos. La contraseña con hash actúa como una huella dactilar digital única para los datos, lo que permite verificar la integridad de los mismos. Cualquier modificación o manipulación se puede detectar comparando el valor hash de los datos recibidos con el valor hash generado inicialmente.

¿Cómo funciona el hash de contraseñas?

Cuando un usuario establece una contraseña, una aplicación de hash de contraseñas usa un algoritmo de hash para generar una cadena única de caracteres y almacenarla en la base de datos. El tamaño de esta cadena se mide en «bits» (abreviatura de dígitos binarios), que es la unidad de datos más pequeña que un ordenador puede procesar y almacenar. 

Cuando el usuario intenta ingresar, l aplicación aplica el mismo algoritmo de hash a la contraseña introducida y compara la cadena resultante con el valor almacenado en la base de datos para autenticar al usuario.

Analicemos el tema con un ejemplo. 

Si establece la contraseña «hAsh! nGisC00L» y la somete a un algoritmo de hash MD5, producirá el hash «5d640ca634edfaa17813cab1492208f2», que no se parece en nada a la contraseña original.

El más mínimo cambio en la contraseña también alterará completamente la contraseña con hash. Por ejemplo, si cambia «!» por una «i» y vuelve a ejecutar la contraseña modificada a través de la aplicación de hash, podría producir el hash «1c70088b4b9c650d49fd3ee04349dfb9», que es completamente diferente del primer valor hash. 

¿Qué es salar una contraseña o salar un hash?

Dado que los ciberdelincuentes son cada vez más creativos con las herramientas avanzadas, el hash por sí solo no basta para mantener sus contraseñas seguras. Puede «salar» sus contraseñas antes de realizarles el hash para mejorar la protección.

Aunque puede sonar como una receta para los hash browns (patatas doradas en inglés), «salar un hash» en criptografía se refiere a agregar una cadena aleatoria y única de caracteres a la contraseña original antes de que se haga el hash. Estas cadenas adicionales añadids a la contraseña original, conocidas como sales, ayudan a mejorar la complejidad de la contraseña sin quitarle comodidad al usuario.

Representación gráfica de la salazón de una contraseña. A la izquierda, la contraseña del usuario se muestra como «Dash» y luego como «Dashx6Rf2» después de agregar la sal. A continuación, el algoritmo de hash transforma la contraseña salada en un código único.

La salazón no solo mejora la complejidad de los hash de contraseñas, sino que también aborda el problema de las contraseñas duplicadas. Usar sales únicas para cada contraseña garantiza que incluso si dos usuarios tienen contraseñas idénticas, sus versiones hash diferirán por las sales únicas. Esta práctica hace que a los atacantes les resulte más difícil descifrar varias contraseñas simultáneamente. 

Algoritmos hash habituales

Como se indica anteriormente, el método del hash de contraseñas se logra con la ayuda de algoritmos matemáticos. Algunos de los algoritmos hash más habituales son:

Argon2

Argon2 es una función hash avanzada y segura que se utiliza en la criptografía y el hash de contraseñas. Está diseñada a prueba de diferentes ataques y ofrece una protección sólida para almacenar contraseñas de forma segura. Al aprovechar una combinación de memoria y potencia de procesamiento, Argon2 hace que a los atacantes les resulte significativamente más difícil descifrar las contraseñas hash. Desde su victoria en la Competición de hash de contraseñas en julio de 2015, Argon2 se ha establecido como un algoritmo de primera categoría en cuanto a la encriptación de contraseñas, que ofrece una gran seguridad para los datos almacenados.

MD5

Creado por Ronald Rivest en 1991, Message-digest Method 5 o MD5 es uno de los primeros algoritmos hash que produce un valor hash de 128 bits a partir de una cadena de cualquier longitud. 

Aunque en su momento fue lo más seguro, el algoritmo ahora se considera inseguro para el hash de contraseñas debido a su vulnerabilidad frente a los ataques de colisión (cuando los piratas informáticos fija como objetivos las entradas que producen valores hash idénticos). Los piratas informáticos ahora tienen acceso a máquinas con velocidad de cálculo rápida, lo que les permite generar y probar rápidamente muchas entradas potenciales y adivinar el valor hash idéntico correcto.       

SHA (1 y 2)

Algoritmo de control seguro (SHA, por sus siglas en inglés); SHA-1 y SHA-2 son versiones diferentes del mismo algoritmo. Varían principalmente en su fabricación y en la longitud del hash resultante. SHA-1 produce un valor hash de 160 bits y ya no se recomienda para el almacenamiento de contraseñas seguro porque es propenso a sufrir ataques de colisión.

SHA-2, por otro lado, es una familia de algoritmos hash, que incluye SHA-256 y SHA-512, que producen valores hash de 256 bits y 512 bits, respectivamente. SHA-2 es más seguro que SHA-1 e incluso se usa de manera de forma habitual para varios fines criptográficos diferentes del hash de contraseñas. Por ejemplo, Bitcoin usa el algoritmo hash SHA-256

Scrypt

Scrypt es un algoritmo especial que crea contraseñas hash que requieren mucha memoria, lo que lo hace más resistente frente a los ataques de fuerza bruta. Se desarrolló específicamente para mitigar los riesgos que plantean los avances del hardware en el crack de contraseñas. 

Se necesita una cantidad importante de memoria para descifrar los hashes que requieren mucha memoria. Esto complica a los atacantes realizar tareas de forma simultánea en varios procesadores, lo que incrementa el coste y el tiempo que se necesitan para descifrar las contraseñas. Como resultado, a menudo se usa para el hash de contraseñas en casos que requieren una mayor seguridad.

Whirlpool

Diseñada en 2000, Whirlpool es una función hash criptográfica que produce un valor hash de 512 bits. Emplea una estructura interna compleja con varias rondas de operaciones de mezcla, lo que la hace a nivel informático exhaustiva y adecuada para aplicaciones que requieren mucha seguridad. Además, como Whirlpool ofrece un tamaño hash mayor que otros algoritmos, ofrece un espacio de salida mayor que reduce la probabilidad de colisiones.

RIPEMD

RIPEMD (RACE Integrity Primitives Evaluation Message Digest) es una familia de algoritmos hash diseñados para ofrecer mayor seguridad y resistencia frente a posibles ataques. Produce valores hash de diferentes longitudes de bits, con RIPEMD-160 generando un valor hash de 160 bits. Además, emplea una función de compresión que toma una entrada de cualquier longitud aleatoria y produce un hash de tamaño fijo, lo que mejora la seguridad del algoritmo. 

Limitaciones del hash de contraseñas

A pesar de la sólida protección del hash de contraseñas, es un proceso que requiere mucha memoria. Y no resulta del todo imposible descifrar los hash de contraseñas.

Algunos de los inconvenientes que presenta el hash de contraseñas son:

Degradación de las bases de datos

El hash de contraseñas puede afectar negativamente al rendimiento de las operaciones de bases de datos. Como el proceso hash puede ser intensivo desde el punto de vista informático, puede ralentizar el rendimiento general de la base de datos, especialmente cuando hay muchas contraseñas a las que aplicar el hash y verificar. Si no se implementan técnicas de optimización adecuadas y consideraciones de hardware, tal impacto puede degradar las bases de datos. 

Los algoritmos hash rápidos pueden piratearse

Algunos algoritmos hash rápidos, como MD5 o SHA-1, pueden ser vulnerables frente a los ataques de diccionario y las tablas arcoíris.

  • Ataques de diccionario: en un ataque de diccionario, un atacante usa una lista precalculada de contraseñas hash (contraseñas o palabras del diccionario de uso común) y las compara con las contraseñas hash de la base de datos para encontrar coincidencias.
  • Ataques de tablas arcoíris: Las tablas arcoíris son tablas de búsqueda precalculadas que contienen muchas contraseñas posibles y sus valores hash correspondientes. Los piratas informáticos usan estas tablas para descifrar rápidamente las contraseñas comparando los valores hash de las contraseñas robadas o encriptadas con las entradas de la tabla. Las tablas arcoíris ayudan a los piratas informáticos a encontrar las contraseñas originales de texto sin formato sin tener que hacer los cálculos habituales que llevan mucho tiempo. Al usar tablas arcoíris, los atacantes pueden acelerar el proceso de recuperación de contraseñas y aplicar las medidas de seguridad estándar.

Colisiones hash

Las colisiones hash tienen lugar cuando dos entradas diferentes producen la misma salida hash. Aunque son poco habituales, las colisiones hash plantean un riesgo de seguridad, ya que un atacante podría crear deliberadamente una contraseña diferente que genere el mismo hash que la contraseña original, lo que le permitiría obtener acceso no autorizado.

Los algoritmos hash modernos, como SHA-2 o Argon2, están diseñados para tener una probabilidad de colisión significativamente menor, lo que los convierte en opciones más seguras para el hash de contraseñas. 

Dashlane usa el estándar de encriptación más seguro 

Representación de las aplicaciones de Dashlane en todos los tipos de dispositivos («smartphone», ordenador de sobremesa, portátil y tableta).

Dashlane emplea el algoritmo seguro Argon2 para generar una clave de 256 bits del Estándar de encriptación avanzado (AES, por sus siglas en inglés) reconocido como el estándar de encriptación más seguro del mundo. Esta clave, derivada de su contraseña maestra, encripta y desencripta sus datos personales localmente en su dispositivo antes de enviarlos a y desde nuestros servidores. Eso significa que su clave de encriptación nunca se envía a través de Internet, lo que garantiza que, en el improbable caso de que alguien intercepte datos, la encriptación proteja su información de ser descifrada por personas no autorizadas.

Argon2 es solo una pieza del rompecabezas. Descubra las múltiples capas de protección de datos que Dashlane emplea para priorizar su seguridad por encima de todo.


Referencias

  1. Authgear, «Explicación del hash y la salazón de la contraseña», noviembre de 2022.
  2. PCMag, «Facebook almacenó hasta 600 millones de contraseñas de usuarios en texto sin formato», marzo de 2019.
  3. Wired, «Google ha almacenado contraseñas en texto sin formato desde 2005», mayo de 2019.
  4. Dashlane, «¿Qué es el cifrado?» marzo de 2019.
  5. Wikipedia, «Argon2».
  6. Hash de contraseñas, «Competición de hash de contraseñas», abril de 2019.
  7. Wikipedia, «MD5».
  8. Wikipedia, «Algoritmos hash seguros».
  9. Bit2me Academy, «¿Cómo funciona SHA-256?» julio de 2018.
  10. Wikipedia, «scrypt».
  11. Wikipedia, «Whirlpool (función hash)».
  12. Wikipedia, «RIPEMD».
  13. Simplilearn, «Algoritmo de resumen de mensajes 5: descripción general y cómo funciona». febrero de 2023.
  14. Auth0, «Agregar sal al hashing: una mejor forma de almacenar contraseñas», febrero de 2021.
  15. Okta, «Descripción general del algoritmo de hashing: tipos, metodologías y uso», febrero de 2023. 
  16. Dashlane, «Hacer de la seguridad una prioridad: cómo Dashlane protege sus datos», enero de 2023.
  17. Dashlane, “¿Qué es una buena contraseña?” “5 consejos para aumentar la fortaleza de la contraseña“, noviembre de 2022.
  18. Dashlane, «Generador de contraseñas de Dashlane».
  19. Dashlane, «Hacer de la seguridad una prioridad: cómo Dashlane protege sus datos», enero de 2023.
  20. CSO, «¿Qué es un ataque de diccionario? Y cómo puede detenerlos fácilmente», agosto de 2020.
  21. Beyond Identity, «Ataque de tabla de arcoíris». 

Regístrese para recibir noticias y actualizaciones acerca de Dashlane