Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ed25519-unsafe-libs — Liste des bibliothèques de signatures ed25519 non sûres | Kitploit
Outils/GitHubGitHub/mystenlabs/ed25519-unsafe-libs
Analyse des VulnérabilitésExploitationCryptographieArticles et RechercheApprentissage et ÉducationRessources Organisées
GitHubmystenlabs/ed25519-unsafe-libs

ed25519-unsafe-libs

Liste des bibliothèques de signatures ed25519 non sûres

Voir le dépôt
2503560il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

ed25519-unsafe-libs

Attaque par oracle de la fonction de signature à double clé publique sur Ed25519

Une liste de bibliothèques de signature ed25519 potentiellement non sûres qui exposent une API publique où la clé secrète et la clé publique peuvent être fournies indépendamment comme entrées de la fonction de signature. Une mauvaise utilisation de ces API publiques peut entraîner l'exposition de la clé privée.

La plupart des dépôts analysés sont répertoriés dans IANIX :: Choses qui utilisent Ed25519.

Nombre de bibliothèques impactées : 45
Nombre de bibliothèques ayant corrigé le problème après l'annonce : 8
dernière mise à jour : 4 mai 2023

Implémentations de preuve de concept démontrant cette exploitation potentielle :

  • Rust: ed25519-chalkias-exploit
  • Python: Vulnérabilité Ed25519 en Python, Buchanan, William J (2022). Vulnérabilité Ed25519 en Python (Récupération de la clé privée). Asecuritysite.com.

Conférences :

  • Conférence invitée au Crypto Reading Club de l'Institut national des normes et de la technologie (NIST) des États-Unis : diapositives - Taming the Many EdDSAs (pages 28-39), Konstantinos Chalkias, François Garillot, Valeria Nikolaenko (2023). Taming the Many EdDSAs & Ed25519 Signing Attacks.

Couverture médiatique et sur les réseaux sociaux de cette attaque

  • NIST Crypto Reading Club « Taming the Many EdDSAs » (8 mars 2023)
  • The Daily Swig « Des dizaines de bibliothèques cryptographiques vulnérables au vol de clés privées » (28 juin 2022)
  • Risky Biz News « Nouvelle vulnérabilité crypto : des dizaines de bibliothèques cryptographiques ont mal implémenté l'algorithme de signature numérique Ed25519 » (28 juin 2022)
  • Article de blog SafeHeron « Analyse des risques liés à l'utilisation d'Ed25519 : la clé privée de votre portefeuille peut être volée » (17 juin 2022)
  • kryptera.se « Vulnérabilité dans la plupart des bibliothèques ed25519 » (en suédois) (29 juin 2022)
  • Difesa e Sicurezza et Yoroi « Librerie crittografiche ed25519 potenzialmente non sicure » (en italien) (1er juillet et 29 juin 2022)
  • Article Medium du professeur Bill Buchanan OBE « Ed25519 is Great, But ... » (1er juillet 2022)
  • Reddit r/crypto (meilleur post du mois - 18 juin 2022)
  • Reddit r/cryptography (17 juin 2022)
  • Tweets intéressants :
    • tweet 1 (par Kostas Kryptos - « Les 26 bibliothèques vulnérables d'origine »)
    • tweet 2 (par Kostas Kryptos - « Conséquences des 40 bibliothèques vulnérables »)
    • tweet 3 (par Catalin Cimpanu - « 40 bibliothèques cryptographiques sont impactées par la même mauvaise implémentation d'Ed25519 »)
    • tweet 4 (par Kenny Paterson - « Potentiel de récupération à grande échelle de clés privées EdDSA, cf. http://kopenpgp.com où le même vecteur a été exploité dans les bibliothèques OpenPGP »)
    • tweet 5 (par Steven Galbraith - « Un danger pour les signatures déterministes : mieux vaut vérifier qu'il s'agit de la bonne clé publique ! »)
    • tweet 6 (par Riyaz Faizullabhoy - « Si vous utilisez EdDSA en production, allez-y jeter un œil »)
    • tweet 7 (par Bart Preneel - « Rappel : implémenter correctement et en toute sécurité des algorithmes cryptographiques est difficile »).
  • Défis CTF (capture the flag) mettant en scène cette attaque :
    • ImaginaryCTF - JWT25519 (200pts) (30 juin 2022)

Quel est le problème ?

Notez que normalement, et conformément à la rfc8032 associée, les signatures EdDSA sont déterministes : pour un même message d'entrée à signer, une signature unique composée de deux éléments, un point de courbe R et un scalaire S, est renvoyée.

Un détail algorithmique est que la clé publique du signataire n'intervient que dans le calcul déterministe de la partie S de la signature, mais pas dans la valeur R. Cela implique que si un adversaire pouvait d'une manière ou d'une autre utiliser la fonction de signature comme un oracle (qui accepte des clés publiques arbitraires en entrée), il serait alors possible d'obtenir, pour le même message, deux signatures partageant le même R et ne différant que sur la partie S. Malheureusement, lorsque cela se produit, on peut facilement extraire la clé privée ; ce post StackOverflow explique pourquoi cela est possible.

Cela dit, les API publiques ne devraient PAS autoriser une paire de clés privée/publique dissociée comme entrée de signature. Pour contourner ce problème, de nombreuses implémentations stockent la clé publique avec la clé privée (ou la graine) et considèrent l'ensemble de la paire de clés comme le secret, OU elles redérivent toujours la clé publique dans la fonction de signature. Malheureusement, un grand nombre de bibliothèques existantes ne traitent pas ce problème et autorisent des clés publiques arbitraires en entrée sans vérifier si la clé publique d'entrée correspond à la clé privée d'entrée.

Bien sûr, cela ne signifie pas que toutes les applications dépendant de ces bibliothèques sont sujettes à des attaques d'exposition de clés ; en réalité, la plupart sont probablement sûres car elles n'exposent généralement pas l'API concernée à leurs utilisateurs et couplent leur paire de clés publique/privée juste avant l'invocation de sign. D'un autre côté, même lorsque ces API ne sont pas exposées, certaines applications adoptent des stratégies de modèle de menace TCB différentes quant à la gestion et au stockage des clés privées et publiques. Cela dit, pour prévenir cette attaque, les développeurs devraient également mettre en œuvre un protocole de protection de l'intégrité des clés publiques.

Nous listons ici quelques bibliothèques concernées ainsi que les références de code associées.

Mauvaise utilisation de l'API Ed25519 conduisant à l'extraction de la clé Fig 1. Un exemple de mauvaise utilisation de l'API dans la crate Rust ed25519-dalek.

Bibliothèques concernées

  • C: OpenGNB
    https://github.com/gnbdev/opengnb/blob/master/libs/ed25519/sign.c#L7
Télécharger l’outil