domingo, 9 de dezembro de 2012

Falha de EOL em verificação de hash

Quem utiliza o sistema Linux no dia a dia e costuma verificar a integridade de arquivos através de comparações com hash, seja MD5, SHA etc. em suas respectivas ferramentas para linha de comando, provavelmente já presenciou falhas em determinadas verificações.

Os sistemas operacionais não adotam a mesma convenção para os caracteres que marcam o fim-de-linha (EOL) em arquivos de texto puro. Principalmente entre os sistemas DOS/Windows e Unix/Linux.  Como o arquivo de hash é um arquivo no formato texto, está sujeito a esta diferença em sua estrutura, caso ele tenha sido criado em um sistema ou no outro.

Ao ler um arquivo de hash, criado em um sistema Windows, ou seja, com o fim-de-linha adotado no sistema Windows, em uma ferramenta de linha de comando no Linux, haverá falha na busca do arquivo principal, o qual se pretende verificar a integridade. Algo como apresentado no exemplo a seguir:

$ sha1sum -c FreeOTFE_5_21.sha1

: Arquivo ou diretório não encontrado
: FALHOU na abertura ou na leitura
sha1sum: WARNING: 1 listed file could not be read



A solução, no sistema Linux, é converter o arquivo de hash para o formato do Unix. O comando 'dos2unix' serve para isso:

$ dos2unix FreeOTFE_5_21.sha1

dos2unix: converting file FreeOTFE_5_21.sha1 to Unix format ...



Feito isso, a verificação da integridade provavelmente não terá mais esta falha na busca do arquivo principal:

$ sha1sum -c FreeOTFE_5_21.sha1

FreeOTFE_5_21.exe: SUCESSO



Claro que o erro da integridade ainda poderá ocorrer, visto que neste caso é o arquivo principal que estará corrompido. Importante salientar que esta não é a única falha que pode ocorrer na interpretação do arquivo de hash. Algumas ferramentas de geração de hash produzem arquivos de hash com informações adicionais incluídas junto com a sequência hash, ou também em posições invertidas entre a sequência e o caminho pro arquivo principal. Tudo isso pode gerar falha na busca do arquivo. Casos assim deverão ser tratados particularmente.

Leia mais sobre EOL em http://dan-scientia.blogspot.com.br/2009/07/historia-do-fim-de-linha.html

Nenhum comentário:

Postar um comentário