Mastodon Mastodon Mastodon Mastodon

Hash

Actualizado: · CyberSecureFox Editorial Team

Un hash es un valor de longitud fija que una función hash unidireccional calcula a partir de unos datos: la misma entrada siempre produce el mismo hash y no es posible recuperar los datos originales a partir de él.

Cómo funcionan las funciones hash

Una función hash criptográfica recibe datos de cualquier tamaño —una contraseña, un archivo, una imagen de disco completa— y produce una «huella» corta, por ejemplo un valor de 256 bits con SHA-256. Una buena función cumple tres propiedades: no se puede invertir, dos entradas distintas prácticamente nunca dan el mismo hash (resistencia a colisiones) y cambiar un solo bit de la entrada cambia por completo el resultado.

MD5 y SHA-1 se consideran rotos: los investigadores lograron colisiones prácticas, entre ellas el ataque SHAttered contra SHA-1 en 2017. Hoy lo habitual es usar SHA-256, SHA-3 o BLAKE2.

Dónde se usan los hashes

  • Comprobación de integridad: comparar un archivo descargado con el hash publicado por el fabricante o verificar actualizaciones.
  • Detección de amenazas: los hashes de archivos son un indicador de compromiso clásico en los informes de amenazas.
  • Almacenamiento de contraseñas: los servicios no guardan la contraseña, sino su hash con una sal aleatoria.
  • Firmas digitales y blockchain: lo que se firma o se encadena son hashes, no los datos en bruto.

Ataques contra hashes

El hash no es cifrado, pero los hashes de contraseñas débiles se pueden «crackear»: quien roba una base de datos lanza ataques de fuerza bruta y de diccionario en GPU con herramientas como hashcat o usa tablas arcoíris precalculadas. En redes Windows, los ataques pass-the-hash reutilizan directamente los hashes NTLM sin conocer la contraseña.

Buenas prácticas

Para contraseñas, usar algoritmos deliberadamente lentos y con sal —Argon2, bcrypt o scrypt— y nunca MD5 ni SHA-1 sin más. Para comprobar la integridad, SHA-256 o superior.

Sinónimos:
función hash, función de hash, valor hash