Qué es el CheckSum, Hash, MD5, SHA-1





Sé que muchos usuarios podrían ya conocer de qué se tratan todos estos términos y de las grandes ventajas que resulta el usarlos; otros sin embargo, posiblemente sólo leyeron brevemente por algún sitio o alguien se los comentó rápidamente pero no tienen una noción sólida de lo útil que son estos conceptos. Por ello, en esta ocasión vamos a dar un repaso a lo que significa CheckSum, Hash, MD5, SHA-1, CRC-32, y su utilidad en algo que hacemos a diario: Descargar archivos, de manera que tengamos un punto más a favor de nuestra seguridad al comprobar la integridad de nuestras descargas.

Mi punto en este post no es mostrar el algoritmo usado o cómo generar la función hash porque de eso ya hay mucha información, lo único que deseo mostrar es cómo darle uso a esta herramienta en una de las actividades propias del más común de los usuarios: el descargar archivos. En otras palabras, deseo mostrarles cómo usar la herramienta, no cómo construirla. Aclarado esto, veamos algunos conceptos usuales.




El CheckSum


 Cuando hablamos de CheckSum o Suma de Verificación nos estamos refiriendo a una función hash computable mediante un algoritmo cuyo propósito principal es detectar cambios en una secuencia de datos (archivos) para proteger la integridad de estos, comprobando así que no haya diferencias entre los valores obtenidos al hacer una comprobación inicial y otra final luego de haber compartido dichos datos; es decir, es usado para verificar que un archivo compartido a un usuario es idéntico bit a bit al publicado en su fuente original.

 Imagina que queremos almacenar o compartir información con alguien, pero a la vez queremos protegernos frente a errores inesperados en el almacenamiento o transmisión de esta información, en aquellas situaciones resulta útil acompañar a los datos de sus respectivos valores hash obtenidos a partir de ellos aplicando funciones hash con ciertas propiedades de forma que puedan ser usados para verificar (hasta cierto punto) el propio dato compartido. Precisamente al valor hash se le llama Suma de verificación o CheckSum.

 El CheckSum es muy usado por empresas desarrolladoras de software ya que permite comprobar la integridad de los contenidos que ofrecen. Por ejemplo, cuando se distribuye un contenido por la red (una imagen ISO, IMG, un archivo RAR, un ejecutable EXE, etc), y se quiere estar seguro de que lo que le llega al usuario/cliente es lo que se está emitiendo, se proporciona un valor hash del contenido de forma que ese valor tiene que obtenerse al aplicar la función hash sobre el contenido distribuido asegurando así la integridad. En este caso el CheckSum recibe el nombre de CheckSum Criptográfico debido a que es un checksum que requiere el uso de funciones hash criptográficas para que sea difícil generar otros ficheros falsos que tengan el mismo valor hash.

 Otro ejemplo de uso de estos conceptos para verificar la integridad es calcular y guardar el valor hash de archivos para poder verificar posteriormente que nadie los ha modificado, y cuando hablamos de haberlo modificado me refiero a insertar código malicioso como malware, adware, troyanos o virus. Esto último es lo nos puede resultar más interesante ya que está involucrado directamente con lo que deseamos evitar, y es que nadie quiere descargar un fichero o archivo y que al final resulte no ser el archivo prometido sino un tipo de amenaza a nuestros equipos.




El Message-Digest Algorithm 5 o MD5







Message-Digest 5 (MD5) es un algoritmo criptográfico de 128 bits ampliamente difundido, el cual puede ser usado, entre otras cosas, para realizar la comprobación de la integridad de archivos como son binarios EXE, imágenes ISO o cualquier otro tipo de fichero descargados desde alguna fuente de Internet de manera que nos proporcione la seguridad de que el archivo descargado no se ha alterado o modificado por terceros.

Comparando una Suma MD5 publicada con la Suma de Comprobación del archivo descargado, un usuario puede tener la confianza suficiente de que el archivo es igual al publicado por los desarrolladores. Esto protege al usuario contra malware y virus en general ya que algún otro usuario malicioso podría incluir ese tipo de software modificando el archivo original.

Otro de los puntos importantes es que la comprobación de un archivo descargado contra su suma MD5 no detecta solamente los archivos alterados de una manera maliciosa, sino que también reconoce una descarga corrupta o incompleta como la descarga de una imagen ISO de un sistema operativo, así podremos comprobar que no tengan errores entre sus archivos antes de grabarlos a un DVD o pasarlas a un USB.


Muchos desarrolladores de distribuciones linux comparten sus imágenes ISO de instalación acompañado de su respectivo MD5 para que el usuario sea capaz de comprobar la integridad del archivo.








El Secure Hash Algorithm o SHA








El SHA o Secure Hash Algorithm es un sistema de funciones hash criptográficas que producen una salida resumen de 160 bits y que es ámpliamente usado como medida de seguridad pues, al igual que el MD5, nos permite comprobar la originalidad e integridad de de archivos descargados. Pero además es uno de los algoritmos más usados para guardar de manera encriptada datos muy sensibles como contraseñas, así como en el proceso de firmar digitalmente diferentes documentos


Como dato histórico, el primer miembro de la familia fue oficialmente llamado SHA, publicado en 1993. Sin embargo, hoy en día, no oficialmente se le llama SHA-0 para evitar confusiones con sus sucesores. Dos años más tarde el primer sucesor de SHA fue publicado con el nombre de SHA-1, que actualmente es uno de los más usados al distribuir software. También existen cuatro variantes más que se han publicado desde entonces con algunas otras diferencias: SHA-224, SHA-256, SHA-384, y SHA-512 (llamándose SHA-2 a todos ellos).




Microsoft es una de las empresas que más usan el hash SHA-1 para facilitar que los usuarios puedan comprobar la originalidad e integridad de sus productos distribuidos en imagenes ISO o ejecutables EXE. Por ejemplo la siguiente imágen que corresponde al reciente Windows 8.1 Preview:







El Cyclic Redundancy Check 32 o CRC32








Se trata de un código de detección de errores usado frecuentemente en redes digitales y en dispositivos de almacenamiento cuyo propósito principal es comprobar o detectar cambios accidentales en los datos o alteración de los mismos.

Como se ha mencionado, es útil para detección de errores, pero, en condiciones de seguridad, no podemos confiar en que el CRC puede verificar plenamente que los datos son los correctos en caso de que se hayan producido cambios deliberados y no aleatorios.

A menudo se piensa que si, cuando llega un mensaje, éste y su CRC coinciden, quiere decir que el mensaje no ha podido ser alterado durante su transmisión. Esta suposición es falsa porque CRC es un mal método de cifrado de datos. De hecho, el CRC no se trata realmente de un método de cifrado, lo que realmente hace es utilizarse para el control de integridad de datos, pero en algunos casos se supone que se utilizarán para el cifrado.

Notemos que el CRC es un valor numérico que se calcula usando los datos originales de forma que este valor está fuertemente ligado precisamente a estos datos, por tanto si los datos cambian entonces el valor del CRC también cambia.




WinRAR, el popular programa compresor y descompresor de datos, usa el CRC32 para comprobar archivos. Cuando WinRAR descomprime un fichero vuelve a calcular su CRC y lo compara con el CRC de los datos originales almacenado en el archivo RAR. Si los valores calculados son diferentes entonces los datos también son diferentes y el fichero extraído no es idéntico al fichero original obteniéndose en esos casos un mensaje común como "Error de CRC" que significa que el archivo está dañado, o, si está protegido con contraseña, que la contraseña usada es incorrecta.


Y con todo esto, ¿Por qué sería necesario calcular el MD5, SHA-1, CRC32, etc?

Les daré un ejemplo en concreto.  muchas personas se preguntan luego de descargar la ISO de Windows 7 o Windows 8, que por algún motivo no pudieron hacer que la instalación se llevara a cabo bajo ninguna posibilidad. Es allí cuando les decimos de primera "¿Verificaste el hash justo después de descargar? ¿cierto?", y la respuesta común que conseguimos es "No, ¿qué es eso?"

Es aquí donde viene la importancia de este post, pues considero absolútamente necesario que usted verifique la autenticidad de los archivos que ha descargado, sobre todo si son imagenes ISO de sistemas operativos que acaba de descargar. Si lo hace, confirmará que NO ha sido modificado por terceras personas, que está limpio de spyware y virus, y que está libre de corrupción o de cualquier error de transferencia (incompleto por errores en la descarga).

La comprobación del hash es el único medio seguro por el cual puedes comprobar que tu descarga es exactamente igual (bit a bit) al archivo proporcionado por su fuente original, pues el método de que "si el peso es el mismo, entonces es correcto" no es siempre suficiente.

¿Y que pasaría si al intentar comprobar el hash no coincide?

Hay dos posibilidades: (1) El archivo que haz descargado funcionará pero no como debería (esto dependerá de qué tan importante es aquella parte corrupta) o (2) El archivo simplemente no abrirá, no se ejecutará, o no se podrá grabar; es decir, es inservible.

En ambos casos la sugerencia general es volver a conseguir el archivo de su fuente original, es decir, volver a descargarlo.




Herramienta que puedes usar para calcular el hash SHA-1, MD5 y CRC32 de los archivos que descargues

 Para obtener este tipo de datos existen muchas aplicaciones; sin embargo, la que veremos en esta ocasión es Hashcheck, una pequeñísima aplicación que cumple muy bien su objetivo a la hora de conocer estos datos para cualquier tipo de archivos.

HashCheck Shell Extension hace que sea fácil y rápido para cualquiera el poder calcular y verificar sumas de comprobación (CheckSums) y hashes desde el propio Explorador de Windows, para ello integra la funcionalidad de la suma de comprobación de archivos en la opción de Propiedades de cualquier archivo. Además HashCheck es capaz de crear y verificar archivos SFV y otros tipos de archivos de control, como los archivos .Md5






Instrucciones de uso de HashCheck




Qué es el CheckSum, Hash, MD5, SHA-1
20 Puntos Score: 5/10
Visitas: 1329 Favoritos: 7
Ver los usuarios que votaron...
8 Comentarios Qué es el CheckSum, Hash, MD5, SHA-1
muy buena info  
Buena info  
Te felicito muy facil de comprender no lo sabia ahora estoy mas que claro gracias  
copado que les sirva  
vale por la info  
buena bro .... que buena inf0
Excelente, justo estaba buscando una extencion para comprobar el hash  
Te daria puntos pero soy novato  
@Zoro248 gracias x el comentario pero yo no posteo x puntos si no por compartir  
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!