Comprobar la integridad de las descargas de archivos con md5sum, sha256sum…

Cuando descargamos archivos a través de Internet, por ejemplo ISOs de sistemas operativos, o paquetes RPM, DEB, etc, vienen acompañados de un «código» (hash MD5 del archivo) que sirve para verificar, una vez descargado el archivo, que no ha sido alterado por terceras partes y que podemos confiar en que es lo que realmente buscamos.

Por ejemplo, si accedemos a uno de los mirrors de CentOS vermos que además de las ISOs podemos descargar sus correspondientes checksum MD5, PGP, SHA…(*.asc y *.txt):

0_README.txt 06-Jul-2012 06:01 2.0K
CentOS-6.3-x86_64-LiveCD.iso 07-Jul-2012 13:26 692M
CentOS-6.3-x86_64-LiveCD.torrent 09-Jul-2012 14:03 217K
CentOS-6.3-x86_64-LiveDVD.iso 06-Jul-2012 09:07 1.6G
CentOS-6.3-x86_64-LiveDVD.torrent 09-Jul-2012 13:50 263K
CentOS-6.3-x86_64-bin-DVD1.iso 06-Jul-2012 06:20 4.0G
CentOS-6.3-x86_64-bin-DVD1to2.torrent 09-Jul-2012 14:15 217K
CentOS-6.3-x86_64-bin-DVD2.iso 06-Jul-2012 06:20 1.4G
CentOS-6.3-x86_64-minimal-EFI.iso 21-Aug-2012 14:30 364M
CentOS-6.3-x86_64-minimal.iso 06-Jul-2012 06:23 330M
CentOS-6.3-x86_64-netinstall-EFI.iso 18-Sep-2012 05:39 234M
CentOS-6.3-x86_64-netinstall.iso 06-Jul-2012 06:14 200M
README.txt 06-Jul-2012 06:01 2.0K
md5sum.txt 18-Sep-2012 17:31 734 md5sum.txt.asc 18-Sep-2012 17:31 1.6K
sha1sum.txt 18-Sep-2012 17:31 822
sha1sum.txt.asc 18-Sep-2012 17:31 1.7K
sha256sum.txt 18-Sep-2012 17:31 1.1K
sha256sum.txt.asc 18-Sep-2012 17:31 1.9K

En el caso de los checksum MD5 el fichero tiene el siguiente contenido:

a991defc0a602d04f064c43290df0131  CentOS-6.3-x86_64-bin-DVD1.iso
410c1c5188e6076d62d6107153738a15  CentOS-6.3-x86_64-bin-DVD2.iso
087713752fa88c03a5e8471c661ad1a2  CentOS-6.3-x86_64-minimal.iso
690138908de516b6e5d7d180d085c3f3  CentOS-6.3-x86_64-netinstall.iso
9953ff1cc2ef31da89a0e1f993ee6335  CentOS-6.3-x86_64-LiveCD.iso
0d28b5f9c9f562bd3a17c68ef05b3998  CentOS-6.3-x86_64-LiveDVD.iso
21157a19ec6a32b4fd71f0e45b9aa951  CentOS-6.3-x86_64-bin-DVD1to2.torrent
9015d02b4e22efd547a6bd8b19bce0ec  CentOS-6.3-x86_64-LiveCD.torrent
3b9c1c463cfe8983c0835f46f2db39db  CentOS-6.3-x86_64-LiveDVD.torrent
4dd1ff9a521823e033dde6b152196de7  CentOS-6.3-x86_64-minimal-EFI.iso
c750ba06d83a38494dbf100bf33014d4  CentOS-6.3-x86_64-netinstall-EFI.iso

Cada línea hace referencia al checksum de cada descarga. Una vez descargado, en GNU/Linux debemos comparar ese hash con el del fichero que hemos descargado. Para ello utilizamos el comando «md5sum«:

~$ md5sum CentOS-6.3-x86_64-netinstall.iso
690138908de516b6e5d7d180d085c3f3  CentOS-6.3-x86_64-netinstall.iso

En este caso hemos visto que efectivamente coincide, por lo que es fiable hacer uso del archivo. En el caso de que el hash fuera distinto detectaríamos que el archivo ha sido comprometido y no es fiable su descarga o utilización:

~$ md5sum CentOS-6.3-x86_64-netinstall.iso
d41d8cd98f00b204e9800998ecf8427e  CentOS-6.3-x86_64-netinstall.iso

Podéis hacer lo mismo con los hash sha y los comandos sha1sum, sha256dum, etc:

~$ sha[TAB]
sha1pass sha224sum sha384sum shasum
sha1sum sha256sum sha512sum

2 comentarios en “Comprobar la integridad de las descargas de archivos con md5sum, sha256sum…

  1. Ya se que es sencillo acerselo uno mismo, però, no hay ningun escript que cargue el fichero y verifique todos los archivos?

    Dracks,

    • Si te bajas el txt con el hash md5 en la misma ruta que el fichero, puedes ejecutar directamente el comando contra el fichero con los hashes (con el parámetro -c):

      $ md5sum -c md5sum.txt
      CentOS-6.3-x86_64-LiveDVD.iso: OK
      

      Como ves, te dará un OK o fallo según esté bien o mal, si el txt tiene más ficheros y sólo has bajado 1, entonces te dará el OK para uno y fallo en el resto.

      Saludos

Comments are closed.