MD5 e checksum SHA1 usa para baixar

8

Percebo que, ao fazer o download de muitas ferramentas de software livre (Eclipse, etc.), há links para as somas de verificação MD5 e SHA1, e não sei quais eram ou qual era o propósito delas.

Eu sei que estes são algoritmos hash, e eu entendo hashing, então meu único palpite é que eles são usados para fazer hash de algum componente dos destinos de download e para compará-los com sequências hash "oficiais" armazenadas no servidor. Talvez assim seja possível determinar se os alvos foram ou não modificados de sua versão correta (por motivos de segurança e outros).

Estou próximo ou completamente errado e, se estiver errado, o que são eles?!?!

Obrigado!

    
por Zac 02.01.2011 / 16:06

2 respostas

11

Você está quase completamente certo. A única correção é que eles são hashes do arquivo inteiro.

Às vezes, os arquivos podem ser corrompidos durante o download da maneira que for usada para transferi-los. Hashes estão lá para se certificar de que o arquivo está intacto. Isso é especialmente útil para usuários com conexões ruins com a Internet. Quando eu usava o fax modem, muitas vezes eu tive problemas com downloads corruptos.

Alguns gerenciadores de download (como o GetRight, se bem me lembro) podem calcular automaticamente o hash do arquivo e compará-lo ao valor conhecido.

Outro ponto interessante é a segurança. Um possível problema com as ferramentas de código aberto é o quanto você pode confiar no distribuidor. Muitas vezes, programas como o Eclipse são a principal ferramenta usada pelas empresas de software e, portanto, é extremamente importante para eles passarem do desenvolvedor para o usuário intacto. Como os programas são de código aberto, é possível, por exemplo, fazer com que a versão infectada pareça normal, mas vazar código fonte para algum servidor remoto ou infectar programas feitos pelo software com um vírus (acho que isso aconteceu com alguma versão do Delphi) ou algo similar. Por essa razão, é importante ter o hash oficial correto, que pode ser usado para verificar se o arquivo distribuído é o que se diz ser.

Algumas reflexões sobre os canais de distribuição. Muitas vezes software livre pode ser encontrado em grande quantidade de sites e sites mais populares como o SourceForge, por exemplo, têm grande número de espelhos. Digamos que haja um servidor no Barland que espelhe um grande site de distribuição de software. FooSoft usa o programa distribuído pelo site e eles estão na República de Baz, que fica ao lado de Barland. Se alguém quisesse se infiltrar na FooSoft, ele poderia modificar apenas a cópia no espelho Barland e esperar que o software de geolocalização garantisse que a FooSoft obtivesse as versões modificadas. Como as versões de outros espelhos são boas, as chances são menores de que o malware seja detectado. Você também pode fazer com que o malware detecte o endereço IP do computador e ative somente se for de um determinado intervalo, diminuindo assim as chances de descoberta e assim por diante.

    
por 02.01.2011 / 16:10
1

MD5 e SHA1 não são apenas somas de verificação. Eles são checksums criptográficos. Isso significa que, em teoria, dois arquivos diferentes podem ter o mesmo checksum, mas a probabilidade disso é muito pequena, quase 0. Como conseqüência, você usa o contrário: checksums diferentes significam que você obtém conteúdo diferente com uma probabilidade de quase 1. Então checksums criptográficos são usados para detectar mudanças nos arquivos. Estas podem ser alterações maliciosas feitas de propósito ou apenas erros que aconteceram durante os downloads.

    
por 02.01.2011 / 18:47

Tags