O que são hashes MD5, SHA-1 e SHA-256 e como faço para verificá-los?

Às vezes, você verá hashes MD5, SHA-1 ou SHA-256 exibidos ao lado de downloads durante suas viagens pela Internet, mas sem realmente saber o que são. Essas sequências de texto aparentemente aleatórias permitem que você verifique se os arquivos baixados não estão corrompidos ou adulterados. Você pode fazer isso com os comandos integrados ao Windows, macOS e Linux.

Como os hashes funcionam e como são usados ​​para verificação de dados

Hashes são produtos de algoritmos criptográficos  projetados para produzir uma sequência de caracteres. Freqüentemente, essas strings têm um comprimento fixo, independentemente do tamanho dos dados de entrada. Dê uma olhada no gráfico acima e você verá que “Raposa” e “A raposa vermelha salta sobre o cachorro azul” produzem o mesmo comprimento de saída.

Agora compare o segundo exemplo no gráfico com o terceiro, quarto e quinto. Você verá que, apesar de uma alteração muito pequena nos dados de entrada, os hashes resultantes são todos muito diferentes uns dos outros. Mesmo que alguém modifique uma parte muito pequena dos dados de entrada, o hash mudará drasticamente.

MD5, SHA-1 e SHA-256 são funções hash diferentes. Os criadores de software geralmente baixam um arquivo – como um arquivo .iso do Linux ou até mesmo um arquivo .exe do Windows – e o executam por meio de uma função hash. Em seguida, eles oferecem uma lista oficial dos hashes em seus sites.

Dessa forma, você pode baixar o arquivo e, em seguida, executar a função hash para confirmar se você possui o arquivo original real e se ele não foi corrompido durante o processo de download. Como vimos acima, mesmo uma pequena alteração no arquivo alterará drasticamente o hash.

Recomendado:  Como consertar problemas do PS4 reconstruindo o banco de dados do PS4

Eles também podem ser úteis se você tiver um arquivo obtido de uma fonte não oficial e quiser confirmar se ele é legítimo. Digamos que você tenha um arquivo .ISO do Linux obtido de algum lugar e deseja confirmar se ele não foi adulterado. Você pode pesquisar o hash desse arquivo ISO específico online no site da distribuição do Linux. Você pode então executá-lo por meio da função hash em seu computador e confirmar se ele corresponde ao valor de hash que você esperava que tivesse. Isso confirma que o arquivo que você possui é exatamente o mesmo que está sendo oferecido para download no site da distribuição do Linux, sem nenhuma modificação.

Observe que “colisões” foram encontradas com as funções MD5 e SHA-1. São vários arquivos diferentes – por exemplo, um arquivo seguro e um arquivo malicioso – que resultam no mesmo hash MD5 ou SHA-1. É por isso que você deve preferir o SHA-256, quando possível.

Como comparar funções hash em qualquer sistema operacional

Com isso em mente, vamos ver como verificar o hash de um arquivo que você baixou e compará-lo com o que você recebeu. Aqui estão os métodos para Windows, macOS e Linux. Os hashes sempre serão idênticos se você estiver usando a mesma função de hash no mesmo arquivo. Não importa qual sistema operacional você usa.

janelas

Este processo é possível sem nenhum software de terceiros no Windows graças ao PowerShell.

Para começar, abra uma janela do PowerShell iniciando o atalho “Windows PowerShell” no menu Iniciar.

Execute o seguinte comando, substituindo “C: \ path \ to \ file.iso” pelo caminho para qualquer arquivo cujo hash você deseja visualizar:

Get-FileHash C: \ path \ to \ file.iso

Levará algum tempo para gerar o hash do arquivo, dependendo do tamanho do arquivo, do algoritmo que você está usando e da velocidade da unidade em que o arquivo está.

Recomendado:  Os iPads são à prova d'água?

Por padrão, o comando mostrará o hash SHA-256 para um arquivo. No entanto, você pode especificar o algoritmo de hash que deseja usar se precisar de um MD5, SHA-1 ou outro tipo de hash.

Execute um dos seguintes comandos para especificar um algoritmo de hash diferente:

Get-FileHash C: \ path \ to \ file.iso -Algorithm MD5
Get-FileHash C: \ path \ to \ file.iso -Algorithm SHA1
Get-FileHash C: \ path \ to \ file.iso -Algorithm SHA256
Get-FileHash C: \ path \ to \ file.iso -Algorithm SHA384
Get-FileHash C: \ path \ to \ file.iso -Algorithm SHA512
Get-FileHash C: \ path \ to \ file.iso -Algorithm MACTripleDES
Get-FileHash C: \ path \ to \ file.iso -Algorithm RIPEMD160

Compare o resultado da função hash com o resultado que você esperava ver. Se for o mesmo valor, o arquivo não foi corrompido, adulterado ou de outra forma alterado do original.

img_5894fdde80f06

Mac OS

O macOS inclui comandos para visualizar diferentes tipos de hashes. Para acessá-los, abra uma janela do Terminal. Você o encontrará em Finder> Aplicativos> Utilitários> Terminal.

O md5comando mostra o hash MD5 de um arquivo:

md5 / caminho / para / arquivo

O shasumcomando mostra o hash SHA-1 de um arquivo por padrão. Isso significa que os seguintes comandos são idênticos:

shasum / caminho / para / arquivo
shasum -a 1 / caminho / para / arquivo

Para mostrar o hash SHA-256 de um arquivo, execute o seguinte comando:

shasum -a 256 / caminho / para / arquivo

Linux

No Linux, acesse um Terminal e execute um dos seguintes comandos para visualizar o hash de um arquivo, dependendo do tipo de hash que deseja visualizar:

md5sum / caminho / para / arquivo
sha1sum / caminho / para / arquivo
sha256sum / caminho / para / arquivo

Alguns Hashes são assinados criptograficamente para ainda mais segurança

Embora os hashes possam ajudar a confirmar que um arquivo não foi adulterado, ainda há uma via de ataque aqui. Um invasor pode obter o controle do site de uma distribuição Linux e modificar os hashes que aparecem nele, ou um invasor pode executar um ataque man-in-the-middle e modificar a página da web em trânsito se você estiver acessando o site via HTTP em vez de HTTPS criptografado .

Recomendado:  A Amazon está oferecendo crédito na loja de US $ 10: veja como obtê-lo

É por isso que as distribuições modernas do Linux geralmente fornecem mais do que hashes listados em páginas da web. Eles assinam criptograficamente esses hashes para ajudar na proteção contra invasores que possam tentar modificar os hashes. Você vai querer verificar a assinatura criptográfica para garantir que o arquivo hash foi realmente assinado pela distribuição do Linux se quiser ter certeza absoluta de que o hash e o arquivo não foram violados.

Verificar a assinatura criptográfica é um processo mais complicado. Leia nosso guia para verificar se as ISOs do Linux não foram adulteradas para obter instruções completas.

Crédito da imagem:  Jorge Stolfi / Wikimedia