seegongsik
Seguridad

Cómo un hash protege una contraseña

Si pones fruta en una licuadora, sale zumo. Mirando solo el zumo, no puedes reconstruir con exactitud qué frutas había ni cuánto de cada una. Un hash de seguridad se parece. Le das un valor y sale una huella corta, pero no hay manera de calcular al revés el valor original a partir de la huella. Por eso los servicios no guardan tu contraseña tal cual: guardan solo esa huella.

01

Solo va en un sentido

Hay un tipo de cálculo que, le des el valor que le des, devuelve una huella corta de longitud fija. Se llama hash de seguridad. El mismo valor da siempre la misma huella, y si cambias un solo carácter de la entrada, la huella sale completamente distinta.
La propiedad más importante es la dirección. Hacer una huella a partir de una entrada es fácil, pero no hay forma de calcular la entrada original a partir de la huella. La fruta se convierte en zumo, pero el zumo no vuelve a ser fruta. Por eso se le llama función de un solo sentido.

entradapw-2026
→←
huella?
Convierte la entrada en una huella

Usa el botón de hacer huella para convertir la entrada en una huella. Luego pulsa revertir y verás que el camino está bloqueado.

El camino hacia delante se abrió enseguida, pero el de vuelta estaba bloqueado. Ese bloqueo es la clave de un hash de seguridad, porque con la huella sola no se puede averiguar el valor original.
El lugar donde más se usa esta propiedad son las contraseñas. Si se guardan tal cual, cualquiera que mire el almacén las conoce al instante. Por eso se hace de otra manera.

02

Guardar la huella en lugar de la contraseña

Guardar una contraseña letra por letra se llama guardarla en texto plano. Así, si alguien entra en el almacén o simplemente echa un vistazo, quedan expuestas las contraseñas de todos los usuarios. Como mucha gente usa la misma contraseña en varios sitios, el daño se extiende también a otros servicios.
Por eso la contraseña se pasa por el hash y solo se guarda la huella resultante. En el almacén quedan únicamente filas de huellas que no se pueden revertir.

contraseñasun-flower-7
→
lo que queda en el almacén...
Toca las dos formas para comparar

Pulsa los botones de guardar en texto plano y guardar la huella para compararlos. En texto plano la contraseña se ve tal cual; con la huella solo queda una huella que no se puede revertir.

En el lado de texto plano la contraseña se veía a la vista, y en el de la huella solo quedaba una huella ilegible. Aun así, tener la huella no es motivo para relajarse del todo. Un atacante no puede calcular la huella al revés, pero sí puede pasar contraseñas comunes por el hash una por una y ver si alguna da la misma huella.
Por eso los hashes para contraseñas se hacen lentos a propósito, para dificultar este tipo de pruebas. Pero si la contraseña no se guarda, ¿cómo se comprueba al iniciar sesión?

03

Verificar convirtiendo la entrada en huella

Se aprovecha que el mismo valor da siempre la misma huella. Cuando un usuario escribe su contraseña al iniciar sesión, el servidor pasa esa entrada otra vez por el hash, obtiene una huella nueva y la compara con la guardada.
Si coinciden, se escribió la misma contraseña y el usuario pasa; si no, queda bloqueado. Se comprueba comparando solo huellas, sin necesidad de ver la contraseña original.

elige una entrada
huella guardadaa7-c2-90
?
huella de la entrada?
Elige una entrada y toca verificar

Elige una entrada y pulsa verificar. Si la huella de la entrada coincide con la guardada, pasas; si no, quedas bloqueado.

Solo la contraseña correcta dio la misma huella y pasó. Una contraseña que se diferenciaba en un solo dígito produjo una huella completamente distinta y quedó bloqueada. Guardar solo la huella y verificar comparando huellas: así se distingue lo correcto de lo incorrecto sin el original.
Los hashes también se usan fuera de las contraseñas. Si comparas la huella de un archivo descargado con la huella publicada, sabes si el archivo cambió por el camino. Es un medio para proteger la integridad, que vimos en la lección anterior.

04

Un propósito distinto del hash del área de Datos

La palabra hash ya apareció en el área de Datos. Allí convertía un valor en un número de casilla para encontrar rápido el dato buscado. El objetivo era repartir los lugares de forma rápida y uniforme, y no pasaba gran cosa si de vez en cuando dos valores caían en la misma casilla.
Un hash de seguridad puede parecerse, pero su propósito es otro. Debe ser imposible volver de la huella al valor original, y también en la práctica imposible encontrar dos entradas distintas que den la misma huella.

Toca cada lado para comparar los propósitos

Toca cada lado para comparar el propósito de los dos hashes. El hash del área de Datos sirve para encontrar rápido; el hash de seguridad, para que no se pueda revertir.

Los dos se llaman hash, pero el área de Datos lo usa para encontrar rápido y la seguridad lo usa para que no se pueda revertir. El propósito decide qué propiedades necesita la herramienta.

Así, incluso herramientas con el mismo nombre necesitan propiedades distintas según dónde se usen. En seguridad, que no se pueda revertir es la propiedad más valiosa. Repasemos ahora todo de principio a fin.

05

Resumen

En resumen, un hash de seguridad convierte una entrada en una huella de un solo sentido, y no hay vuelta de la huella a la entrada. Por eso se guarda solo la huella, no la contraseña. Al iniciar sesión, la entrada se vuelve a convertir en huella y se compara con la guardada; si coinciden, el usuario pasa.
A diferencia del hash del área de Datos, que sirve para encontrar rápido, este hash sirve para que no se pueda revertir.

Toca los cuatro puntos clave en orden
Toca los puntos de abajo en orden desde arriba

Toca los puntos clave en orden para repasar. (huella de un solo sentido → guardar solo la huella → verificar con la huella de la entrada → un propósito distinto del hash del área de Datos)

Ahora sabes cómo proteger una contraseña sin guardarla tal cual. Una sola huella imposible de revertir hace seguros tanto el almacenamiento como la comprobación. Como nadie tiene el original, hay menos secretos que puedan filtrarse.
Queda, eso sí, una debilidad. La misma contraseña da siempre la misma huella, así que dos personas con la misma contraseña tienen la misma huella, y los atacantes pueden preparar de antemano listas de huellas de contraseñas comunes. La próxima lección trata de la sal, que cierra ese hueco.

En una líneaUn hash de seguridad convierte una entrada en una huella en un solo sentido. Hacer la huella a partir de la entrada es fácil, pero la entrada no se puede calcular a partir de la huella. Por eso las contraseñas no se guardan tal cual, sino solo sus huellas. Aunque alguien entre en el almacén, solo hay huellas, así que las contraseñas no quedan expuestas de inmediato. Al iniciar sesión, el valor escrito se convierte otra vez en huella y se compara con la guardada; si coinciden, el usuario pasa. Funciona porque la misma entrada da siempre la misma huella. Mientras que el hash del área de Datos sirve para encontrar rápido, el hash de seguridad sirve para que no se pueda revertir. Aun así siguen existiendo los ataques que prueban contraseñas comunes una a una, y por eso los hashes de contraseñas se hacen lentos a propósito.
← Seguridad
¿Te fue útil? Apoyar seegongsik