Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Qué es el CheckSum, Hash, MD5, SHA-1, etc y cómo usarlos...  (Visto 1853 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline MuArcano Posteado: October 03, 2019, 12:30:25 AM | Modificado: October 03, 2019, 01:18:30 AM by ZabiinoOo

  • +3 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 660
  • Gracias recibida: 4145
  • ar
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 artículo para Conocimiento Adictivo 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.

Un ejemplo de cómo luciría la suma MD5 de un fichero sería:
Code: [Select]
Nombre: test.png
MD5: 319b37dc17aa6e512c489883611f723d

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 ampliamente usado como medida de seguridad, pues al igual que el MD5, nos permite comprobar la originalidad e integridad de los 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 (mayor información).

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 del 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:
Code: [Select]
Nombre: test.png
SHA-1: 7586131f354ad0e18938657b033c6d52ebb148eb

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 imágenes ISO o ejecutables EXE.

Otro ejemplo es The Fedora Project, desarrolladores de una distribución linux del mismo nombre, quienes a su vez usan el hash SHA-256 para realizar las comprobaciones de sus imágenes ISO. Como ejemplo mostramos el SHA-256 de la versión 19 de Fedora de 64bit:

Code: [Select]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# The image checksum(s) are generated with sha256sum.
6e7e263e607cfcadc90ea2ef5668aa3945d9eca596485a7a1f8a9f2478cc7084 *Fedora-19-x86_64-DVD.iso
ef9eb28b6343e57de292f2b2147b8e74a2a04050655e0dc959febd69b0d5d030 *Fedora-19-x86_64-netinst.iso

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:
Code: [Select]
Nombre: test.png
CRC-32: 560013d4

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, y CRC32?

Les daré un ejemplo en concreto. En el chat del blog muchas personas nos vienen preguntando luego de descargar la ISO de Windows 7, Windows 8, o Windows 10, comentándonos que por algún motivo no pudieron realizar la instalación del sistema debido a algún "error" inesperado. 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 absolutamente necesario que usted verifique la autenticidad de los archivos que ha descargado, sobre todo si son imágenes 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 has 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 para calcular el hash SHA-1, MD5 y CRC32 de los archivos descargados

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

Descarga:


Instrucciones de uso de HashCheck:
Un video de uso es más fácil de entender así que dejo uno que encontré por YouTube:



Bueno, esta es toda la información que pongo a su disposición por el momento esperando que les sea de utilidad a toda la comunidad TSM y Mu Online en general.


Créditos:

Google
Libros varios
YouTube
@MuArcano por acomodo de la publicación.

(si llegase a saber de alguien más lo pondré)

El saber no ocupa lugar
Analista en Sistemas recibido en ORT
Programador Java, JS, Kotlin.

Offline Flash #1 Posteado: October 03, 2019, 12:36:29 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 244
  • Gracias recibida: 1625
  • uy
che arcano esta muy buena la info q estas dando muchos entenderan este algoritmo ! de por si mañana posteare como incrementar la seguridad y como encryptar archivos lado server y lado cliente para que no sean modificados para que al momento de lanzar su server no se esten editando los user ya que hoy dia se bypasea facil el main.premium y el ah.emu etc etc !


Online ZabiinoOo #2 Posteado: October 03, 2019, 01:20:05 AM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Administrador
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 7.270
  • Gracias recibida: 125174
  • pe
Muy bien descritos estos sistemas de proteccion, esto se complementa con otras medidas de proteccion para el cliente y se puede lograr algo bien seguro
Muevo a la seccion de antihack guia por ser una guia de proteccion




Prohibido pedir soporte via MP
Leer las reglas de cada seccion
we trust god

Gracias:


Offline Peluuca #3 Posteado: October 03, 2019, 01:30:14 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 1.014
  • Gracias recibida: 1161
  • ar
Muy buena guía perro, pa los pibes q recién arrancan y los viejitos tmb va como piña

Gracias:


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
1 Replies
2673 Views
Last post December 23, 2017, 10:37:35 AM
by -Rastaa.TSM☢
0 Replies
776 Views
Last post August 26, 2019, 12:05:42 PM
by Odisk
3 Replies
911 Views
Last post April 01, 2020, 07:06:29 PM
by romariols
0 Replies
676 Views
Last post May 25, 2020, 03:56:31 AM
by Dariox84
0 Replies
352 Views
Last post August 23, 2020, 08:20:26 AM
by Argez