Durante mucho tiempo supuse que no es realmente posible descargar un archivo dañado a través de http, siempre y cuando no esté dañado en el servidor y la implementación del protocolo http sea correcta, lo que probablemente sea el caso del software convencional moderno.
Así que siempre me reí entre dientes cuando vi que un sitio de descarga ofrece un hash md5 de un archivo que proporcionan para descargar. No he visto un caso antes, donde descargo un archivo, el tamaño es correcto pero el contenido no lo es.
Bueno, hoy tuve un primer caso de esto. Descargué un iso de Ubuntu, intenté instalarlo, falló y después de una larga investigación (simplemente no podía creer que la razón pudiera ser una descarga corrupta), verifiqué el MD5 y qué sabes, estaba mal (el tamaño era correcto). Así que lo volví a descargar y obtuve otro md5 equivocado. Solo en mi tercera descarga, el md5 era correcto.
Entonces mi pregunta es, ¿es posible, en principio, obtener una descarga corrupta a través de http, suponiendo que la implementación sea correcta, que la transferencia haya finalizado con éxito y que el archivo sea correcto en el servidor. Si esto es posible, ¿cómo puede suceder esto?
Respuestas:
Sí, es posible, especialmente en conexiones de Internet de baja calidad, generalmente inalámbricas, pero algunas conexiones por cable (como la que tengo) también tienen altas tasas de error a altas velocidades.
El protocolo HTTP no tiene disposiciones para garantizar la integridad de los datos. En la capa de transporte, TCP hace que la detección de errores mediante el uso de una suma de comprobación, pero no es muy fiable .
Hay otra razón para proporcionar hashes o firmas digitales. A menudo, los archivos reales se distribuyen en muchos servidores espejo, lo que no puede garantizarse que sea 100% seguro. Si no hay un hash o una firma para verificar, alguien con acceso a un espejo (no necesariamente legítimo) podría reemplazar los archivos y permanecer sin ser detectado, sin tener que ingresar a un servidor completamente diferente donde está alojado el sitio web.
Puede obtener la verificación automática de archivos si descarga Ubuntu a través de BitTorrent en lugar de HTTP. (Cada pieza se verifica en el momento de la descarga, por lo que nunca tendrá que volver a descargarla por completo).
fuente
Como dijo Grawity, es posible, pero además, lo que he notado:
Incluso con conexiones a Internet estables, es posible que una descarga finalice antes de tiempo sin ningún tipo de razón válida: puede suceder.
Y lo más importante, si tiene mala memoria, es posible que la descarga se guarde en la memoria caché antes de escribirse en el disco, y como la memoria es mala, está escribiendo el archivo incorrectamente. Si constantemente tiene malas descargas, esta es una alta posibilidad.
fuente