Home



 

funções "HASH"


Por Claudemir C. Santos

  

   

   

   

Introdução

  

Imaginem a seguinte situação:

"Um arquivo é periciado, devolvido a delegacia/justiça em mídia magnética (disquete ou hd), depois de algum tempo, levanta-se uma dúvida sobre o que foi feito no trabalho pericial. Como garantir que o material não sofreu nenhuma alteração isto é, o arquivo está com o mesmo conteúdo e formato quando da perícia?"

 

O que podemos fazer para garantir que um arquivo examinado por um agente investigativo, possa ser identificado posteriormente e ainda ter a certeza que nenhuma alteração acometeu a prova?

 

Um documento escrito ou impresso numa folha de papel, possui como proteção o suporte onde ele foi posto. Isto é, em caso de dúvida sobre sua autenticidade, poderíamos analisar fisicamente o material (uso de lentes, padrões do fabricante, rasuras, etc).

 

Funções "Hash" em arquivos digitais

 

Denominam-se funções "Hash" o método de autenticação pelo qual, por meio de algoritmos verificamos a autenticidade de um arquivo. O procedimento é simples, por meio de funções específicas um conjunto de letras e números de tamanho fixo são associados ao arquivo. Para se ter certeza que o arquivo é o mesmo executa-se o programa e gera-se a chave, se não ocorreram mudanças no conjunto "hash", o arquivo não foi alterado.

 

Um ponto chave para a segurança é o fato de ser impossível retornar ao arquivo por meio de analise do resumo gerado.

 

 

Exemplo, método SHA

 

Vamos utilizar como exemplo o algoritmo SHA, para gerar uma chave fixa de autenticação, para o arquivo exemplo carta.txt, o qual contem o seguinte conteúdo:

.

=============
CARTA EXEMPLO 
=============
Número serial : 234432265236342xxx
Usuario       : Joao Claudio de Almeida
Texto exemplo para uso de SHA.
===========================================
fim do documento
===========================================

 

Etapa 1

 

Digita-se o nome do arquivo hash <sha> seguido do nome do arquivo <carta.txt>

:

sha carta.txt

07e660bb bfb4cb85 1aa3367e fa5c4bd6 2c42ea46

Imagine que alguém intercepta este arquivo e altera o "Número serial" em um único digito.

 

Original   "Número serial : 234432265236342xxx"
Adulterado "Número serial : 234432267236342xxx"
Em nosso exemplo é o 9° digito. 

 

 

Novo arquivo carta.txt:

=============
CARTA EXEMPLO 
=============
Número serial : 234432267236342xxx
Usuario       : Joao Claudio de Almeida
Texto exemplo para uso de SHA.
===========================================
fim do documento
===========================================

Etapa 2

 

Determinamos o "hash" do arquivo carta.txt com a adulteração.

 

sha carta.txt

58095d3e 42b2cee0 15f6a7e7 af53b02b 84db94b9

Etapa3

 

Comparar as chaves do arquivo carta.txt original e o arquivo adulterado. Note que a chave gerada pelo SHA é completamente diferente, a alteração foi somente para um digito!!!.

 

Hash do arquivo original

07e660bb bfb4cb85 1aa3367e fa5c4bd6 2c42ea46

 

Hash do arquivo adulterado em um dígito

58095d3e 42b2cee0 15f6a7e7 af53b02b 84db94b9

 

Nenhuma alteração é tolerada pela função "HASH". Desta forma a autenticidade fica preservada.

 

 

Algoritmos mais comuns

 

MD5(Message-Digest-Algoritm 5)

Criado por R. Rivest do MIT Laboratory for Computer Sciense and RSA Data Security, em 1992. O uso deste algoritmo gera um resumo de 128bits (16 dígitos).

 

SHA(Secure Hash Algoritm)

Desenvolvido a partir do MD4 (versão anterior do MD5) em 1994, foi criado pelo governo dos Estados Unidos. Sua vantagem sobre o MD5 é o tamanho do resumo que é de 160bits (20 dígitos).

 

 

RISCOS

 

COLISÕES

 

EXISTE A POSSIBILIDADE DE ARQUIVOS DIFERENTES GERAREM O MESMO RESUMO, CONTUDO ALEM DE REMOTA É IMPREVISÍVEL.

 

 

ARQUIVOS

Funções HASH

Obs: O arquivo HASH.ZIP contem os arquivos: SHA.EXE, MD5.EXE e CARTA.TXT.