Questão de Segurança da Informação — Hashes Criptográficos — VUNESP 2023
Segurança da Informação›Hashes Criptográficos
Código
vu196563
Banca
VUNESP
Órgão
TJ RS
Ano
2023
Cargo
ATI ( )
A função de hash criptográfica MD5 já teve colisões descobertas.
Considerando essa informação, isso significa que
Asua segurança foi devidamente atestada e comprovada.
Batualmente é considerada vulnerável e seu uso não é mais recomendado para aplicações criptográficas.
Co tamanho do hash a ser gerado, que é um parâmetro da função, deve ser aumentado em relação ao seu valor padrão.
Dhashes calculados por essa função não devem mais ser exibidos ou armazenados em notação hexadecimal, mas sim em Base64.
Ehashes calculados por essa função não devem mais ser exibidos ou armazenados em notação hexadecimal, mas sim em Base58Check.
Revelar gabarito e comentário▾
GabaritoB — atualmente é considerada vulnerável e seu uso não é mais recomendado para aplicações criptográficas.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Funções hash criptográficas e a vulnerabilidade do MD5
Gabarito: letra B. A descoberta de colisões no MD5 — duas mensagens diferentes produzindo o mesmo hash — compromete a resistência à colisão, uma propriedade essencial de qualquer função hash criptográfica. Por isso, o MD5 é considerado vulnerável e seu uso não é mais recomendado para aplicações criptográficas, sendo substituído por algoritmos mais robustos como os da família SHA-2 (SHA-256) e SHA-3.
Uma função hash criptográfica é um algoritmo que recebe uma entrada de tamanho variável e produz uma saída de tamanho fixo, chamada de hash, resumo ou message digest. Ela é a base de mecanismos como assinatura digital, verificação de integridade e armazenamento seguro de senhas. Para ser considerada segura, deve atender a três propriedades fundamentais: resistência à pré-imagem (dado o hash, é inviável encontrar a mensagem original), resistência à segunda pré-imagem (dada uma mensagem, é inviável encontrar outra que gere o mesmo hash) e resistência à colisão (é inviável encontrar duas mensagens diferentes que gerem o mesmo hash).
A resistência à colisão é o que garante que um hash funcione como uma "impressão digital" única do conteúdo. Quando se descobre uma colisão prática, essa garantia se rompe: um atacante pode criar dois conteúdos distintos com o mesmo hash, o que permite, por exemplo, falsificar assinaturas digitais ou fazer com que um arquivo malicioso seja aceito como se fosse um arquivo legítimo. Foi exatamente isso que aconteceu com o MD5. Em 2004, pesquisadores demonstraram colisões práticas, e em 2008 um ataque foi usado para quebrar a segurança de certificados SSL. O malware Flame, em 2012, explorou as fraquezas do MD5 para falsificar uma assinatura digital da Microsoft. O Instituto de Engenharia de Software da Universidade Carnegie Mellon (CMU SEI) considera o MD5 "criptograficamente quebrado e inadequado para uso posterior".
A descoberta de colisões não significa que o hash tenha "tamanho errado" que possa ser ajustado, nem que a forma de exibição (hexadecimal, Base64, Base58Check) tenha qualquer relação com a segurança do algoritmo. O problema é intrínseco ao algoritmo MD5, e a solução é migrar para algoritmos mais fortes, como SHA-256, que oferecem maior resistência a colisões. É importante notar que, apesar de ser considerado inseguro para fins criptográficos, o MD5 ainda pode ser usado para verificação de integridade contra corrupção acidental de dados, como em checksums de download, pois nesse contexto a colisão intencional não é uma ameaça relevante.
A pegadinha desta questão está em associar a vulnerabilidade do MD5 a aspectos superficiais, como o tamanho do hash ou o formato de exibição, quando o correto é entender que a segurança do algoritmo foi comprometida em sua essência. Guarde este critério: colisão descoberta = algoritmo vulnerável = uso não recomendado para fins criptográficos.
Função hash criptográfica: Propriedades (Resistência à pré-imagem, Resistência à segunda pré-imagem, Resistência à colisão); MD5 (Colisões descobertas (2004), Vulnerável — uso não recomendado, Uso residual: integridade acidental); Alternativas seguras (SHA-2 (SHA-256), SHA-3)
Alternativa A — ❌ Incorreta
Afirma que a descoberta de colisões atesta a segurança do MD5. É exatamente o oposto: a descoberta de colisões é uma evidência de fraqueza, não de segurança. Uma função hash segura deve ser resistente a colisões, e a demonstração prática de colisões no MD5 prova que ele falha nesse requisito fundamental.
Alternativa B — ✅ Correta ⟵ GABARITO
A descoberta de colisões no MD5 significa que ele é vulnerável e seu uso não é mais recomendado para aplicações criptográficas. Isso porque a resistência à colisão é uma propriedade essencial para a segurança do hash, e sua quebra compromete a integridade e a autenticidade que o hash deveria garantir. Por isso, recomenda-se o uso de algoritmos mais robustos, como SHA-256 e SHA-3.
Alternativa C — ❌ Incorreta
Sugere que o tamanho do hash é um parâmetro ajustável da função e que aumentá-lo resolveria o problema. O tamanho do hash do MD5 é fixo em 128 bits e não é um parâmetro configurável. A vulnerabilidade do MD5 não está no tamanho da saída, mas em falhas estruturais do algoritmo que permitem encontrar colisões com esforço computacional viável. A solução não é "aumentar o tamanho" do MD5, mas sim migrar para outro algoritmo projetado com segurança, como SHA-256.
Alternativa D — ❌ Incorreta
Afirma que hashes MD5 não devem mais ser exibidos ou armazenados em hexadecimal, mas sim em Base64. A forma de representação do hash (hexadecimal, Base64, Base58Check) é apenas uma codificação visual do valor binário e não tem nenhuma relação com a segurança do algoritmo. A vulnerabilidade do MD5 é criptográfica, não de formato de exibição. Trocar a codificação não corrige a possibilidade de colisões.
Alternativa E — ❌ Incorreta
Assim como a alternativa D, sugere que o problema é a forma de exibição do hash, propondo o uso de Base58Check. Essa é uma confusão entre codificação e segurança criptográfica. O Base58Check é usado em sistemas como Bitcoin para representar endereços de forma legível, mas não tem relação com a robustez de uma função hash. A vulnerabilidade do MD5 permaneceria independentemente do formato de exibição.