Snyk peut-il détecter les algorithmes cryptographiques faibles ? Adieu MD5
25 février 2025
0 minutes de lectureL’utilisation d’une cryptographie robuste est essentielle à la protection des données et à la sécurité des applications, notamment pour le hachage des mots de passe (qui, techniquement, ne relève pas de la cryptographie classique à des fins de chiffrement). Pourtant, du code ancien utilisant des algorithmes cryptographiques faibles et obsolètes, qui n’ont pas été détectés, peut encore être déployé en production. Comment Snyk Code peut-il vous aider à repérer ces applications vulnérables ?
Les dangers des algorithmes cryptographiques faibles
Les algorithmes faibles et obsolètes, qu’ils servent au chiffrement ou au hachage, présentent de graves risques de sécurité et peuvent exposer des informations sensibles aux attaquants. S’appuyer sur des implémentations insuffisantes procure un faux sentiment de sécurité et laisse les systèmes vulnérables. Il est essentiel de comprendre les limites des anciens algorithmes et d’adopter des pratiques cryptographiques modernes et sûres.
Plusieurs algorithmes cryptographiques sont désormais considérés comme non sécurisés et doivent être évités. MD5, par exemple, est cryptographiquement compromis et ne convient à aucune application de sécurité, en particulier au hachage des mots de passe. Comme il est facile de trouver des collisions, différentes entrées peuvent produire la même valeur de hachage. Les attaquants peuvent alors retrouver le mot de passe d’origine ou en créer un faux qui correspond au hachage enregistré. DES et RC4 comptent également parmi les algorithmes faibles : tous deux présentent des vulnérabilités connues et ne doivent plus être utilisés.
Algorithme MD5 faible en Java
Prenons l’exemple de l’application Java suivante, qui utilise MD5 pour hacher les mots de passe des utilisateurs :
Remarque : consultez le code source complet sur GitHub.
Vous savez sans doute qu’il ne faut pas utiliser MD5 pour hacher des mots de passe. Mais que faire lorsque vous devez gérer de nombreuses applications et parcourir rapidement des centaines de milliers de lignes de code dans un grand nombre de dépôts ?
Si vous connectez Snyk à vos dépôts de code (ou l’intégrez d’une autre manière), la plateforme peut analyser rapidement et facilement le code vulnérable, qu’il soit inactif dans une ancienne application ou qu’il ait été généré avec des défauts par GenAI ou d’autres assistants de code IA.
Snyk détecte l’algorithme MD5 faible et indique le chemin d’appel de la source à la destination dans votre code :

Comment corriger l’algorithme MD5 faible en Java ?
Snyk enrichit les résultats de sécurité et, au-delà de la détection du code vulnérable, fournit également une analyse des correctifs. L’exemple suivant montre comment l’API MessageDigest a été corrigée dans un projet open source (owasp security logging, en l’occurrence) et comment l’algorithme de hachage obsolète SHA-1 a été remplacé par une version plus récente : SHA-256.

Snyk fournit également des bonnes pratiques pour utiliser des algorithmes robustes de hachage et de cryptographie, et explique les risques liés au stockage d’informations sensibles en texte brut.
Recommandations et bonnes pratiques pour la sécurité des algorithmes
Choisissez les algorithmes adaptés à votre besoin. Pour le hachage des mots de passe, optez pour un algorithme cryptographique sûr, qui protège contre les attaques par force brute et offre des performances adaptées aux applications réelles. Bcrypt est la norme de facto du secteur depuis des décennies. Vous pouvez également utiliser PBKDF2 ou, plus récemment, Argon2.
Veillez à consulter les bonnes pratiques de sécurité en cryptographie, notamment les ressources de l’OWASP.
Enfin, commencez avec Snyk (c’est gratuit !) et marquez des points en sécurité en détectant le code vulnérable, les dépendances obsolètes, la cryptographie faible et d’autres problèmes de sécurité.
Outil gratuit de vérification de code en ligne
Sécurisez votre code avant votre prochain commit.



