Antes de entendermos o que é um ataque de pré-imagem, precisamos saber o que realmente é uma pré-imagem. Nesse contexto, requer um pouco de conhecimento sobre funções hash criptográficas.
Temos um artigo falando a respeito: O que É Hash ou Message Digest em Segurança da Informação?
Acesse esse site SHA-256 hash calculator, digite qualquer texto e clique no botão Calculate SHA256 Hash. Eu digitei O que é um hash? e gerou esse hash 47728d87156dea72bf5a9c971578e2c553a40f62fd1d7530a0d971bee0eea4c9
O que é uma pré-imagem?
Quando executamos o texto “O que é um hash?” através desta calculadora SHA-256, nos dá o seguinte valor de hash: 47728d87156dea72bf5a9c971578e2c553a40f62fd1d7530a0d971bee0eea4c9
O que é um hash? é a pré-imagem de 47728d87156dea72bf5a9c971578e2c553a40f62fd1d7530a0d971bee0eea4c9
Quando dizemos isso, basicamente queremos dizer que uma pré-imagem é qualquer valor que resulta em um hash específico. Se pudéssemos encontrar outras mensagens que também resultassem no hash acima, essas também seriam pré-imagens dele. Se você está prestando atenção, deve ter notado o que parece um pouco contraditório. Acabamos de dizer que uma característica crítica de uma função hash segura é que “é inviável encontrar duas entradas que resultem no mesmo hash”, mas agora, aparentemente, há valores que pode resultar no mesmo hash?
A realidade é que cada hash fornecido tem várias entradas, ou pré-imagens, que podem produzi-lo. Esta é uma realidade infeliz com a qual temos de lidar e é o que torna as pré-imagens uma preocupação quando se trata de garantir que nossas funções de hash criptográficas sejam seguras.
O que é um ataque de pré-imagem?
Um ataque de pré-imagem é quando um invasor pode praticamente encontrar uma pré-imagem para um hash. Isso contorna uma das propriedades críticas de uma função de hash criptográfica segura: a função de hash é unidirecional.
Um exemplo de onde isso pode causar problemas é em um protocolo que criptografa a mensagem, mas não a assinatura digital que é enviada junto com ela. Se as pré-imagens puderem ser encontradas e a função hash criptográfica não for unidirecional, é possível que um invasor calcule o texto simples da mensagem. Isso se deve ao fato de que, quando uma função hash não é unidirecional, a assinatura digital pode vazar o texto simples, burlando a criptografia que pretendia mantê-lo confidencial.
Para evitar esses ataques de pré-imagem, nossas funções de hash precisam ser resistentes à pré-imagem. Eles precisam ser cuidadosamente projetados para reter suas propriedades unidirecionais, de modo que seja inviável descobrir pré-imagens de seus hashes.