Cómo generar y verificar el hash de archivos en Linux

La integridad de los archivos es fundamental en el ámbito de la informática. Al descargar archivos desde Internet, ya sean programas, imágenes ISO, documentos u otros datos, es crucial asegurarse de que no se han corrompido durante la descarga ni han sido comprometidos por atacantes. Los hashes son herramientas esenciales para esta tarea. En esta publicación, exploraremos qué son los hashes, por qué son útiles y cómo generar y verificar un hash en Linux.

¿Qué es un Hash?

Un hash es una cadena de caracteres generada por un algoritmo a partir de un conjunto de datos, como un archivo o un mensaje. Esta cadena es única para cada conjunto de datos y tiene una longitud fija.

  • Hash de ejemplo: b1d24f82bc567d4e849e2c2b8d5abfd1c4e08fae654fb4a67a2b9e4f4d6e3b1d
  • Si generamos el hash de un archivo y luego lo volvemos a generar sin modificar el archivo, obtendremos el mismo valor.
  • Si el archivo se modifica, el nuevo hash será completamente diferente.

Por lo tanto, un hash actúa como una «huella digital» única para un conjunto de datos. Si dos archivos tienen el mismo hash, son idénticos; si no, son diferentes.

Utilidades de Verificar el Hash de un Archivo

Los hashes tienen diversas aplicaciones, especialmente en la seguridad y la integridad de los datos:

  1. Verificación de integridad: Asegurarse de que un archivo descargado no ha sido modificado o dañado.
  2. Almacenamiento seguro de contraseñas: Los sistemas de autenticación almacenan hashes de contraseñas en lugar de las contraseñas en texto plano.
  3. Detección de malware: Los programas antivirus utilizan hashes para identificar archivos maliciosos.
  4. Firmas digitales: Verifican la autenticidad e integridad de un mensaje o documento.
  5. Tecnología blockchain: Fundamental en el funcionamiento de criptomonedas y contratos inteligentes.

Algoritmos Comunes para Generar Hashes

  • MD5: Algoritmo antiguo y actualmente considerado inseguro.
  • SHA-1: Más seguro que MD5, pero también obsoleto y vulnerable.
  • SHA-2: Incluye SHA-256 y SHA-512, considerados seguros y ampliamente utilizados.
  • SHA-3: La última familia de algoritmos hash, muy segura.
  • BLAKE2: Rápido y seguro, diseñado como alternativa a SHA-2 y SHA-3.

Herramientas Necesarias para Generar y Verificar Hashes en Linux

Para trabajar con hashes en Linux, se requieren ciertos paquetes:

  • coreutils: Para SHA-2, MD5 y SHA-1 (sudo apt install coreutils)
  • libdigest-sha3-perl: Para SHA-3 (sudo apt install libdigest-sha3-perl)

Generar y Verificar Hashes en Linux

Supongamos que tenemos el archivo sysadmin.txt. A continuación, se muestran los comandos para generar y verificar su hash.

MD5:

md5sum sysadmin.txt
3c28ec5e18b3d53eac3d0d57b79d9b84 sysadmin.txt

Para verificar:

echo "3c28ec5e18b3d53eac3d0d57b79d9b84  sysadmin.txt" | md5sum --check
sysadmin.txt: La suma coincide

SHA-1:

shasum -a 1 sysadmin.txt
8b1a9953c4611296a827abf8c47804d7ae3944ad sysadmin.txt

Para verificar:

echo "8b1a9953c4611296a827abf8c47804d7ae3944ad  sysadmin.txt" | shasum -a 1 --check
sysadmin.txt: OK

SHA-256:

shasum -a 256 sysadmin.txt
f2ca1bb6c7e907d06dafe4687e579fce2f39e24a7da0a9c0219ebd7bb9d29d8e sysadmin.txt

Para verificar:

echo "f2ca1bb6c7e907d06dafe4687e579fce2f39e24a7da0a9c0219ebd7bb9d29d8e  sysadmin.txt" | shasum -a 256 --check
sysadmin.txt: OK

SHA-3:

sha3sum -a 512 sysadmin.txt
d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4 sysadmin.txt

Para verificar:

echo "d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4d2b2d9a2f4a2a1f4  sysadmin.txt" | sha3sum -a 512 --check
sysadmin.txt: OK

BLAKE2:

b2sum sysadmin.txt
6f1ed002ab5595859014ebf0951522d9b1a6cf51d620fa915a2f8d749ab92421 sysadmin.txt

Para verificar:

echo "6f1ed002ab5595859014ebf0951522d9b1a6cf51d620fa915a2f8d749ab92421  sysadmin.txt" | b2sum --check
sysadmin.txt: La suma coincide

Verificar el Hash de un Archivo Descargado

Imaginemos que descargamos una ISO de Ubuntu:

  • Hash: 4a8a08f09d37b73795649038408b5f33b3b6321f
  • Archivo: ubuntu-22.04.3-desktop-amd64.iso
  • Algoritmo: SHA-256

Para verificar la integridad:

echo "4a8a08f09d37b73795649038408b5f33b3b6321f  ubuntu-22.04.3-desktop-amd64.iso" | shasum -a 256 --check
ubuntu-22.04.3-desktop-amd64.iso: OK

Herramientas con Interfaz Gráfica

Aunque la terminal es eficiente, existen herramientas gráficas para generar y verificar hashes en Linux:

  • QuickHash GUI: Compatible con MD5, SHA-1, SHA-3, SHA-256, SHA-512, entre otros.
  • GTKHash: Soporta MD5, SHA-1, SHA-256, SHA-512 y BLAKE2. Puede integrarse en gestores de archivos como Caja, Nemo y Thunar.

La generación y verificación de hashes es crucial para garantizar la integridad y seguridad de los archivos. Aunque puede llevar tiempo, esta práctica protege contra la corrupción de datos y ataques malintencionados. Utilizar la terminal o herramientas gráficas permite mantener la integridad de los archivos descargados de manera eficiente.

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio