Integridade de arquivos

Calculo do hash do arquivo original e comparar com o hash do arquivo baixado.

O cálculo de hashes de arquivos tem sido utilizado desde há muito tempo para verificar se um arquivo está íntegro ou não. O mais famoso deles é o MD5.

Provavelmente já encontrou pela internet quando você estava prestes a baixar o instalador de uma aplicação.

O conceito e simples. Juntamente com o arquivo que será baixado, o fabricante ou desenvolvedor disponibiliza também a representação em texto do hash daquele arquivo.

Depois do download ser concluído, o usuário que baixou o arquivo pode utilizar algum utilitário (online ou programa desktop) para calcular o hash do arquivo baixado e, se ele for idêntico com o hash disponibilizado na hora do download,  significa que o arquivo foi baixado de forma íntegra. Este processo serve para detectarmos que o arquivo não foi modificado maliciosamente no meio do caminho.

Lembrando que uma falha no algoritmo do MD5 descoberta em 2012 fez com que esse tipo de hash fosse descartado para fins de criptografia e integridade. Apesar disso, ele ainda continua sendo muito utilizado.

Por exemplo, se você algum dia precisar baixar o Apache Server, verá que eles ainda disponibilizam o hash MD5 para verificação da integridade dos arquivos.

MD5 foi substituído pelo SHA (SHA-1 e SHA-256).

Independente do algoritmo de hash utilizado, a ideia é sempre a mesma. Em algum lugar junto com o download do arquivo nós temos o seu hash. Uma vez concluído o download, podemos então calcular o hash do arquivo baixado para verificarmos se ele bate com o disponibilizado pela fonte do download. E assim sabemos se o arquivo foi baixado integralmente ou não.

Existem diversas ferramentas que fazem o cálculo do hash de arquivos. Em ambientes Unix, a ferramenta mais conhecida é a hashdeep. Já no Windows, se você quiser uma ferramenta confiável, eu recomendo o Microsoft File Checksum Integrity Verifier. E se você não quiser instalar ferramenta nenhuma, você pode utilizar também o neste site TGB, que faz o cálculo dos hashes via web tendo opção de baixar versão desktop (offline).