Hoy en día tenemos una gran variedad de algoritmos de hash con los que podemos verificar la integridad de los archivos. Esto puede ser muy útil, por ejemplo, cuando descargamos un archivo de Internet y queremos comprobar que no se ha modificado. Los ciberdelincuentes a veces alteran los archivos originales para añadir software malicioso y realizar sus ataques. También puede ser que, tras la descarga, ese archivo llegue corrupto. Gracias al hash podremos saber si hay algún tipo de problema y tomar las medidas oportunas cuando correspondan. En este tutorial vamos a aprender a cómo comprobar qué archivos han sido modificados con HashCheck.
Lo primero que vamos a hacer es conocer qué es un hash y para qué nos puede ser útil. Luego veremos con HashCheck cuáles son sus características principales y los requisitos mínimos para utilizarlo. A continuación, veremos cómo se instala y algunos ejemplos de uso. Y es que, hay que tener en cuenta que con esta interfaz se pueden verificar de una manera menos compleja los hash. De ahí que vayamos a ver de primeras que es exactamente un hash y, posteriormente, conocer a fondo cómo se puede comprobar si un archivo se ha modificado viendo su hash.
Qué es un hash y cuándo puede sernos útil
Un hash podríamos definirlo como una huella digital única de los datos digitales de un archivo. Así, por ejemplo, si los datos del archivo cambian, tras esta modificación, veremos cómo ese hash cambia por completo. Básicamente un hash lo vamos a utilizar en estas dos situaciones:
- Para la comprobación de si un archivo ha sido modificado o no.
- Tras la descarga de un archivo desde Internet, para comprobar que no está corrupto, o que haya sido modificado con malas intenciones por parte de un ciberdelincuente.
En el momento que modificamos un archivo, el código alfanumérico que tenemos como salida en el hash, cambia por completo. Otra cosa que debéis saber es que, por el hecho de tener el hash de un determinado archivo, no nos permite recuperar el archivo original.
Para qué se utilizan los hashes
Este tipo de utilidades se pueden usar para muchas cosas diferentes. Pero actualmente, la más común es en lo relacionado con las contraseñas, lo que nos facilita poder realizar un cambio de la misma si nos la olvidamos, por ejemplo.
- Para contraseñas
Cuando se resetea una contraseña, lo más normal es que no nos la manden como un simple texto. Esto ocurre porque los sitios donde nos registramos o contratamos servicios, no almacenan este tipo de datos, en su defecto solo guardan un valor hash de las contraseñas. Por lo cual, el servicio o página, no sabe cuál es nuestra contraseña. En cualquier caso, una de las aplicaciones más comunes es la verificación de las claves. Así se evita guardar las contraseñas en texto sin formato, y se opta por almacenarlas en hash de contraseñas.
- Proteger derechos de autor
Otra funcionalidad que les podemos asignar, es crear listados hash que protejan los derechos de autor en diferentes contenidos. Esto ayuda a proteger los datos y la propiedad intelectual, de forma que las diferentes plataformas pueden prevenir que los materiales se utilicen sin permiso, y si es así, solventarlo. También nos puede ayudar a estar más protegidos contra malware, por ejemplo. Esto es de gran ayuda para las firmas de antivirus, las cuales pueden implementar estos en sus bases de datos y para los usuarios, que pueden consultarlas cuando deseen.
- Seguridad de los mensajes
Pero esto va más allá, pues nos puede ayudar a asegurar la integridad de los mensajes. Lo cual nos permite verificar si algún mensaje o contenido fue alterado, de forma que es muy útil para comunicaciones o archivos. Si los hash son idénticos, quiere decir que no tiene ningún tipo de alteración más allá de un envío y recepción, en cambio si el hash cambia, quiere decir que no estamos ante el archivo o mensaje original.
- Verificación de datos
Además de las anteriores aplicaciones, las características hash también se utilizan para poder verificar la integridad de los datos y el almacenamiento de estos. Por ejemplo, cuando se transfieren archivos, se genera un valor hash de la información original que se ha almacenado o transferido. Y este, acompaña a los datos durante el proceso. Una vez que se complete, se recalcula y así se consigue comparar con el original. Por lo que si todo coincide, significa que no hay ningún tipo de cambio. Por lo que es otra de las aplicaciones que se pueden dar de los hashes.
O, por otro lado, imaginad por un momento que tenéis que descargar el firmware de un router, un punto de acceso o un programa para nuestro PC. En el caso de que, tras la descarga, ese firmware estuviese corrupto, y después comenzásemos la actualización, podríamos dejar inservible ese aparato electrónico. Por ese motivo, los sitios webs de algunos fabricantes facilitan el hash de sus archivos para verificar que el archivo descargado es idéntico al original.
En este ejemplo, con un software que pudiese generar un hash que soportase el algoritmo MD5 o SHA-1, podríamos comprobarlo con el Checksum que nos está ofreciendo este fabricante. Así, en el caso de que los hashes fueran iguales, podremos proceder a la instalación de ese firmware con total tranquilidad. Por otra parte, si no es igual, sabremos que está mal y no deberemos realizar esa actualización. Un programa que podemos utilizar para realizar esta tarea es con HashCheck del que hablaremos a continuación.
- Blockchain y criptomonedas
El mundo del Blockchain es una de las aplicaciones más actuales para los hash, donde gracias a su rapidez, eficiencia y ser económicos, son perfectos para esta tecnología donde se busca dar uso a criptografías muy fuertes, para que sea seguro, privado, incluso anónimo. Además, hay que tener en cuenta que las criptomonedas también se bastan de las funciones hash con el objetivo de garantizar su seguridad y, sobre todo, la integridad de las distintas transacciones que lleven a cabo. Por lo que los hash se aplican como medida de seguridad y autenticación, para la minería en bloques, cada nodo del árbol de merkle tiene un hash, en la generación de direcciones de la billeteras o en contratos inteligentes.
- Detectar posible malware
También está la aplicación de los códigos hash para llegar a detectar posibles programas con malware y así eliminarlo cuanto antes. De hecho, es una de las aplicaciones que está presente en los desarrolladores de antivirus. Se basa en crear bases de datos de firmas de malware ya conocidas, en la que cada firma es un valor hash que está generado a partir de un código malicioso.
Tipos de algoritmos hash
Con el paso de los años, lo cierto es que han ido dando diferentes protocolos, es decir, algoritmos de generación de códigos hash. Algunos de estos, son los que más se utilizan. En cualquier caso, el objetivo de estos siempre ha sido el mismo, poder mejorar la seguridad, además de la usabilidad, de esta herramienta criptográfica.
Para que puedas tener más claro los tipos que hay, estos son los más utilizados. Fuera de este listado se pueden encontrar otros algoritmos en concreto, aunque, sin duda alguna, estos son los que más se utilizan. Pero, para que te hagas una idea, aquí tienes el listado:
- SHA-1, SHA-2 y SHA-3
En este caso, se trata de unos algoritmos creados por la NSA estadounidense, es decir, la National Securty Agency. Se desarrollaron entre los años 1993 y 2015. Y lo cierto es que siguen siendo bastante utilizados.
- MDA5
Por otro lado, también está este tipo en concreto. En este caso, su desarrollo fue anterior, concretamente en el año 1991. El objetivo de este era sustituir a su predecesor MD4.
- BLAKE2 y BLAKE3
Los dos últimos, pero no menos importantes, son estos dos tipos. De hecho, son los más recientes en este campo. Estamos ante dos algoritmos hash que cuentan con una mejor eficiencia y velocidad a la hora de generar los códigos.
¿Pueden ser peligrosos los archivos hash?
Estos archivos son herramientas muy importantes para que la integridad de los datos en internet, lo cual nos asegura que lo que descargamos de la red es auténtico y no ha sido modificado. En cambio, existen algunas circunstancias donde estos pueden llegar a suponer una amenaza para la seguridad. Esto es porque pueden ser falsificados. Los atacantes pueden crear archivos falsos, los cuales coinciden con los archivos que son legítimos. Lo que se busca con esto, es que los usuarios procedan a descargar algún archivo malicioso en lugar del que quieren descargar realmente. Por lo cual siempre debemos asegurarnos de la veracidad del contenido, siempre previamente a realizar la descarga. De este modo evitaremos que el problema llegue a nuestro dispositivo.
Por otro lado, estos archivos hash pueden ser utilizados por los atacantes para realizar una distribución de malware. Para ello, inyectan código malicioso en los archivos, y a partir de estos generan el hash falsificado. De nuevo tratan de suplantar a uno real. Compartir hashes falsos en línea, es algo que hacen buscando engañar a los usuarios, como hemos visto previamente. Pero eso no es todo, sino que también pueden ser utilizados para realizar ataques DDoS. Esto lo hacen generando grandes cantidades de solicitudes de verificación para los archivos legítimos, los cual colapsa los servidores que alojan los archivos hasta causar la caída.
La mejor forma de estar protegidos frente a esto, es utilizando algoritmos seguros, actualizados y verificando su integridad. Por otro lado, se deben tomar las medidas de seguridad necesarias, como la autenticación en dos factores o limitaciones de permisos a los usuarios. De este modo, se reducirá la posibilidad de manipulación malintencionada de los datos. En todo caso, podemos estar tranquilos, por si solos no se trata de archivos peligrosos. Pero su mal uso puede llevar a generar estos tipos de problemas.
HashCheck: características y funcionamiento
HashCheck podemos definirlo como un programa gratuito para Windows que nos permite calcular y verificar hashes. Además, también se integra en el explorador archivos de Windows mediante un menú contextual y nos permite generar un fichero MD5 con el hash de todos los archivos que se encuentren en esa carpeta. Por otra parte, también permite que, cuando ejecutemos de nuevo el programa, realizar una comparación de los valores del fichero con los nuevos hashes y así saber si los archivos son idénticos, o por el contrario han sido modificados.
Con HashCheck vamos a obtener todas estas características y funciones:
- Permite la comprobación y verificación de un hash, utilizando archivos con una extensión de archivos .sfv, .md4, .md5 o .sha1.
- Integración en las propiedades del archivo de una nueva pestaña llamada «Checksum» donde podremos ver los hashes de los archivos.
- Se trata de un programa gratuito y de código abierto. Esto implica que lo pueda usar todo el mundo y que las personas con algún conocimiento del lenguaje de programación C puedan personalizarlo a su gusto.
En cuanto a los requisitos mínimos del programa, debemos contar con un ordenador con al menos Windows XP. También hay que señalar que es compatible tanto con versiones de 32 bits como de 64 bits. En cuanto al espacio en disco duro, va a ser inferior a 1 MB y, además, hay que señalar que se ha traducido a numerosos idiomas entre ellos el español.
Instalación y primeros pasos con HashCheck
Lo primero que tenemos que hacer es descargarla desde su página web para lo que pulsaremos en este enlace. Entonces veremos una pantalla como esta:
A continuación, pulsamos en el botón Download Installer y bajamos el instalador. Una vez descargado lo ejecutamos y nos saldrá una pantalla como esta:
Entonces pulsamos en Yes para aceptar el acuerdo de licencia. Una vez que finalice la instalación con éxito veremos esto y pulsaremos en aceptar.
Yo he realizado la instalación en un ordenador Windows 10 de 64 bits y el programa ha funcionado de manera correcta.
Ahora vamos a empezar trabajando con un archivo. Si desde el explorador de Windows hacéis clic sobre un archivo con el botón derecho del ratón y dais a «Propiedades» veréis que se ha añadido una pestaña nueva que antes no aparecía llamada CheckSum.
Aquí vamos a poder ver tanto el nombre del archivo como el algoritmo hash en formato CRC-32, MD4, MD5 y SHA-1. Si pulsamos en Guardar, vamos a poder almacenarlo en nuestro disco duro con el algoritmo hash que deseemos. En este caso el predeterminado es el MD5, pero podéis seleccionar el que más os interese.
Con HashCheck la forma de trabajar es diferente, no tenemos un acceso directo para acceder a él desde el Menú de Windows ni podemos crear un acceso directo al ejecutable del programa.
Lo único que tenemos que hacer para acceder al programa es hacer doble clic sobre el archivo del hash que habéis guardado antes. Entonces veremos una pantalla como esta si no se ha modificado el archivo.
En cambio, si creamos un archivo de texto, guardamos su hash y posteriormente lo modificamos, detectará que se han producido cambios.
Trabajando con carpetas
Ya hemos visto cómo se trabaja con un único archivo, pero también tenemos la posibilidad de trabajar con carpetas que contengan varios archivos. En este caso la cosa cambia y la forma de hacerlo es diferente. Lo que tenemos que hacer es pulsar con el botón derecho del ratón y seleccionar la opción crear archivo checksum.
Si hacemos doble clic en ese archivo que hemos creado podremos ver si ha habido alguna modificación en los archivos de esa carpeta.
En este caso en concreto no ha habido modificaciones. De haberse producido, alguna estaría en rojo y pondría incorrecto.
Cómo ver el hash del archivo sin usar este programa
Si quisiéramos consultar el hash de un archivo y carpeta, pero no tuviésemos instalado HashCheck podríamos hacerlo del siguiente modo:
- Nos ponemos encima del archivo de hash que hemos creado.
- Botón derecho del ratón, Abrir con y elegimos Bloc de notas.
Entonces veríamos los algoritmos hash almacenados en ese archivo:
Tal y como habéis visto, gracias a HashCheck podremos calcular el hash de cualquier archivo y también de todos los archivos contenidos dentro de una carpeta. Un punto positivo es que es totalmente gratuito, de código abierto y muy fácil de utilizar para comprobar que tus archivos no han sido modificados.