Es probable que hayas visto con anterioridad como junto a programas o archivos descargables desde internet aparecen ciertos términos como hash, MD5, SHA o similares. Hoy veremos para qué sirve un hash y como calcular el hash de un archivo o programa descargado de internet.
Si necesitas calcular el hash de un disco completo puedes revisar este post.
¿Qué es un hash?
Las funciones hash son frecuentemente utilizadas para garantizar la integridad de un archivo o ejecutable, garantizando que el mismo no ha sido alterado desde que fué creado, esto es, desde la fuente original.
Podemos encontrar hashes que se utilizan en situaciones muy diversas, desde firmas digitales a fingerprinting (sirve a modo de resúmen con valor de integridad) o para contabilizar checksums o sumas de verificación, estas últimas destinadas a comprobar que un archivo es el que dice ser.
Un hash es un conjunto de instrucciones utilizada por ordenadores para manipular datos. Muchas funciones hash están diseñadas para producir un resultado fijo, sin importar el tamaño de los datos de entrada.
Algunos desarrolladores de software publican en sus sitios de descarga los valores hash asociados a sus paquetes de software, de manera que quien los descarga sabe que se trata de una versión genuina del mismo. Así podemos descartar de antemano que un atacante los haya manipulado en tránsito.
Hashes MD5
El estándar MD5 o Message-Digest Algorithm ha sido usado durante años en muchas aplicaciones de ciberseguridad, pero también es importante para otro propósito: la verificación de datos. Este es el tipo de hash que más te interesa como internauta que descarga cosas de la red.
Imaginemos que estás buscando una imagen ISO de un sistema operativo Windows o Linux, que quieres buscar la última disponible y lo haces desde un cliente como BitTorrent u otra fuente no oficial. La única forma de evitar instalar un software con posibles manipulaciones o puertas traseras es usar el MD5.
¿Cómo calcular el hash de un archivo o ejecutable?
Quizá te estarás preguntando, ¿cómo calcular un hash para garantizar la integridad y veracidad de un ejecutable o conjunto de archivos? Es más sencillo de lo que parece.
Calcular un hash en Linux o Mac OS
En estos sistemas es sumamente fácil porque tienen el cálculo de hashes posibilitado desde el propio sistema operativo. Solo tenemos que abrir un terminal y escribir lo siguiente:
md5sum ruta/archivo.iso
Lo que hemos hecho es decirle al sistema que calcule un hash (identificador único no manipulable) del fichero en cuestión. Es el número largo que aparece delante.
En un sistema Mac OS abriremos un Terminal y escribiremos:
md5 ruta/archivo.iso
Esto funciona exactamente igual con el hash de tipo SHA-1 y solo tendremos que sustituir md5 por sha1.
Calcular un hash en Windows
Aunque Windows no tiene esta característica de forma nativa, podemos descargar la aplicación ofrecida por Microsoft –FCIV– para comparar los hashes de dos programas o archivos. En la descarga encontraremos dos cosas: el propio programa y un archivo de texto con instrucciones de uso.
Recomiendo instalar el mismo en la ruta Windows\System32 para que podamos invocar al a herramienta desde cualquier carpeta del equipo sin tener que acceder siempre manualmente a la ruta del programa.
Ahora, para calcular el hash MD5 de un archivo descargado, solo necesitamos abrir el CMD o Símbolo de Sistema desde la ruta donde se encuentra el archivo y escribir lo siguiente:
fciv.exe nombre de archivo
Por defecto se calculará el hash MD5 de un archivo. Si queremos obtener el hash SHA-1 bastará con escribir:
fciv.exe –sha1 C:\ruta\archivo.iso
La salida que obtendremos mediante el CMD con esta herramienta es similar a la que ofrece Linux:
Otras formas de calcular hashes
Si lo anterior nos da problemas o simplemente queremos conseguir alternativas más convenientes o rápidas, os recomiendo tener en cuenta dos opciones:
- Hashtab: esta aplicación calcula hashes fácilmente. Una vez la hayamos instalado, podremos analizar el hash asociado a cualquier programa o archivo con el botón derecho. Soporta muchos más tipos además de los habituales md5 y sha1.
- DomainTools: esta web tiene multitud de herramientas para administradores de sistemas y servicios cloud. Este resulta especialmente conveniente. Podemos calcular cualquier tipo de hash sin esfuerzo, tanto para archivos como para entradas de texto.
Recordad que siempre hay que desconfiar de todo aquello que nos bajamos desde internet. Es mejor prevenir que curar -o esperar a que el antivirus de turno sea capaz de neutralizar la amenaza- así que empezad ya a practicar con esos hashes!
muy bueno!
Me gustaMe gusta
Gracias icemodding 😉
Me gustaMe gusta
no hay poqué! 😀
Me gustaMe gusta
Una pregunta al respecto, ¿se puede hacer un hash de un dispositivo de almacenamiento de forma completa?, es decir, ¿se podría hacer un hash de un C:\?, por poner un ejemplo.
Naturalmente me refiero al contenido total del dispositivo y no a cada uno de los ficheros existentes en él.
Si la respuesta es positiva, ¿podrías indicar cómo hacerlo?.
Gracias de antemano.
Me gustaLe gusta a 1 persona
Buenos días Luis,
Sí, es posible obtener el hash de un disco / unidad completa de varias formas. La semana que viene voy a publicar un artículo explicativo (creo que es la mejor forma de responderte)
Gracias por la visita 🙂
Me gustaMe gusta
Muchas gracias Alejandro, espero que me mantengas sobre aviso.
Me gustaLe gusta a 1 persona
Muy pronto lo verás 😉
Me gustaMe gusta
hola, como puedo saber que algoritmo hash y la cantidad de bits que usan los siguientes sistemas operativos para proteger las contraseñas de usuario
Windows XP
Windows 7
Windows 10
CentOS 6.X
CentOS 7.X
muchas gracias
Me gustaMe gusta
Buenas Gabriel,
Redhat tiene varios, por ejemplo SHA256 (256, 512) + AES u otros asi que entiendo que CentOS exactamente igual.
Respecto a Windows, en el siguiente enlace puedes encontrar información sobre hashes y cifrado en versiones de Windows Vista a Server 2012.https://technet.microsoft.com/en-us/library/hh994558(v=ws.10).aspx
Saludos.
Me gustaMe gusta