Les portefeuilles crypto qui ne génèrent pas de nonces de signature suffisamment aléatoires, en 2025, vont au-delà de la négligence.
Tansel Kaya
Tansel Kaya29 nov., 04:47
L'"extraction de clé à partir de signatures" mentionnée dans le hack d'Upbit est une attaque cryptanalytique avancée visant l'algorithme Elliptic Curve Digital Signature Algorithm (ECDSA) utilisé dans Solana (et de nombreuses autres blockchains). Les attaquants ont capté un motif caché dans les signatures en raison de la nonce (nombre aléatoire à usage unique k) prévisible générée par le logiciel de portefeuille d'Upbit, ce qui leur a permis de calculer mathématiquement la clé privée du portefeuille. 1. Comment fonctionne simplement l'ECDSA ? Lors de la signature de chaque transaction : Clé privée : d (ne doit jamais être partagée) Nombre aléatoire à usage unique : k (nonce) → doit être complètement aléatoire et secret pour chaque signature Signature résultante : paire (r, s) (visible par tous sur la blockchain) Si k n'est pas aléatoire ou présente un motif prévisible, la clé privée d peut être extraite à partir de plusieurs signatures. 2. La vulnérabilité d'Upbit Le logiciel de portefeuille d'Upbit ne produisait pas des valeurs de nonce suffisamment aléatoires. Cela a créé un biais statistique dans les valeurs de signature (r, s). Les attaquants ont collecté des dizaines/hundreds de transactions effectuées depuis le hot wallet d'Upbit, analysant ces signatures pour déterminer quels bits des nonces étaient prévisibles, et ont calculé la clé privée en quelques secondes/minutes par des méthodes mathématiques (attaque de réseau). 3. Types d'attaques mathématiques utilisées Hidden Number Problem (HNP) + réduction de réseau (algorithmes LLL/BKZ) Même une prévisibilité de seulement 3 à 8 bits est suffisante pour casser complètement la clé avec 20 à 100 signatures. Même avec un biais plus faible (1 à 2 bits), cela peut encore être cassé avec des milliers de signatures. 4. Pourquoi dit-on "Seul Lazarus peut le faire" ? Cette attaque nécessite : une connaissance au niveau doctorat en cryptographie (HNP, cryptanalyse de réseau) une expertise en analyse de données blockchain des ressources de calcul puissantes (clusters GPU) de la patience et une surveillance à long terme. 5. Leçons à tirer et mesures à prendre La production de nonce doit absolument être effectuée avec RFC 6979 (déterministe mais sécurisé) ou une véritable source de hasard matériel (HWRNG). Les signatures doivent obligatoirement passer des tests de randomisation (NIST, Dieharder).
Je ne suis pas sûr des détails ici. Comme certains l'ont souligné, Solana est censé utiliser Ed25519 qui a des nonces déterministes. Mais c'est une signature Schnorr et elle a la même vulnérabilité si quelqu'un a mal implémenté le processus d'échantillonnage des nonces de manière uniforme.
Je veux aussi dire : si je découvrais un défaut de randomité/uniformité de nonce dans un schéma de signature utilisé dans un portefeuille crypto, en particulier un exploité par un groupe soutenu par l'État, je ne sauterais pas nécessairement à "accident" comme seule explication.
11,87K