¿Qué son los hash MD5, SHA-1 y SHA-256 y cómo los reviso?

A veces verás hash MD5, SHA-1 o SHA-256 junto con descargas durante tus viajes por Internet, pero no sabes realmente cuáles son. Estas cadenas de texto aparentemente aleatorias le permiten verificar que los archivos que descargue no estén dañados ni alterados.

A veces verás hash MD5, SHA-1 o SHA-256 junto con descargas durante tus viajes por Internet, pero no sabes realmente cuáles son. Estas cadenas de texto aparentemente aleatorias le permiten verificar que los archivos que descargue no estén dañados ni alterados. Puede hacerlo con los comandos integrados en Windows, macOS y Linux.

Cómo funcionan los hashes y cómo se usan para la verificación de datos

Los hashes son productos de algoritmos criptográficos diseñados para producir una cadena de caracteres. A menudo, estas cadenas tienen una longitud fija, independientemente del tamaño de los datos de entrada. Eche un vistazo a la tabla anterior y verá que tanto «Fox» como «El zorro rojo salta sobre el perro azul» producen el mismo resultado de longitud.

Ahora compare el segundo ejemplo en la tabla con el tercero, cuarto y quinto. Verá que, a pesar de un cambio muy pequeño en los datos de entrada, los hash resultantes son muy diferentes entre sí. Incluso si alguien modifica una parte muy pequeña de los datos de entrada, el hash cambiará dramáticamente.

MD5, SHA-1 y SHA-256 son funciones hash diferentes. Los creadores de software a menudo toman una descarga de archivos, como un archivo .iso de Linux, o incluso un archivo .exe de Windows, y la ejecutan a través de una función hash. Luego ofrecen una lista oficial de los hashes en sus sitios web.

De esa manera, puede descargar el archivo y luego ejecutar la función hash para confirmar que tiene el archivo real y original y que no se ha dañado durante el proceso de descarga. Como vimos anteriormente, incluso un pequeño cambio en el archivo cambiará drásticamente el hash.

También pueden ser útiles si tiene un archivo que obtuvo de una fuente no oficial y desea confirmar que es legítimo. Supongamos que tiene un archivo .ISO de Linux que obtuvo de alguna parte y desea confirmar que no ha sido alterado. Puede buscar en línea el hash de ese archivo ISO específico en el sitio web de la distribución de Linux. Luego puede ejecutarlo a través de la función hash en su computadora y confirmar que coincide con el valor hash que espera que tenga. Esto confirma que el archivo que tiene es exactamente el mismo archivo que se ofrece para descargar en el sitio web de distribución de Linux, sin ninguna modificación.

Tenga en cuenta que se han encontrado «colisiones» con las funciones MD5 y SHA-1. Estos son múltiples archivos diferentes, por ejemplo, un archivo seguro y un archivo malicioso, que dan como resultado el mismo hash MD5 o SHA-1. Es por eso que debería preferir SHA-256 cuando sea posible.

Cómo comparar funciones hash en cualquier sistema operativo

Con eso en mente, veamos cómo verificar el hash de un archivo que descargó y compararlo con el que se le proporcionó. Aquí hay métodos para Windows, macOS y Linux. Los hash siempre serán idénticos si está utilizando la misma función de hash en el mismo archivo. No importa qué sistema operativo use.

Ventanas

Este proceso es posible sin ningún software de terceros en Windows gracias a PowerShell.

Para comenzar, abra una ventana de PowerShell iniciando el acceso directo «Windows PowerShell» en el menú Inicio.

Ejecute el siguiente comando, reemplazando «C: \ ruta \ a \ archivo.iso» con la ruta a cualquier archivo del que desee ver el hash de:

 Get-FileHash C: \ ruta \ a \ file.iso 

Tomará un tiempo generar el hash del archivo, dependiendo del tamaño del archivo, el algoritmo que esté utilizando y la velocidad de la unidad en la que se encuentra el archivo.

Por defecto, el comando mostrará el hash SHA-256 para un archivo. Sin embargo, puede especificar el algoritmo de hash que desea usar si necesita un MD5, SHA-1 u otro tipo de hash.

Ejecute uno de los siguientes comandos para especificar un algoritmo de hash diferente:

 Get-FileHash C: \ ruta \ a \ file.iso -Algorithm MD5 
 Get-FileHash C: \ ruta \ a \ file.iso -Algorithm SHA1 
 Get-FileHash C: \ ruta \ a \ file.iso -Algorithm SHA256 
 Get-FileHash C: \ ruta \ a \ file.iso -Algorithm SHA384 
 Get-FileHash C: \ ruta \ a \ file.iso -Algorithm SHA512 
 Get-FileHash C: \ ruta \ a \ file.iso -Algorithm MACTripleDES 
 Get-FileHash C: \ ruta \ a \ file.iso -Algorithm RIPEMD160 

Compare el resultado de la función hash con el resultado que esperaba ver. Si tiene el mismo valor, el archivo no se ha dañado, alterado o alterado de ninguna otra forma del original.

Mac OS

macOS incluye comandos para ver diferentes tipos de hashes. Para acceder a ellos, inicie una ventana de Terminal. Lo encontrará en Finder> Aplicaciones> Utilidades> Terminal.

El comando md5 muestra el hash MD5 de un archivo:

 md5/ruta/a/archivo 

El comando shasum muestra el hash SHA-1 de un archivo de forma predeterminada. Eso significa que los siguientes comandos son idénticos:

 shasum/path/to/file 
 shasum -a 1/ruta/a/archivo 

Para mostrar el hash SHA-256 de un archivo, ejecute el siguiente comando:

 shasum -a 256/ruta/a/archivo 

Linux

En Linux, acceda a una Terminal y ejecute uno de los siguientes comandos para ver el hash de un archivo, según el tipo de hash que desee ver:

 md5sum/path/to/file 
 sha1sum/path/to/file 
 sha256sum/path/to/file 

Algunos hashes están firmados criptográficamente para mayor seguridad

Si bien los hash pueden ayudarlo a confirmar que un archivo no fue manipulado, todavía hay una vía de ataque aquí. Un atacante podría obtener el control del sitio web de una distribución de Linux y modificar los hash que aparecen en él, o un atacante podría realizar un ataque man-in-the-middle y modificar la página web en tránsito si estaba accediendo al sitio web a través de HTTP en lugar de HTTPS encriptado.

Es por eso que las distribuciones modernas de Linux a menudo proporcionan más que hashes listados en páginas web. Firman criptográficamente estos hash para ayudar a proteger contra los atacantes que podrían intentar modificar los hashes. Deberá verificar la firma criptográfica para asegurarse de que el archivo hash realmente haya sido firmado por la distribución de Linux si desea estar absolutamente seguro de que el hash y el archivo no fueron alterados.

Verificar la firma criptográfica es un proceso más complicado. Lea nuestra guía para verificar que las ISO de Linux no hayan sido manipuladas para obtener instrucciones completas.

Crédito de imagen: Jorge Stolfi/Wikimedia

Rate article
labsfabs.com
Add a comment