05-23-2005, 12:54 PM
Comprobando la integridad de archivos con md5sum
Message-Digest 5 (MD5) es un algoritmo que se suele utilizar, entre otras cosas, para realizar la comprobación de la integridad de archivos binarios, siendo muy utilizado, por ejemplo, para la verificación de imágenes ISO o programas bajados de Internet.
El algoritmo de MD5 genera un digesto (número único) a partir del análisis y suma de los caracteres de una cadena binaria, que es llamado cheksum.
En linux existe una forma de comprobar - como así también generar - este número o cheksum: el comando md5sum
Pero concretamente, para que me sirve conocer el cheksum de un archivo?
Algunas de las razones pueden ser:
• Permite saber si alguien modifició el o los archivos desde que se sacó ese cheksum.
• Comprobar si un determinado archivo bajó correctamente.
• Comprobar que las imagenes ISO no tengan errores, antes de grabarlas a un CD.
Por ejemplo, vamos a suponer que bajamos las imagenes iso de los CD’s de Mandrake 10.0, y además un archivo con el checksum (mdk10.0_cds.md5). Vamos a verificar que la descarga fué correcta escribiendo lo siguiente en una consola:
md5sum -c mdk10.0_cds.md5
Si las imágenes iso son correctas, debería aparecernos la siguiente leyenda:
Mandrake10.0-cd1-inst.i586.iso: La suma coincide
Mandrake10.0-cd2-ext.i586.iso: La suma coincide
Mandrake10.0-cd3-supp.i586.iso: La suma coincide
En caso de que alguna de las imagénes esté corrupta, aparecera un mensaje que nos indica que la suma no coincide y algun otro tipo de información adicional. Por ej.:
Mandrake10.0-cd1-inst.i586.iso: La suma coincide
Mandrake10.0-cd2-ext.i586.iso: La suma no coincide
md5sum: ATENCIÓN: 1 de las 2 sumas de comprobación calculada(s) NO coincidieron
Mandrake10.0-cd3-supp.i586.iso: La suma coincide
Para ver el contenido del archivo mdk10.0_cds.md5 podemos hacer lo siguiente:
cat mdk10.0_cds.md5
para nuestro ejemplo, el comando cat nos devolvería lo siguiente:
cda56ed1c9e9ace3de44eba1c36069a7 Mandrake10.0-cd1-inst.i586.iso
6ede8c75fec92e10636b6c0bf5ee9860 Mandrake10.0-cd2-ext.i586.iso
0b4921ddb67425687a5e053ff288dcba Mandrake10.0-cd3-supp.i586.iso
Crear el cheksum de nuestros archivos
La forma de crear un archivo con el cheksum es similar a lo visto anteriormente.
La sintáxis es la siguiente:
md5sum archivos_a_calcular
Por default la salida del comando md5sum es por pantalla. Por ej., si hacemos:
md5sum /boot/vmlinuz
obtendremos por pantalla lo siguiente:
ca894dd6579df021d73cf1e473d03a54 /boot/vmlinuz
lo que tenemos que hacer es dirigir la salida standard (stdout) a un archivo, con el nombre y la extensión que querramos, es decir
md5sum /boot/vmlinuz > MiKernel.md5
Otro ejemplo:
Vamos a suponer que te vas de vacaciones y le dejas la computadora a tu hermano (mala idea!!), un joven aprendiz de hacker, y a la vuelta queres saber qué archivos estuvo modificando. Lo que vas a hacer es calcular el cheksum de los archivos del sistema:
md5sum /bin/* /sbin/* /usr/bin/* /usr/sbin/* /usr/X11R6/bin/* /etc/* > /root/sistema.md5
Esto genera el archivo sistema.md5 dentro del directorio /root de todos los archivos dentro de /bin, /sbin, /usr/bin, /usr/sbin, /usr/X11R6/bin, /etc
Cuando vuelvas de las vacaciones solo tenes que hacer
md5sum -c /root/sistema.md5
y verificar cuales archivos fueron modificados desde que te fuiste.
Por último:
* Existen versiones del md5sum para prácticamente todos los sistemas operativos.
* md5sum viene incluido dentro del paquete GNU Texutils
Para los que quieran saber mas de MD5:
rfc1321: The MD5 Message-Digest Algorithm
Espero que les sirva.
Saludos!!!
Message-Digest 5 (MD5) es un algoritmo que se suele utilizar, entre otras cosas, para realizar la comprobación de la integridad de archivos binarios, siendo muy utilizado, por ejemplo, para la verificación de imágenes ISO o programas bajados de Internet.
El algoritmo de MD5 genera un digesto (número único) a partir del análisis y suma de los caracteres de una cadena binaria, que es llamado cheksum.
En linux existe una forma de comprobar - como así también generar - este número o cheksum: el comando md5sum
Pero concretamente, para que me sirve conocer el cheksum de un archivo?
Algunas de las razones pueden ser:
• Permite saber si alguien modifició el o los archivos desde que se sacó ese cheksum.
• Comprobar si un determinado archivo bajó correctamente.
• Comprobar que las imagenes ISO no tengan errores, antes de grabarlas a un CD.
Por ejemplo, vamos a suponer que bajamos las imagenes iso de los CD’s de Mandrake 10.0, y además un archivo con el checksum (mdk10.0_cds.md5). Vamos a verificar que la descarga fué correcta escribiendo lo siguiente en una consola:
md5sum -c mdk10.0_cds.md5
Si las imágenes iso son correctas, debería aparecernos la siguiente leyenda:
Mandrake10.0-cd1-inst.i586.iso: La suma coincide
Mandrake10.0-cd2-ext.i586.iso: La suma coincide
Mandrake10.0-cd3-supp.i586.iso: La suma coincide
En caso de que alguna de las imagénes esté corrupta, aparecera un mensaje que nos indica que la suma no coincide y algun otro tipo de información adicional. Por ej.:
Mandrake10.0-cd1-inst.i586.iso: La suma coincide
Mandrake10.0-cd2-ext.i586.iso: La suma no coincide
md5sum: ATENCIÓN: 1 de las 2 sumas de comprobación calculada(s) NO coincidieron
Mandrake10.0-cd3-supp.i586.iso: La suma coincide
Para ver el contenido del archivo mdk10.0_cds.md5 podemos hacer lo siguiente:
cat mdk10.0_cds.md5
para nuestro ejemplo, el comando cat nos devolvería lo siguiente:
cda56ed1c9e9ace3de44eba1c36069a7 Mandrake10.0-cd1-inst.i586.iso
6ede8c75fec92e10636b6c0bf5ee9860 Mandrake10.0-cd2-ext.i586.iso
0b4921ddb67425687a5e053ff288dcba Mandrake10.0-cd3-supp.i586.iso
Crear el cheksum de nuestros archivos
La forma de crear un archivo con el cheksum es similar a lo visto anteriormente.
La sintáxis es la siguiente:
md5sum archivos_a_calcular
Por default la salida del comando md5sum es por pantalla. Por ej., si hacemos:
md5sum /boot/vmlinuz
obtendremos por pantalla lo siguiente:
ca894dd6579df021d73cf1e473d03a54 /boot/vmlinuz
lo que tenemos que hacer es dirigir la salida standard (stdout) a un archivo, con el nombre y la extensión que querramos, es decir
md5sum /boot/vmlinuz > MiKernel.md5
Otro ejemplo:
Vamos a suponer que te vas de vacaciones y le dejas la computadora a tu hermano (mala idea!!), un joven aprendiz de hacker, y a la vuelta queres saber qué archivos estuvo modificando. Lo que vas a hacer es calcular el cheksum de los archivos del sistema:
md5sum /bin/* /sbin/* /usr/bin/* /usr/sbin/* /usr/X11R6/bin/* /etc/* > /root/sistema.md5
Esto genera el archivo sistema.md5 dentro del directorio /root de todos los archivos dentro de /bin, /sbin, /usr/bin, /usr/sbin, /usr/X11R6/bin, /etc
Cuando vuelvas de las vacaciones solo tenes que hacer
md5sum -c /root/sistema.md5
y verificar cuales archivos fueron modificados desde que te fuiste.
Por último:
* Existen versiones del md5sum para prácticamente todos los sistemas operativos.
* md5sum viene incluido dentro del paquete GNU Texutils
Para los que quieran saber mas de MD5:
rfc1321: The MD5 Message-Digest Algorithm
Espero que les sirva.
Saludos!!!
