É possível obter o download corrompido com http?

11
Por muito tempo eu assumi que não é realmente possível baixar um arquivo corrompido via http, desde que ele não esteja corrompido no servidor e a implementação do protocolo http esteja correta, o que é mais provável que seja o caso do mainstream moderno software.

Eu sempre ri quando vi um site de download oferecer um hash md5 de um arquivo que eles fornecem para download. Eu não vi um caso antes, onde eu baixei um arquivo, o tamanho está correto, mas o conteúdo não é.

Bem, hoje eu tive um primeiro caso disso. Eu baixei uma iso do Ubuntu, tentei instalá-lo, ele falhou e depois de uma longa pesquisa (eu simplesmente não podia acreditar que o motivo poderia ser um download corrompido) eu verifiquei o MD5 e o que você sabe, ele estava errado (tamanho era corrigir). Então eu baixei novamente e peguei outro MD5 errado. Apenas no meu terceiro download, o md5 estava correto.

Então, minha pergunta é: é possível, em princípio, obter o download corrompido sobre http, supondo que a implementação esteja correta, que a transferência tenha sido concluída com êxito e que o arquivo esteja correto no servidor. Se isso é possível, então como isso pode acontecer?

    
por Andrew Savinykh 14.05.2011 / 09:45

2 respostas

9

Sim, é possível, especialmente em conexões de Internet de baixa qualidade - geralmente sem fio, mas algumas conexões com fio (como a que eu tenho) também têm altas taxas de erro em altas velocidades.

O protocolo HTTP não possui disposições para garantir a integridade dos dados. Na camada de transporte, TCP faz ter detecção de erro usando uma soma de verificação, mas não é muito confiável .

Existe outro motivo para fornecer hashes ou assinaturas digitais. Geralmente, os arquivos reais são distribuídos por muitos servidores espelho, o que não pode ser garantido como 100% seguro. Se não houver hash ou assinatura para verificar, alguém com acesso a um espelho (não necessariamente legítimo) pode substituir os arquivos e permanecer sem ser detectado, sem ter que invadir um servidor completamente diferente onde o site está hospedado.

Você pode obter a verificação automática de arquivos, se você baixar o Ubuntu através do BitTorrent ao invés do HTTP. (Cada peça é verificada no momento do download, para que você nunca tenha que baixar novamente a coisa toda.)

    
por 14.05.2011 / 16:33
1

Como Grawity disse, é possível, mas além disso, o que tenho notado:

Mesmo com conexões de internet estáveis, é possível que um download termine logo, sem qualquer tipo de motivo válido - isso pode acontecer.

E o mais importante, se você tiver memória ruim, é possível que o download armazene em cache na memória antes de ser gravado no disco e, como a memória está ruim, está gravando o arquivo incorretamente. Se você constantemente tem downloads ruins, essa é uma alta posibilidade.

    
por 14.05.2011 / 16:37

Tags