Ao baixar uma distribuição GNU/Linux, o procedimento usual é baixar o Crie uma imagem ISO e comece a criar a unidade USB inicializável. Sem pensar muito no que pode ter acontecido durante o processo. A verdade é que, mesmo que muitas vezes nada dê errado, confiamos cegamente que a ISO é legítima. Que ninguém a tenha alterado e que o download não tenha sido corrompido.
Se estivermos falando de um sistema operacional completo, as coisas mudam. São arquivos grandes, demoram muito para baixar e, acima de tudo, Uma falha ou manipulação na ISO pode comprometer toda a equipe.É por isso que no mundo Linux é tão comum (e tão recomendado) verificar a integridade e a autenticidade das ISOs usando checksums e assinaturas GPG antes de gravá-las em um DVD ou em um pen drive.
O que significa verificar uma norma ISO: integridade e autenticidade?
Ao verificar uma norma ISO, você não está realizando uma única verificação, mas duas verificações distintas que não devem ser misturadas: a integridade do arquivo e autenticidade de sua origemA integridade indica se a imagem ISO que você tem no disco é idêntica à que estava no servidor, bit a bit. A autenticidade indica se essa imagem ISO e seus checksums realmente provêm do projeto que afirmam representar.
A integridade é verificada por meio de um função hash (checksum) calculada em todo o arquivoSe o resultado obtido no seu computador corresponder ao publicado pela distribuidora, significa que o arquivo ISO não foi alterado durante o download nem danificado durante o armazenamento.
A autenticidade é validada através de Assinaturas digitais GPG associadas às chaves públicas dos desenvolvedoresNa prática, a distribuição assina o arquivo que contém os checksums (por exemplo, SHA256SUMS) e você verifica se essa assinatura corresponde à chave oficial do projeto e se ela não foi modificada.
Embora muitas pessoas verifiquem apenas o checksum MD5 ou SHA e o considerem válido, se alguém comprometeu o servidor de download, também poderia... Substitua o arquivo ISO e publique um checksum falso.Portanto, uma boa prática envolve também a validação da assinatura GPG do arquivo de somas.

O que é um checksum e por que ele é usado em normas ISO?
Um checksum é o resultado da aplicação de um checksum a um arquivo. função hash criptográfica que gera uma string única para esse conteúdo. Essa sequência geralmente é representada em hexadecimal (caracteres 0-9 e af) e tem um comprimento fixo, independentemente do tamanho do arquivo original.
No contexto das distribuições GNU/Linux, os checksums são usados para Verifique se os dados não foram alterados desde que o projeto publicou a imagem.Se dois arquivos produzirem o mesmo hash usando o mesmo algoritmo, eles são considerados (na prática) idênticos. Se o hash não coincidir, um único bit diferente é suficiente para alterar completamente o valor e nos permitir detectar o problema.
Existem muitos algoritmos de hash, mas os que você verá com mais frequência associados a ISOs são: MD5, SHA-1 e a família SHA-2 (SHA-256, SHA-384, SHA-512…)Nas páginas de download do Debian, Ubuntu, Fedora ou outras distribuições, é comum encontrar arquivos com nomes como MD5SUMS, SHA1SUMS ou SHA256SUMS junto com as imagens ISO.
O procedimento é simples: você baixa a ISO e seu arquivo hash, calcula o hash da ISO em sua máquina e Você verifica se o resultado corresponde ao valor publicado no arquivo de checksum.Se houver correspondência, você pode ter razoável certeza de que a imagem não está corrompida ou truncada.
O MD5 é considerado um algoritmo atualmente. obsoleto para usos de segurança de alta exigência.porque colisões práticas foram encontradas. Mesmo assim, continua sendo útil para verificações básicas de integridade. Para downloads grandes, especialmente ISOs, é melhor usar... SHA-256, que é atualmente o padrão recomendado. na maioria das distribuições.
Tipos de arquivos que você encontrará ao baixar uma ISO
Ao baixar uma distribuição do servidor oficial, é comum encontrar, além da própria imagem, uma série de arquivos extras. Cada um tem sua função, e é importante saber para que servem. Qual a função de cada tipo de arquivo e como isso se relaciona com a verificação? que você vai fazer.
Geralmente você encontrará algo como isto (os nomes podem variar ligeiramente entre as distribuições):
- distribution-name-version-architecture.isoA própria imagem, que é o que você gravará em um pen drive ou DVD. Por exemplo, ubuntu-20.04-desktop-amd64.iso, que indica a distribuição, versão, edição (desktop/servidor) e arquitetura.
- MD5SUMSUm arquivo de texto que inclui uma lista de hashes MD5 para as imagens disponíveis nesse diretório. Cada linha associa um hash a um nome de arquivo.
- MD5SUMS.gpgAssinatura GPG do arquivo MD5SUMS, gerada com a chave dos desenvolvedores. Serve para verificar se o arquivo hash MD5 realmente provém do projeto e não foi alterado.
- SHA256SUMSEquivalente ao MD5SUMS, mas usando o algoritmo SHA-256. Este é o arquivo que você deve priorizar, caso esteja disponível.
- SHA256SUMS.gpgAssinatura digital SHA256SUMS GPG, usada para garantir sua autenticidade.
Em algumas distribuições, você também encontrará arquivos SHA1SUMS, SHA512SUMS ou similares. Todos eles seguem o mesmo princípio: uma lista de somas e, opcionalmente, uma assinatura GPG associada para que você possa verificar se a lista não foi adulterada.
Se, em vez de baixar a ISO via HTTP/HTTPS, você optar por usar BitTorrent, a maioria dos clientes já integra um sistema de verificação. O processamento interno é baseado em fragmentos e hashes parciais, portanto, as chances de se obter uma ISO corrompida são bastante reduzidas. Mesmo assim, se você quiser ter certeza absoluta de sua autenticidade, ainda é recomendável verificar a assinatura GPG do arquivo hash.
Como funcionam as funções hash (MD5, SHA-1, SHA-256…)
Em termos práticos, não é necessário entender a matemática por trás dos hashes, mas é útil compreender alguns conceitos básicos para ter um entendimento claro. Por que eles são tão úteis para verificar normas ISO?Uma função hash criptográfica recebe um arquivo de qualquer tamanho e retorna uma string de comprimento fixo; alterar um único bit do arquivo resulta em um hash completamente diferente.
Os requisitos para uma boa função hash incluem que ela seja fácil de calcular em certo sentido, mas praticamente impossível investirque é muito difícil encontrar dois arquivos diferentes com o mesmo hash (colisão) e que é resistente a tentativas de gerar conteúdo malicioso que corresponda a um hash específico.
Durante anos, o MD5 foi o padrão de facto para esse tipo de verificação, mas os avanços na criptografia mostraram que É possível criar arquivos diferentes com o mesmo hash MD5.Portanto, embora ainda seja prática comum em alguns projetos, por razões de segurança, recomenda-se o uso de algoritmos mais robustos.
O SHA-1 melhorou algumas das fraquezas do MD5, mas também foram identificados problemas de colisão e é considerado Não é adequado para novas implementações que exigem alta segurança.A família SHA-2 (especialmente a SHA-256) é atualmente a opção mais equilibrada entre segurança e desempenho para verificação ISO.
Na prática, se a distribuição oferecer vários arquivos de soma, a melhor opção é escolher um deles. SHA-256 ou SHA-512 como primeira opçãoDeixe o SHA-1 reservado para casos em que não haja outra opção e relegue o MD5 a uma verificação básica de integridade quando não houver alternativa.
Ferramentas Linux para calcular e verificar checksums
A boa notícia é que você não precisa instalar nada de incomum: a maioria das distribuições GNU/Linux modernas já os inclui. Utilitários de linha de comando para calcular e verificar hashesEssas ferramentas geralmente fazem parte do coreutils ou de outros pacotes básicos.
Os comandos mais comuns que você encontrará são:
- md5sumCalcula e verifica as somas MD5.
- sha1sumCalcula e verifica somas SHA-1.
- sha256sumCalcula e verifica somas SHA-256.
- sha512sumCalcula e verifica somas SHA-512.
Usá-los é muito simples. Se você quiser calcular o hash de um arquivo específico, basta executar o seguinte comando no terminal, a partir do diretório onde o arquivo ISO está localizado:
cd Descargas
sha256sum nombre-de-tu-imagen.iso
O comando imprimirá uma linha com o hash e o nome do arquivo, que você pode comparar com o valor publicado no site. Se preferir MD5 ou SHA-1, O formato do comando é idêntico, alterando-se apenas o utilitário. (md5sum, sha1sum, sha512sum…).
Além de calcular hashes individuais, essas mesmas ferramentas permitem verificar vários arquivos simultaneamente usando o modo de verificação com a opção -cÉ aí que entra em ação o arquivo MD5SUMS ou SHA256SUMS que você baixou junto com as ISOs.
Verificando a integridade de uma ISO usando arquivos de soma
Em um cenário típico, você baixa tanto a imagem ISO quanto o arquivo SHA256SUMS (e, se disponível, o MD5SUMS ou SHA1SUMS) do site oficial da distribuição. A estrutura desse arquivo é muito simples: cada linha contém um hash, um espaço, opcionalmente um asterisco ou um espaço adicional, e o nome do arquivo.
Para verificar a ISO com o arquivo de soma, basta acessar a pasta onde você tem o arquivo. tanto a imagem quanto o arquivo SHA256SUMS e execute:
sha256sum -c SHA256SUMS
O utilitário percorre todas as linhas SHA256SUMS e compara o hash calculado localmente para cada arquivo listado com o hash presente no documento. Se tudo estiver correto, exibirá algo como:
nombre-distro.iso: OK
Em caso de discrepâncias, seja porque a ISO está corrompida ou porque O arquivo não corresponde à lista de somas.Você verá mensagens como esta:
nombre-distro.iso: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
O mesmo procedimento se aplica ao MD5 e ao SHA-1, bastando substituir a ferramenta e o arquivo correspondentes, por exemplo:
md5sum -c MD5SUMS
sha1sum -c SHA1SUMS
Essa abordagem é especialmente conveniente ao baixar várias ISOs ou vários arquivos de uma só vez, porque Você verifica todos os arquivos de uma só vez com um único comando. E o sistema informa quais passaram no teste e quais não passaram.
Assinaturas GPG: verificação da autenticidade dos valores.
Até agora, falamos apenas sobre integridade, mas o segundo componente está faltando: Certifique-se de que o arquivo de somas realmente venha do projeto. e não de alguém que tenha comprometido o servidor. É aí que entra o GnuPG (gpg), a ferramenta padrão para lidar com criptografia de chave pública no GNU/Linux.
A maioria das principais distribuições assina seus arquivos de hash (por exemplo, SHA256SUMS.gpg) com uma chave privada associada aos desenvolvedores. Você, como usuário, baixa essa assinatura e a utiliza. a chave pública do projeto para verificar que o arquivo SHA256SUMS não foi modificado.
O fluxo de trabalho típico com uma distribuição como o Ubuntu seria este, depois de instalar o gpg e estar no diretório de downloads:
gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS
Se o seu computador já tiver a chave pública do Ubuntu importada corretamente e considerada confiável, o gpg exibirá uma mensagem indicando isso. assinatura válida e identificador de chaveMas é muito comum que, na primeira vez que você executar o programa, ele informe que não reconhece essa chave pública.
Nesse caso, o próximo passo seria importar a chave pública de um servidor de chaves confiável. Por exemplo, no Ubuntu, você poderia fazer algo assim:
gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092
Isso baixa a chave com o identificador especificado do servidor de chaves oficial. Após a importação, execute o comando de verificação de assinatura novamente usando SHA256SUMS e você deverá obter uma confirmação de que a assinatura está correta e está associado à chave “Chave de assinatura automática da imagem de CD do Ubuntu (2012) "ou outra similar, dependendo da distribuição."
O GPG pode exibir avisos como "Não há indicação de que a assinatura pertença ao proprietário", o que basicamente significa que Você não marcou essa chave como absolutamente confiável.Não se trata de um erro fatal: desde que você tenha verificado por outros meios (site oficial, documentação, etc.) que a impressão digital da chave é a declarada pelo projeto, você pode prosseguir.
Exemplo prático: verificar uma ISO recente do Ubuntu
Para entender isso claramente, imagine baixar uma ISO do Ubuntu (por exemplo, uma versão LTS recente) do site oficial. Nessa página, você encontrará links para a ISO, o arquivo SHA256SUMS e sua assinatura SHA256SUMS.gpg, todos no mesmo diretório ou em um diretório próximo.
Os passos que você seguiria seriam essencialmente os seguintes:
Em primeiro lugar, Baixe a ISO apropriada para sua arquitetura. (por exemplo, a imagem de desktop AMD64 de 64 bits), além dos arquivos SHA256SUMS e SHA256SUMS.gpg correspondentes a essa versão.
Em seguida, com o gpg instalado em seu sistema, você deve verificar a assinatura do arquivo de somas com:
gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS
Se o gpg informar que não consegue encontrar a chave, você pode obtê-la de um servidor de chaves associado ao projeto executando um comando semelhante a:
gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092
Após a importação da chave e a validação da assinatura do arquivo SHA256SUMS, você poderá verificar a ISO em relação a essa lista usando:
sha256sum -c SHA256SUMS
O comando verificará todas as entradas e exibirá uma mensagem para cada arquivo listado. Para o ISO recém-baixado, você deverá ver algo como isto: “ubuntu-XX.XX-desktop-amd64.iso: Soma das correspondências” ou “OK”, confirmando que a imagem local corresponde exatamente àquela publicada pelos desenvolvedores.
Verificar manualmente uma única soma de verificação
Às vezes, você não tem o arquivo completo de somas ou só recebeu um único hash na página de download. Nesse caso, você também pode realizar a verificação "à moda antiga". calcular o checksum local e compará-lo manualmente com o valor publicado.
Imagine que você baixou uma imagem ISO do Red Hat e o site mostra apenas o hash SHA-1 dessa imagem. No seu diretório de trabalho, você executa o seguinte comando:
sha1sum redhat7-x64.iso
O comando retornará algo como:
2ac2f3368e6c9fe4d7201d85ad85528698aeaf08 redhat7-x64.iso
A partir daí, você só precisa... compare visualmente ou copiando e colando esse hash. Compare o nome do arquivo com o que aparece no site ou no pequeno arquivo de texto que você baixou. Se eles coincidirem caractere por caractere, a integridade do arquivo está garantida; se forem diferentes, você precisará baixá-lo novamente.
Verificar várias ISOs simultaneamente
Existem situações em que você precisa baixar várias imagens de uma só vez (por exemplo, versões ou arquiteturas diferentes) e não quer verificá-las uma a uma. Felizmente, os arquivos MD5SUMS, SHA1SUMS ou SHA256SUMS geralmente as agrupam. todas as somas de um diretório em um único documentoAssim, você poderá fazer a verificação em massa em uma única etapa.
Suponha que você tenha seis arquivos ISO diferentes em uma pasta e tenha baixado os arquivos MD5SUM, SHA1SUM e SHA256SUM. Para verificar o MD5, você faria algo assim:
md5sum -c MD5SUM
O resultado listará cada ISO juntamente com "OK" ou "FALHOU", dependendo se a soma corresponde ou não. O mesmo se aplica a SHA-1 e SHA-256, bastando alterar a ferramenta e o arquivo:
sha1sum -c SHA1SUM
sha256sum -c SHA256SUM
Se você modificar intencionalmente um arquivo ISO ou se ele for corrompido devido a uma falha no disco, você verá que Apenas essa entrada específica marca como FALHADA Embora tudo o mais permaneça normal, os programas irão alertá-lo com uma mensagem como "AVISO: 1 soma de verificação calculada NÃO correspondeu", para que você saiba que algo deu errado.
Como gerar seus próprios arquivos de checksum
Além de verificar o que outros publicam, você também pode criar seus próprios arquivos de checksum se planeja compartilhar ISOs ou qualquer outro tipo de arquivo com mais pessoas. É tão simples quanto usar as mesmas ferramentas, mas redirecionando a saída padrão para um arquivo que você poderá então enviar juntamente com os downloads.
Por exemplo, se você preparou várias imagens ISO em um diretório e deseja gerar um arquivo MD5SUM com todas elas, você pode fazer o seguinte:
md5sum *.iso > MD5SUM
O comando irá analisar todos os arquivos ISO na pasta e salvar a lista de hashes e nomes no arquivo MD5SUM. Da mesma forma, você pode criar documentos usando SHA-1 ou SHA-256:
sha1sum *.iso > SHA1SUM
sha256sum *.iso > SHA256SUM
Ao publicar esses arquivos de verificação junto com seus arquivos, qualquer pessoa poderá executá-los. md5sum -c, sha1sum -co sha256sum -c neles e verifique se os downloads ocorreram corretamente e se ninguém os alterou durante a transmissão.
Se você quiser ir um passo além e oferecer garantias de autenticidade, você poderia até mesmo assinar digitalmente esses arquivos de soma Utilizando sua própria chave GPG, de forma semelhante ao que é feito em grandes projetos. Dessa forma, quem receber o material poderá verificar não apenas se os dados estão completos, mas também se realmente provêm de você.
Adotar o hábito de verificar checksums e assinaturas GPG antes de instalar uma distribuição Linux leva muito pouco tempo e, em contrapartida, proporciona uma importante camada de segurança, prevenindo instalações com ISOs corrompidas ou manipuladas e ajudando a detectar problemas antes que eles afetem seu computador.
