O Snyk consegue encontrar algoritmos criptográficos fracos? Adeus, MD5
25 de fevereiro de 2025
0 minutos de leituraUsar criptografia forte é essencial para proteger dados e garantir a segurança de aplicações, inclusive em tarefas como o hash de senhas (que, tecnicamente, não é criptografia clássica com finalidade de cifragem). No entanto, ainda pode haver código legado em produção que usa algoritmos criptográficos fracos e desatualizados, que passaram despercebidos. Como o Snyk Code pode ajudar você a encontrar essas aplicações vulneráveis?
Os perigos dos algoritmos criptográficos fracos
Algoritmos fracos e desatualizados, seja para criptografia ou hash, representam sérios riscos de segurança e podem expor informações confidenciais a invasores. Confiar em implementações inadequadas cria uma falsa sensação de segurança e deixa os sistemas vulneráveis. É essencial entender as limitações dos algoritmos antigos e adotar práticas criptográficas modernas e seguras.
Vários algoritmos criptográficos são considerados inseguros e devem ser evitados. O MD5, por exemplo, está criptograficamente comprometido e não serve para nenhuma aplicação de segurança, especialmente para gerar hashes de senhas. Como é fácil encontrar colisões, entradas diferentes podem produzir o mesmo valor de hash. Isso permite que invasores descubram a senha original ou criem uma falsa que corresponda ao hash armazenado. Outros exemplos de algoritmos fracos são DES e RC4, ambos com vulnerabilidades conhecidas e que não devem mais ser usados.
Algoritmo MD5 fraco em Java
Veja esta aplicação Java, que usa MD5 para gerar hashes das senhas dos usuários:
Observação: consulte o código-fonte completo no GitHub.
Você provavelmente já sabe que não deve usar MD5 para gerar hashes de senhas. Mas o que acontece quando você precisa manter muitas aplicações e navegar rapidamente por centenas de milhares de linhas de código em vários repositórios?
Ao conectar o Snyk aos seus repositórios de código (ou integrá-lo de outra forma), você pode analisar rapidamente o código vulnerável, esteja ele esquecido em uma aplicação legada ou tenha sido gerado com falhas por ferramentas de IA generativa e outros assistentes de código com IA.
O Snyk encontra o algoritmo MD5 fraco e mostra o caminho da chamada da origem ao destino no seu código:

Como corrigir o algoritmo MD5 fraco em Java?
O Snyk complementa as descobertas de segurança e, além de detectar o código vulnerável, também apresenta uma análise da correção. O exemplo a seguir mostra como a API MessageDigest foi corrigida em um projeto de código aberto (o owasp security logging, neste caso) e como o algoritmo de hash desatualizado SHA-1 foi substituído por uma versão mais atual: SHA-256:

O Snyk também apresenta práticas recomendadas para usar algoritmos robustos em hashing e criptografia, além de explicar os riscos de armazenar informações confidenciais em texto simples.
Recomendações de segurança e práticas recomendadas para algoritmos
Escolha os algoritmos adequados para cada finalidade. Para gerar hashes de senhas, use um algoritmo criptográfico seguro, que proteja contra ataques de força bruta e tenha desempenho adequado para aplicações do mundo real. Alguns dos principais exemplos são o padrão de fato do setor há décadas: Bcrypt. Outras opções incluem PBKDF2 e o mais conhecido Argon2.
Consulte as práticas recomendadas de segurança para criptografia, como os recursos da OWASP.
Por fim, comece a usar o Snyk (é grátis!) e some pontos em segurança ao encontrar código vulnerável, dependências desatualizadas, criptografia fraca e outros problemas de segurança.
Ferramenta gratuita online para verificar código
Proteja seu código antes do próximo commit.



