Checksum: como verificar a integridade de um arquivo

Verificar integridade de um arquivo

Para verificar a integridade de um arquivo, um método bem famoso e utilizado é por soma de verificação por hash (checksum). Não é necessário saber os detalhes da implementação se você não é um desenvolvedor que queira criar um sistema de verificação. A única coisa que precisa saber é como fazer a verificação e saber se falhou ou teve êxito, que é tão simples quanto ver se um número é igual ao outro.

Para que serve?

Resumidamente, serve para verificar se está tudo certo com o arquivo. Caso a soma seja diferente, é provável que esteja corrompido ou não seja realmente aquele o arquivo.

Imagine que você faz o download de:

  • Um sistema operacional e após tentar instalar, após muitas tentativas e quando finalmente pensa em tentar baixar tudo de novo e refazer a instalação, percebe que o problema era meramente o arquivo incompleto ou corrompido.
  • Um programa e na hora da instalação vê que ele é, na verdade, de uma versão diferente do que se esperava.
  • Um driver ou firmware que dependendo do caso poderia quebrar o seu sistema ou instalar uma versão antiga ou diferente.

Todos esses casos poderiam ser evitados com uma simples verificação.

Como verificar?

Quando o site especifica a soma correta de checksum no site, sendo MD5 ou SHA, utilizamos algum software para fazer a verificação. Assim evitamos ao máximo utilizar um arquivo que esteja corrompido ou incorreto antes de prosseguir com a sua execução.

A verificação é somente ver se a sequência de caracteres que foi gerado é igual ao que foi esperado. Por exemplo:

No site diz:

Checksum "asus.tar"
md5: 319cb4c77b4faa0a516e7c3109930c54
sha256: 061fef238c496ea97173313f2a0ae832cc337284f55d8ec038ec9fbcd0bb3006Code language: JavaScript (javascript)

Quer dizer que a soma md5 precisa ser igual a “319cb4c77b4faa0a516e7c3109930c54” e/ou a soma sha256 precisa ser igual a “061fef238c496ea97173313f2a0ae832cc337284f55d8ec038ec9fbcd0bb3006”, caso seja, o arquivo está correto.

Alguns sites também disponibilizam um arquivo com as somas de verificação, como o download do Linux Mint, que usa um arquivo “sha256sum.txt” (checksum) e um “sha256sum.txt.gpg” (para verificar a autenticidade).

Através do terminal

Caso esteja no Linux, é bem fácil usando o terminal, que provavelmente já tem a ferramenta. Para isso, entre no diretório do arquivo, certifique-se do arquivo de verificação estar no mesmo diretório do arquivo que será verificado, então digite:

Algoritmo MD5:

# O resultado será algo parecido com "70b8aa64d280626dee711b58c445ba89  nomedoarquivo.extensão"
# Esta sequência de números e letras é a soma de verificação usando este algoritmo. Basta ver se é a mesma que a fornecida.

md5sum nomedoarquivo.extensão

# Para usar um arquivo que compara a soma use "-c" de "check". Use md5sum --help para saber mais.
# Neste caso ele diria se foi bem-sucedido (a soma bate com o arquivo) ou falhou (a soma está diferente).

md5sum -c arquivodeverificação.md5Code language: PHP (php)

Algoritmo SHA:

Basicamente a mesma coisa que o MD5, só muda para o algoritmo SHA.

sha256sum -c nomearquivodeverificação.sha256Code language: CSS (css)

No caso acima foi utilizado o SHA-256, o site vai especificar, então não se preocupe. Qualquer dos SHA que for, basta alterar o número após o “sha”. Por exemplo: “sha1sum”, “sha224sum”, “sha256sum”, “sha384sum”, “sha512sum”, etc. Note também que o arquivo de verificação não importa a extensão, pode ser até “.txt”, mas precisa ser exatamente o arquivo de verificação que você baixou.

Anatomia de uma arquivo de verificação

Exemplo de um arquivo de verificação SHA256 do Linux Mint:

ccf482436df954c0ad6d41123a49fde79352ca71f7a684a97d5e0a0c39d7f39f *linuxmint-22.1-cinnamon-64bit.iso
d286306d0f40bd7268f08c523ece5fba87c0369a27a72465a19447e3606c5fa0 *linuxmint-22.1-mate-64bit.iso
6451496af35e6855ffe1454f061993ea9cb884d2b4bc8bf17e7d5925ae2ae86d *linuxmint-22.1-xfce-64bit.isoCode language: CSS (css)

Note que há um hash (uma sequência de números e letras que foram gerados) e do lado é quais arquivos serão comparados.

Interface gráfica

Através do gerenciador de arquivos de sua distribuição linux, como no meu caso, o Dolphin, clicando com o botão direito do mouse e em “Soma de verficação” é possível colar o checksum e testar por ali mesmo.

Obs: Caso não faça ideia como entrar no diretório do arquivo, ou seja, navegar em diretórios no terminal, sugiro que leia o Guia de Sobrevivência para Linux e Terminal.

Curiosidades

  • MD5 e SHA-256 são algoritmos de hash usados para criptografia e verificação.
  • Há características que determinam o que é uma função hash, como ser determinística, resistente a colisão, resistente a reversão, entre outras. Experimente pesquisar por “Principais características de funções hash”, essas funções são pilares fundamentais da segurança da informação.
  • MD5 é um algoritmo feito para ser computacionalmente eficiente e rápido, o que é perfeito para comparar arquivos, por exemplo, mas péssimo para senhas, pois é mais rápido de quebrar por ataque de força bruta.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Índice