quarta-feira, 6 de janeiro de 2010

Verifique a integridade dos seus downloads

Durante um processo de cópia de qualquer arquivo no computador é possível acontecer uma falha na comunicação da origem para o destino. Muitas vezes o software que está executando o processo de cópia não percebe e retorna para o sistema o sucesso da cópia. A cópia do arquivo aparenta estar normal porém ao realizar sua execução acontece um erro.

Este tipo de problema é bastante comum de acontecer em downloads de arquivos pela Internet. Não é sempre mas pode ocorrer de um único byte vir incorreto ou inexistente no arquivo. E pode ser um transtorno se este arquivo for por exemplo uma imagem de CD ou DVD, onde o erro só vai ser percebido depois de gravá-la em uma mídia e então executar o software contido.

Para possibilitar uma verificação da cópia do arquivo e assim evitar que um usuário fique com um arquivo corrompido, muitos administradores de repositórios de softwares disponibilizam um arquivo ou uma página no site contendo o valor hash do arquivo. Desta forma o usuário pode confirmar a integridade do arquivo.

Um hash é uma sequência de bits gerada por um algoritmo de dispersão formando uma sequência de caracteres alfanuméricos, geralmente na base hexadecimal de 0 a 9 e de A a F, representando 1/2 byte cada. Basicamente a sequência hash é a transformação de uma grande quantidade de dados em uma pequena quantidade de dados.

Esta seqüencia busca identificar um arquivo unicamente. É um método para transformar dados de tal forma que o resultado seja praticamente exclusivo. Mas como a seqüencia do hash é limitada, muitas vezes não passando de 512 bits, existem colisões ocasionando sequências iguais para dados diferentes.

Não é possível a partir de um valor de hash retornar à informação original, esta transformação então é somente unidirecional.

Os algoritmos de hash mais usados para este propósito são: MD5, com 128 bits; SHA1, com 160 bits e o SHA256, com 256 bits. Os hashes MD5 são representados por uma sequência de 32 caracteres hexadecimais, os hashes SHA1 e o SHA256 são representados por sequências de 40 e 64 caracteres, respectivamente.

Quando localizar um arquivo para download em um site, procure se informar se existe disponível o valor hash do arquivo. Este valor pode vir dentro de um outro arquivo em formato texto, comumente com nomes semelhantes à checksum, md5sum, sha1sum, ou pode apenas estar incluído no conteúdo da página de download do arquivo.

Para o sistema Windows é necessário instalar o utilitário que irá verificar a integridade, por exemplo para hash MD5 existe o software chamado MD5summer (http://www.md5summer.org/). Existem outros utilitários que funcionam com os algoritmos mais comuns de hash, uma pesquisada pelo Google vai ser suficiente para encontrá-los. Já o sistema Linux costuma trazer na instalação padrão estes utilitários. A execução do comando "md5sum " retorna a sequência com o valor hash MD5 do arquivo informado. Outros comando são o sha1sum e o sha256sum, para os hashes SHA.

Basta comparar o valor retornado com o fornecido no site. Se forem idênticos então o arquivo está OK. Uma forma automática é executar o utilitário informando o arquivo que contém a sequência hash, desta forma o retorno será a resposta OK ou não.

Outro proveito destes utilitários é para o controle da integridade de suas cópias particulares. Cópias de segurança, transferências de arquivos pela rede ou a utilização de uma unidade de armazenamento externa para transportar os arquivos etc. O procedimento é gerar os valores hashes antes de realizar a cópia e ao final verificar os arquivos copiados.

A grande maioria dos repositórios de softwares para o sistema Linux adotam este controle de integridade dos arquivos.

Um comentário:

  1. Muito esclarecedora as suas notas sobre Integração. Objetivo e claro. Obrigada.

    ResponderExcluir