Se puede proporcionar una suma de comprobación por los siguientes motivos:
- para validar que la descarga está completa;
- para validar que está viendo la descarga correcta (más adelante);
- para asegurarse de que un servicio de descarga de terceros (proxy, torrent, etc.) le proporcione una descarga válida.
HTTPS lo ayuda con dos cosas: para asegurarse de que se conecta al servidor correcto en primer lugar y para proporcionar seguridad de transporte.
La suma de comprobación no lo ayudará si un atacante se hace pasar por un servidor, por lo que HTTPS puede proporcionarle seguridad adicional. Además, lo protege contra un atacante que cambia los datos en tránsito.
TCP ya suma de comprobación. Las posibilidades de que un paquete se dañe durante el transporte son insignificantes para conexiones estables. Yo diría que no se requiere HTTPS ni un hash seguro para detectar paquetes dañados.
Con respecto a 1 : por lo general, un navegador o cliente HTTP ya usa un archivo temporal mientras se descarga. Si solo se descarga directamente o si el traslado al nombre del archivo real se detiene prematuramente, un hash puede mostrarle que los datos no están completamente copiados.
Con respecto a 2 : las sumas de comprobación fueron muy útiles para conexiones lentas. Ahora, para programas más pequeños, solo descargo de nuevo a veces Sin embargo, debe reconocer que las descargas cuestan dinero para la persona que presta el servicio. Si puede evitar una descarga validando una suma de comprobación, hágalo.
También podría protegerlo contra proveedores de servicios que solo ofrecen setup.exe
como descarga, aunque es poco probable que organizaciones como esa (¡en lo que respecta a Microsoft!) proporcionen cualquier tipo de suma de comprobación.
Con respecto a 3 : si las sumas de verificación se proporcionan en el sitio original (generalmente lo son), puede usarlas para verificar si el software que descargó de un sitio espejo puede ser confiable. Si el espejo no está actualizado, ha cometido un error al copiar los archivos o si está pirateado, el MD5 le dirá si el archivo que acaba de descargar es correcto o no.
Esto funciona incluso si el hash es MD5, ya que los ataques en MD5 requieren un hash precalculado.
Esta es probablemente la razón por la que sitios como GitHub no proporcionan sumas de comprobación; Si la descarga no está reflejada, hay menos necesidad de proporcionar una suma de comprobación
Notas:
- la verificación de un hash puede ser demasiado trabajo para los consumidores, por lo tanto, los muchos instaladores que realizan la descarga y la suma de comprobación por sí mismos (probablemente utilizando un espejo)
- un hash no es una firma: si el sitio original es hackeado, entonces no tienes suerte