Hash

por | Jul 23, 2019

Hemos hablado en este blog sobre el cifrado como medio de protección y seguridad. Pero ahora vamos a hablar del cifrado como medio de identificación.

Cuando nos encontramos ante dos archivos (imágenes, documentos de texto, vídeos, etc) no podemos saber si son exactamente iguales. En un documento de texto de 200 páginas, a simple vista, no vamos a detectar si en algún punto hay un espacio de más o no. En una imagen no vamos a ver si ha cambiado ligeramente de tono uno de los pixeles. Pero estos pequeños cambios pueden tener una gran relevancia porque diferencian el original de un archivo modificado.

Los expertos en esta materia han encontrado una solución a este problema. Se llama HASH. El hash es un cifrado unidireccional, es decir, no se puede descifrar. Al cifrar el archivo se obtiene una linea de números y letras que por si solos no nos sirven para nada. Pero si nos encontramos con otro archivo que dicen ser igual al anterior, le aplicamos el mismo cifrado y el resultado tiene que ser igual. Cualquier cambio, aunque sea mínimo cambiará el resultado.

Vamos a ver un ejemplo. Existen múltiples herramientas, pero aquí vamos a usar Filechecksumutility  (lo dicho, cualquier herramienta de hash nos vale).

Tenemos dos archivos de imágenes que a primera vista parecen iguales.

 

  

 

Abrimos nuestra herramienta y sacamos el hash primero de una y luego de otra imagen. A continuación comparamos el resultado.

 

Como podemos ver el resultado es el mismo en consecuencia estamos ante la misma imagen. No existe un único HASH, todos los nombres que veis usan diferentes algoritmos pero todos son validos. Eso sí, siempre hay que comprar el hash SHA-1 con el hash SHA-1 del otro archivo. No podemos comparar un MD5 con un SHA-1. Como recomendación personal siempre añadiría dos códigos hash y que mínimo uno de ellos sea el MD5. Aunque se ha quedado obsoleto, porque se ha podido demostrar que se puede repetir el mismo código en diferentes archivos,  es el mas conocido. Por ello, suelo adjuntarlo siempre en los informes, junto a otros.

Vamos a repetir el proceso pero esta vez he bajado un poco la resolución de una de las imágenes. Vemos en seguida que un código no tiene nada que ver con el otro.

Este proceso lo podemos hacer con todo tipo de archivos, incluidos ejecutables.

Para comprobar y garantizar la identidad de nuestros archivos digitales, siempre deberíamos incluir el código hash de cualquier archivo que adjuntamos, seamos detectives, abogados, policias, etc.

El hash también se usa como medida de seguridad en las contraseñas (ya hablaremos de eso en otro post) y en las descargas. La herramienta llamada FIM nos saca automáticamente el hash de cualquier archivo que descargamos y lo compara con el hash que indica la pagina que debe de ser. Así se evita que nos inyecten un archivo malicioso.