Seguramente os habréis encontrado con la expresión MD5 o MD5 Checksum o comprobación de suma de verificación a la hora de descargar un fichero de Internet. Pero serán pocos los que se paran a buscar o conocer qué es esto y qué utilidad tiene para nosotros y nuestra seguridad.
Así que hoy estudiaremos y veremos la puesta en práctica de términos como el Checksum, MD5, Hash o SHA-1 para que desde ahora en adelante sepamos qué trabajo hacen.
Índice de contenidos
MD5 Checksum – Qué es y qué hace
Cuando hablamos de MD5 Checksum realmente nos estamos refiriendo a dos funciones, por un lado, un algoritmo de seguridad que realiza una función hash (Checksum) y a un algoritmo criptográfico que realiza la comprobación de integridad de archivos. Pero vayamos por partes y expliquemos que es todo esto de una forma más o menos ordenada.
Si nos fijamos bien en ciertos lugares de descarga o en la información de ficheros, podremos ver sus MD5 y SHA compartidos para que el usuario pueda realizar dicho Checksum tras la descarga.
El algoritmo Checksum
Checksum significará Suma de Comprobación, y se trata de un algoritmo que realiza un hash a un fichero para detectar cambios en su interior. De esta forma se asegura la integridad de su contenido para que sea el mismo desde el origen al destino. Para ello se comprueba si existen diferencias entre la comprobación inicial y final luego de haber transferido los datos.
Un hash o función resumen se trata de un proceso matemático computable mediante el cual se convierte o traduce una serie de elementos de entrada (por ejemplo T) a otra función extracto finita y de longitud fija que será la proyección de ese conjunto (por ejemplo S). Para entenderlo, es como si cogemos un conjunto de datos y lo definimos mediante un valor o código identificativo.
Pues a este valor hash se le llama Suma de Comprobación y se utiliza tanto en ficheros en forma de Checksum Criptográfico, como en las tramas que se transmiten por la red. Pues efectivamente el Checksum junto al CRC serán mecanismos integrados en los paquetes TDP/UDP para detectar errores en la transmisión y así proteger la integridad de los datos. De hecho, nos vendrá bien el ejemplo de redes para ver cómo funciona.
Checksum en redes
Utilizando su uso en redes podremos explicar el funcionamiento del Checksum, el cual interviene en la capa de transporte añadiendo un apartado de 2 Bytes para la detección de errores de la trama TCP/UDP en la capa 4. Ésta se calculará con el segmento completo, es decir, la cabecera de la trama y los datos.
También la capa 3 de red incluye otros dos Bytes de Suma de Verificación para el protocolo IP, pero de una forma más simple al no tener en cuenta los datos para detección de errores. Esto ocurre en IPv4, pues en IPv6 ya no se utiliza al integrarse en la capa de transporte y la de enlace, simplificando así la trama. Finalmente, en la capa 2 de enlace también tenemos Checksum con un total de 4 Bytes reservados a ella.
Entonces, si la suma de comprobación a la llegada de las tramas al destino no coincide con las del origen, significa que, o bien se ha perdido información por el camino, o bien el contenido ha sido modificado. En este caso será cuando el cliente vuelva pedir la transmisión de la información hasta que llegue correctamente.
MD5
El MD5 o Message-Digest 5 consiste en un algoritmo criptográfico de 128 bits que se utiliza normalmente para efectuar comprobaciones de integridad en archivos. Desde archivos comprimidos hasta imágenes ISO, pasando por archivos ejecutables -muy importantes en estos- y por supuesto contenido descargado de la red.
MD5 fue diseñado en el MIT por el profesor Ronald Rivest, después de que fueran demostradas las debilidades de la versión MD4. Como se ve en los ejemplos, utiliza una cadena hexadecimal de 32 símbolos que suman esos 128 bits. Debido a que la explicación de su funcionamiento es compleja, solo debemos quedarnos con que existe un proceso matemático el cual calcula este resultado en función del contenido del fichero.
Gracias a este algoritmo, es posible comparar la Suma de Comprobación o Checksum de un fichero descargado con una Suma MD5 inicial del mismo o publicada por el autor. Para entenderlo, el sistema va a comprar ambas cadenas de 128 bits para que coincidan, de esta forma se demostrará que el fichero no ha sido modificado desde el origen al destino ni durante el proceso, verificando que es fiel a la fuente y por tanto seguro.
El MD5 lo deberíamos ver siempre en ficheros que pretenden demostrar que son seguros, y que están protegidos de infecciones de virus o malware, asegurando que el fichero no ha sido modificado internamente. Es obvio que, si en un fichero se efectúa la más mínima modificación, el MD5 de éste cambiará respecto al que tenía inicialmente.
Otros algoritmos de Checksum de comprobación en ficheros
Nosotros mismos podremos crear la información de integridad MD5 Checksum en nuestros propios ficheros con ayuda de diversas aplicaciones que más adelante veremos. Pero el resultado no solamente será una línea de 128 bits, sino que también se podrán y deberán añadir más algoritmos que refuercen al MD5.
Siguiendo el ejemplo anterior de información de un fichero que hemos generado, encontraremos otros dos algoritmos bastante utilizados como son el SHA y el CRC32 que vamos a explicar ahora mismo.
Algoritmo SHA
SHA o Secure Hash Algorithm es otro algoritmo hash criptográfico de más misma índole que MD5, pero generando un Checksum de entre 160 y 265 bits en función de la versión que se utilice. Así que como podemos intuir, su función será exactamente la misma, comprobar la integridad y seguridad de los ficheros que lo incluyen.
SHA fue creado en 1993, dos años después que MD5, y ha contado con sucesivas versiones para incrementar su seguridad. La primera versión SHA-0 utilizada 160 bits, la misma que SHA-1, siendo uno de los métodos más utilizados actualmente. Pero han aparecido las versiones SHA-2 que aumenta la cadena hasta los 256 bits (SHA-256) y SHA-3 que genera una salida de hasta 512 bits (SHA-512). Cada una de estas versiones cuenta con distintas variantes que a su vez producen distintas longitudes en la salida.
Ejemplos claros del uso de SHA-256 serán los protocolos de red SSH, TLS o SSL los cuales utilizan un hash de 64 caracteres hexadecimales que representan 4 bits, generando así los 256 correspondientes. También es un método bastante popular para generar los Checksum de imágenes ISO y archivos ejecutables en la red, por ejemplo, Microsoft lo utiliza para sus descargables.
CRC-32
Por otro lado, tenemos el algoritmo CRC o Cyclic Redundancy Check, que se puede definir como un código de detección de errores. Es muy utilizado en redes y en dispositivos de almacenamiento, pues seguramente alguna vez hayáis obtenido el típico “error de CRC” al descomprimir un fichero rar.
El objetivo nuevamente será verificar errores en los datos de un fichero, siendo útil precisamente para detectar datos incompletos o mal descargados. Pero por otro lado no se trata de un método de cifrado, y como tal no es adecuado para asegurar que los datos que nos llegan no han sido modificados de forma deliberada.
Aplicaciones para comprobar MD5 Checksum y otros métodos de hash
Una vez hemos visto la teoría, es la hora de ponerla en práctica para qué sirve realmente el MD5 Checksum y los otros métodos que hemos conocido en nuestros ficheros y descargas.
Cabe decir que esto no asegura que el fichero descargado contenga bloatware, por ejemplo, en caso de ejecutables .exe descargados o archivos perjudiciales en su interior, pues la propia fuente puede haberlos integrado desde un origen. En cualquier caso, merece la pena recordar que siempre debemos descargar de fuentes oficiales y confiables.
HashCheck Shell Extension
Se trata de una aplicación sumamente sencilla y como su propio nombre indica, será una mera extensión para nuestro sistema Windows. Tras instalarla, se integra directamente en la ventana de propiedades de cualquier archivo creando un apartado Checksum en él.
Si accedemos a este, nos encontraremos con una lista de hash que incluye CRC-32, MD5 y SHA en sus versiones 1, 256 y 512. Esto quiere decir que la extensión es capaz de generar Checksum para cualquier fichero que creemos. Desde las opciones podremos activar cuantos métodos de hash queramos, así como otros parámetros adicionales.
Justo debajo tendremos una línea en donde introduciremos el Checksum para que el software compruebe su existencia y que sea exactamente igual.
MD5 and SHA Checksum Utility
Esta otra opción es en sí misma una aplicación y como tal tendrá interfaz propia, siempre de descarga y uso gratuito como la anterior. Dispondrá también de una versión de pago con más algoritmos, pero al free ya es suficientemente potente para uso normal. Como requisito necesario necesitamos .Net Framework 3.5 instalado en nuestro Windows.
Así que abrimos el ejecutable descargado y buscaremos el fichero que queremos comprobar o al que deseamos generar su hash. Esta versión es sumamente sencilla de utilizar, aunque la Pro también admite exportar resultados en CSV o TXT, y otro aspecto bastante interesante como es listar todos los hash de los archivos que contenga un directorio.
Hash Online Convert
Otra opción gratuita y que no necesita instalación ni descarga de ninguna aplicación será Hash Online Convert, la cual estará disponible directamente Online. Dispone de una increíble gama de opciones para generar hash de casi cualquier algoritmo, y dispone de muchas más opciones de conversión de ficheros.
Puede hacerlo de múltiples formas distintas, bien subiendo nuestro fichero, introduciendo el texto que deseamos convertir, la URL o seleccionando un archivo desde la nueva, Dropbox o Google Drive.
Conclusiones sobre MD5 Checksum
Con estas dos aplicaciones ciertamente iremos sobrados para crear y comprobar nuestros propios MD5 Checksum y demás hash vistos. Aunque en la red hay una gran cantidad de aplicaciones gratuitas y de pago que harán más o menos el mismo trabajo.
Recordad que en la medida de lo posible, debemos descargar contenido de fuentes fiables y que tenga ciertas comprobaciones de seguridad. Estos algoritmos están creados siempre para nuestro beneficio, y para añadir seguridad e integridad a los datos que circulan por la red. Os dejamos con algunos tutoriales para seguir ampliando conocimientos:
En caso de duda o cualquier problema, ya sabéis que podéis contar con nosotros desde los comentarios o desde el foro de hardware.