Los sitios web que suministran archivos ISO para descargar a menudo dan las sumas de verificación md5 de esos archivos, que podemos usar para confirmar que el archivo se descargó correctamente y no se ha dañado.
¿Por qué es esto necesario? Seguramente las propiedades de corrección de errores de TCP son suficientes. Si un paquete no se recibe correctamente, se retransmitirá. ¿La naturaleza misma de una conexión TCP / IP no garantiza la integridad de los datos?
Respuestas:
Como han señalado otros, hay muchas posibilidades de corrupción de datos donde cualquier suma de verificación en la capa de transporte no puede ayudar, como la corrupción que ya ocurre antes de que la suma de verificación se calcule en el lado emisor, un MITM que intercepta y modifica la secuencia (datos también como sumas de verificación), corrupción que ocurre después de validar la suma de verificación en el extremo receptor, etc.
Si ignoramos todas estas otras posibilidades y nos centramos en los detalles de la suma de verificación TCP en sí y lo que realmente hace en términos de validación de la integridad de los datos, resulta que las propiedades de esta suma de verificación no son del todo completas en términos de detección de errores. La forma en que se eligió este algoritmo de suma de verificación refleja más bien el requisito de velocidad en combinación con el período de tiempo (finales de los 70).
Así es como se calcula la suma de verificación TCP :
Esto significa que cualquier corrupción que se equilibre al sumar los datos de esta manera no se detectará. Hay una serie de categorías de corrupción en los datos que esto permitirá, pero solo como un ejemplo trivial: cambiar el orden de las palabras de 16 bits siempre pasará desapercibido.
En la práctica, detecta muchos errores típicos pero no garantiza en absoluto la integridad. También ayuda la forma en que la capa L2 también realiza comprobaciones de integridad (por ejemplo, CRC32 de tramas Ethernet), aunque solo para la transmisión en el enlace local, y muchos casos de datos corruptos ni siquiera pasan a la pila TCP.
Validar los datos utilizando un hash fuerte, o preferiblemente una firma criptográfica, se encuentra en un nivel completamente diferente en términos de garantizar la integridad de los datos. Los dos apenas se pueden comparar.
fuente
Probablemente haya un montón de razones por las que uno debería verificar el md5sum, pero algunas me vienen a la mente:
Y solo toma unos segundos de todos modos.
fuente
TCP / IP garantiza la integridad de los datos *. Pero no garantiza que se haya descargado el 100% de un archivo. Puede haber muchas razones por las cuales esto podría suceder. Por ejemplo: es posible que pueda montar un ISO que pierde uno o dos bytes en algún lugar en el medio. No tendrá ningún problema hasta que necesite uno o dos archivos particulares que estén corruptos. La comparación de sumas de verificación garantiza que realmente descargó todo el archivo.
* Ver comentario
fuente
La suma de comprobación TCP es de solo 16 bits. Esto significa que, en ausencia de otras sumas de verificación, uno de cada 65536 paquetes dañados se aceptará como no dañado. Si, por ejemplo, estuviera descargando una imagen de DVD de 8GB a través de un enlace ruidoso con una tasa de corrupción del 1%, esperaría 81 paquetes corruptos indetectable.
MD5 es una suma de verificación mucho más grande, de 128 bits. Las probabilidades de que esos 81 paquetes produzcan algo con la misma suma de verificación que el original son aproximadamente 1 en 1,000,000,000,000,000,000,000,000,000,000,000.
fuente
Hay varias razones para verificar la suma de verificación de un archivo descargado a través de HTTP:
1 fuentes en comentario porque lol rep
fuente
Daniel, Dependiendo de la herramienta que esté utilizando para la descarga ISO por decir. Si es Say Firefox .. Puede mostrar la descarga del archivo. Sin embargo, es posible que no tenga el ISO completo intacto. Si lo quema, intente usarlo, puede faltar información. Esto sucede de vez en cuando en diferentes servidores web que alojan archivos.
Es una buena práctica comparar al menos el tamaño del archivo (bytes o bits totales) para asegurarse de que coincidan. Windows mostrará el conteo de bytes de archivo diferente y luego dirá Linux. La verificación de suma MD5 mostrará los mismos valores sin importar qué sistema operativo se utilice. Espero que esto ayude un poco. Salud...
fuente
Noto muchas respuestas interesantes, pero hay una última cosa a considerar: el problema de dos generales
El problema de los dos generales y el problema de los generales bizantinos consideran específicamente las implicaciones de transferir información de manera confiable a través de canales poco confiables.
Las sumas de verificación son solo otra capa de "mayor confiabilidad", y una con muy pocas posibilidades de falla. Esta es la razón por la que es tan popular.
fuente