Uma função de hash criptográfico (do inglês Cryptographic Hash Function) é um
procedimento determinístico que pega um bloco de dados arbitrário e retorna uma
string de bits com tamanho fixo, cujo
é denominado hash value, de maneira
que qualquer mudança acidental ou intencional deve gerar uma considerável
mudança no hash value. A informação a
ser codificada é frequentemente definida como mensagem ou "message", e o hash value é definido como message
digest (mensagem resumo) ou simplesmente digest, no qual uma boa tradução para o português é apenas o
substantivo “resumo”.
As funções de resumo criptográfico herdam as
propriedades descritas nas hash functions
e adicionam alguns detalhes e outras propriedades, sendo que se garantido estas
propriedades, tais funções de resumo criptográfico podem ser consideradas como
ideais, senão perfeitas. Tais propriedades são;
- Primeira Resistência a Pré-imagem: Trata
da propriedade One-Way descrita
na hash function, o que deve ser
garantido que é impossível
encontrar a mensagem a partir do hash
value concebido.
- Segunda Resistência a Pré-imagem: Deve
ser impossível existir duas
diferentes mensagens com o mesmo hash
value, ou seja, de maneira diferente das hash functions simples, nas funções de resumo criptográfico
não pode ocorrer colisões.
- Resistência a Colisão: Deveria ser
no mínimo muito difícil
encontrar duas diferentes mensagens que gerem um mesmo hash value. De maneira que é
chamada de Colisão de Hash Criptográfico (do inglês Cryptographic Hash Collision), uma propriedade que é em alguns
momentos referenciada como Resistência à Forte Colisão. Isto requer um hash value com tamanho no mínimo
duas vezes mais longo do que o exigido na Resistência Fraca, caso
contrário, as colisões podem ser encontradas rapidamente.
Estas propriedades implicam que uma pessoa
maliciosa não pode realocar ou modificar uma mensagem sem que seja modificado o
seu resumo ou seu digest. De maneira igual, se duas mensagens tem o mesmo
digest, pode-se certificar de que se trata da mesma mensagem.
O ideal e desejável é que cada vez mais
propriedades a fim de tornar as funções criptográficas de hash mais fortes, sejam criadas.
Pode-se observar na Figura 2, um exemplo de
uma função de resumo criptográfico em trabalho, no caso o utilizado foi o SHA-1,
cujos detalhes deste serão abordados no decorrer do trabalho. O que deve ser
observado é que uma simples alteração na mensagem de entrada gera-se um resumo
totalmente diferente.
No momento em que definíamos as propriedades
fora mencionado o substantivo difícil
e impossível, discursando sobre o
contrato que as funções criptográficas devem cumprir, porém vale mencionar que teorias
matemáticas e de criptoanálise comprovam que com engenharia inversa estes
termos poderiam não ser totalmente válidos, mas de qualquer maneira ainda são
utilizados por motivo de que para efetuar tarefas de engenharia reversa
necessitaria de poderes computacionais tão altos e de tempos tão longo que a
tarefa se torna inviável.
As funções de resumo criptográfico têm maior utilização
nas aplicações de segurança da informação, especialmente na Assinatura Digital,
Códigos de Autenticação de Mensagem (MACs), e outras formas de autenticação.
Algo notório é a importante utilização na verificação da integridade de
mensagens assinadas digitalmente, determinando se qualquer mudança foi feita na
mensagem, pode-se realizar pela comparação do resumo da mensagem calculado
anteriormente, em um momento posterior se não foi feita qualquer alteração. Por
esta razão, a maioria dos algoritmos de assinatura digital somente confirma a
autenticidade do resumo da mensagem a ser assinada, e não toda a mensagem que
pode ser muito grande. Verificando a autenticidade do resumo, ou seja, do hash da mensagem é considerada prova de
que tal mensagem realmente é autêntica.
Existe uma longa lista de funções de hash criptográficos, porém em muitos
deles já foram encontrados vulnerabilidade e não deveriam ser utilizados e
outros foram encontrados vulnerabilidades porém que não impedem o uso dos
mesmos.
Em agosto de 2004 deficiências foram
encontradas em um número de hash
functions que são populares, incluindo o SHA-0, RIPEMD, e o MD5, sendo que
automaticamente estes colocam em cheque outros algoritmos que derivam destes,
em particular, o SHA1 (uma versão reforçada do SHA-0), RIPEMD-128, e o
RIPEMD-160 (ambos reforçam a versão do RIPEMD). Nem o SHA-0 e nem o RIPEMD são
amplamente utilizados, de maneira que foram substituídos por suas versões reforçadas.
A partir de 2009 as duas funções de resumo
criptográfico que se tornaram mais populares foram MD5 e SHA-1, contudo, MD5
foi quebrado, um ataque contra ele foi utilizado e quebrado na camada de
segurança da internet (SSL) em 2008.
Na tentativa de diminuir a possibilidade de
colisões, uma técnica de certa forma barata é a utilização de Concatenação de Funções de Resumo
Criptográficas, no qual com uma concatenação de saídas de múltiplas funções
de resumo pode-se fornecer resistência a colisões tão boas como os mais fortes
algoritmos existentes. Um exemplo de aplicação desta técnica é a SSL (Security
Socket Layer) que usa a concatenação do MD5 e do SHA-1, garantindo que um
método para encontrar colisões em uma das funções não permite forjar o tráfego
protegido com ambas as funções. Em outras palavras, se houver colisões para
determinadas mensagens por conta de um algoritmo, seria muito improvável que
houvesse a mesma colisão para outro o algoritmo, e com a concatenação dos dois
aumenta ainda mais o nível de segurança.
Nenhum comentário:
Postar um comentário
Obrigado por deixar seu comentário. Volte sempre.