viernes, 18 de noviembre de 2016

¿Qué es la función hash?

Una función criptográfica hash (usualmente conocida como “hash”) es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el valor hash de salida tendrá siempre la misma longitud.

Según un generador online de hash SHA-1, (SHA-1 es una de las funciones hash más ampliamente utilizadas en la informática, junto con MD 5 y SHA-2) el hash para “brain” (cerebro), siempre según el generador online de hash SHA-1, es: 8b9248a4e0b64bbccf82e7723a3734279bf9bbc4.
Te darás cuenta de que todos los hashes aquí tienen 40 caracteres de longitud. Si ingresamos todas las palabras que ya llevamos escritas, el hash resultante es de 40 caracteres. Si quisieras, podrías resumir las obras completas de William Shakespeare con SHA-1 y el hash resultante seguiría siendo de 40 caracteres. Por otra parte, no existen dos entradas que produzcan el mismo hash de salida.
 
¿Para qué se utilizan los valores hash?
La forma más común del hash tiene que ver con las contraseñas. Por ejemplo, si alguna vez olvidas tu contraseña de algún servicio en línea, probablemente tengas que resetearla. Cuando se restablece una contraseña, por lo general no recibes una clave en texto plano. Eso es debido a que los servicio en línea no almacenan las contraseñas en texto plano, sino que las almacenan bajo el valor hash de la contraseña. De hecho, el servicio (a menos que utilices una contraseña demasiado simple, que haga que el valor hash sea ampliamente conocido) no tiene idea de cuál es la contraseña real. Por tanto, si recibes una contraseña en texto plano, quiere decir que el servicio en línea que estás utilizando no está haciendo un hashing de tu contraseña.
Se pueden crear hash para contraseñas y archivos multimedia. La función hash también es utilizada por empresas de antivirus como Kaspersky Lab, que utilizan las funciones criptográficas hash para detectar malware.
 
Tal y como las compañías discográficas y cinematográficas crean listas negras de hash para proteger sus datos, también existen listas de hash de malware y muchas de ellas son de acceso público. Estas listas, o firmas de malware (como también se las conoce), están conformadas por valores hash de las piezas de malware o de algunas partes pequeñas y reconocibles de estas piezas. Por un lado, si un usuario detecta una archivo sospechoso, puede consultar en las bases de datos públicas y, de esta forma, sabrá si se trata o no de un archivo malicioso. Por el otro, los productos antivirus detectan y bloquean los malware comparando los hash con sus propias bases de datos y con las públicas.
 
Por otra parte, las funciones criptográficas hash se utilizan también para asegurar la “integridad de los mensajes”. En pocas palabras, para estar seguros  de que algunas comunicaciones o archivos no fueron alterados de alguna forma, se pueden examinar los hash creados antes y después de la transmisión de los datos. Si los dos hash son idénticos, significa que no ha habido ninguna alteración.

1 comentario:

  1. > no existen dos entradas que produzcan el mismo hash de salida

    Eso es falso, y es un error de concepto grave. Hay solo 2^128 valores de hash posibles (en el caso de MD5), mientras que la cantidad de entradas es practicamente ilimitada. Hay coincidencias, inevitablemente.
    Lo que tiene una buena funcion de hash es que esas coincidencias ("colisiones") no pueden encontrarse de una manera eficiente.

    ResponderEliminar