Jump to content

Generador y Verificador de checksums de archivos 3.0


geodasoft

Recommended Posts

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 el checksum MD5 publicada con el checksum 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.
Un ejemplo de cómo luciría la suma MD5 de un fichero sería:

a37af09f728117b8970ffb3497f41cbc


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).

Un ejemplo de cómo luciría el hash SHA-1 de un fichero sería:
aa1261487b5cb4d9818cf2a6589836d9d69ee1b5

Un ejemplo de cómo luciría el hash SHA-256 de un fichero sería:
b2e2285413aa7f4fad8d82d5f9d93bb1d555eb4269c1d10430b5d2015a32008d


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.
Un ejemplo de cómo luciría el CRC32 de un fichero sería:
3a4a860b

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.

¿Por qué sería necesario calcular el MD5, SHA-1, SHA-256 y CRC32?


Yo considero absolútamente necesario que usted verifique la autenticidad de los archivos que ha descargado. 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 solución es volver a descargarlo.
 

CHANGELOG:

Cambios en la versión 3.0 del programa actualizador:
 

  • Se puso un instalador y añade opciones al menu contextual.
  • Permite generar checksums de todos los archivos ubicados dentro de una carpeta. No busca dentro de subcarpetas.


Cambios en la versión 2.0 del programa actualizador:
 

  • Ahora permite tambien generar y comparar el checksum de los archivos.

Testeado en Windows XP, 7 , 8, 8.1 y 10 de 32 y 64 bits.

El programa no trae virus... aunque algunos antivirus digan lo contrario...

gracias a  NeoACL

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...