domingo, 17 de março de 2013

Assinatura e Certificação Digital - Funções de Resumo Criptográfico


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.