Os sites que fornecem arquivos ISO para download geralmente fornecem as somas de verificação md5 desses arquivos, que podemos usar para confirmar que o arquivo foi baixado corretamente e que não foi corrompido.
Por que isso é necessário? Certamente, as propriedades de correção de erros do TCP são suficientes. Se um pacote não for recebido corretamente, ele será retransmitido. A própria natureza de uma conexão TCP / IP não garante a integridade dos dados?
Respostas:
Como já foi observado por outros, existem muitas possibilidades de corrupção de dados em que qualquer soma de verificação na camada de transporte não pode ajudar, como corrupção ocorrendo antes do cálculo da soma de verificação no lado do envio, um MITM interceptando e modificando o fluxo (dados também como somas de verificação), corrupção ocorrendo após a validação da soma de verificação na extremidade receptora etc.
Se desconsiderarmos todas essas outras possibilidades e focarmos nas especificidades da própria soma de verificação TCP e no que ela realmente faz em termos de validação da integridade dos dados, verifica-se que as propriedades dessa soma de verificação não são de todo abrangentes em termos de detecção de erros. A maneira como esse algoritmo de soma de verificação foi escolhido reflete a necessidade de velocidade em combinação com o período (final da década de 1970).
É assim que a soma de verificação TCP é calculada:
Isso significa que qualquer corrupção que seja equilibrada ao somar os dados dessa maneira não será detectada. Há uma série de categorias de corrupção nos dados que isso permitirá, mas apenas como um exemplo trivial: alterar a ordem das palavras de 16 bits sempre passará despercebido.
Na prática, ele captura muitos erros típicos, mas não garante a integridade. Também é ajudado pelo modo como a camada L2 também faz verificações de integridade (por exemplo, CRC32 de quadros Ethernet), embora apenas para a transmissão no link local, e muitos casos de dados corrompidos nunca são passados para a pilha TCP.
A validação dos dados usando um hash forte, ou preferencialmente uma assinatura criptográfica, é em um nível totalmente diferente em termos de garantia da integridade dos dados. Os dois mal podem ser comparados.
fonte
Provavelmente há um zilhão de razões pelas quais se deve verificar o md5sum, mas algumas vêm à minha mente:
E leva apenas alguns segundos de qualquer maneira.
fonte
O TCP / IP garante a integridade dos dados *. Mas não garante que 100% de um arquivo tenha sido baixado. Pode haver muitas razões pelas quais isso pode acontecer. Por exemplo: É possível que você possa montar uma ISO que perca um ou dois bytes em algum lugar no meio. Você não terá problemas com isso até precisar de um ou dois arquivos específicos que estão corrompidos. A comparação de somas de verificação garante que você realmente baixou o arquivo inteiro.
* ver comentário
fonte
A soma de verificação TCP é de apenas 16 bits. Isso significa que, na ausência de outras somas de verificação, um em cada 65536 pacotes corrompidos será aceito como não corrompido. Se, por exemplo, você estava baixando uma imagem de DVD de 8 GB em um link barulhento com uma taxa de corrupção de 1%, esperaria 81 pacotes corrompidos indetectáveis.
MD5 é uma soma de verificação muito maior, em 128 bits. As chances desses 81 pacotes produzirem algo com a mesma soma de verificação que o original são de cerca de 1 em 1.000.000.000.000.000.000.000.000.000.000.000.000.
fonte
Há vários motivos para verificar a soma de verificação de um arquivo baixado via HTTP:
1 fontes no comentário porque lol rep
fonte
Daniel, Dependendo da ferramenta que você está usando para o Download ISO, por exemplo. Se for Say Firefox .. Pode mostrar o download do arquivo. No entanto, você pode não ter o ISO completo intacto. Se você o queimar e tentar usá-lo, pode haver informações ausentes. Isso acontece de tempos em tempos em diferentes servidores da web que hospedam arquivos.
É uma boa prática comparar pelo menos o tamanho do arquivo (total de bytes ou bits) para garantir que correspondam. O Windows mostrará a contagem de bytes de arquivo diferente e, em seguida, diga Linux. A verificação de soma MD5 mostrará os mesmos valores, independentemente do sistema operacional usado. Espero que isso ajude um pouco. Felicidades...
fonte
Percebo muitas respostas interessantes, mas há uma última coisa a considerar: Problema de dois generais
O problema dos dois generais e o problema dos generais bizantinos consideram especificamente as implicações de transferir informações de maneira confiável por canais não confiáveis.
As somas de verificação são apenas mais uma camada de "confiabilidade crescente" e uma com poucas chances de falha. Esta é a razão pela qual é tão popular.
fonte