Aléatoire faible dans les portefeuilles cryptographiques

Recherche . Présentation générale

Aléatoire faible dans les portefeuilles cryptographiques

La même erreur revient sans cesse depuis une décennie dans le domaine des logiciels de portefeuille : la cryptographie était solide, mais le caractère aléatoire sur lequel elle reposait ne l’était pas. Voici un tour d’horizon de cette série d’échecs — et des raisons pour lesquelles, pour les utilisateurs, la prévisibilité constitue une voie vers la récupération.

Mis à jour en juillet 2026 · KeychainX — Récupération de portefeuilles depuis 2017

La plupart des pertes catastrophiques de portefeuilles ne sont pas dues à une faille de chiffrement, mais à un problème de générateur aléatoire défaillant. La sécurité d’un portefeuille repose entièrement sur des nombres imprévisibles, et lorsque ces nombres s’avèrent prévisibles, tout s’effondre, quelle que soit la puissance des algorithmes utilisés. Cette page rassemble les principaux cas sur lesquels nous menons des recherches — chacun faisant l’objet d’une page détaillée — et explique le schéma commun à ces cas ainsi que ses implications en matière de récupération.

Le caractère aléatoire est le fondement d’un portefeuille

Chaque portefeuille commence par un secret : une clé privée ou une graine, choisie idéalement dans un espace si vaste que personne ne pourrait jamais le deviner ni l’énumérer. Cette impossibilité à deviner provient entièrement du hasard. Si le hasard utilisé pour créer vos clés était véritablement imprévisible, votre portefeuille serait sécurisé même face à une puissance de calcul illimitée. Si ce n’était pas le cas — si les nombres « aléatoires » provenaient d’une source prévisible, comme une horloge ou un générateur défectueux —, alors cet immense espace se réduirait à un espace restreint et explorable, et même le chiffrement le plus puissant au monde ne pourrait le protéger.

Deux cas où le hasard fait défaut

Un aléa insuffisant compromet la sécurité d’un portefeuille à deux niveaux distincts. Le premier concerne la génération de clés: si la graine ou la clé privée a été générée à partir d’une entropie prévisible, un attaquant peut régénérer la clé exacte. Le second concerne la signature: chaque signature de transaction nécessite une nouvelle valeur aléatoire (le nonce ECDSA), et si cette valeur est prévisible ou répétitive, la clé privée peut être calculée directement à partir des transactions publiques sur la blockchain. Ces deux cas sont fatals, et différents cas concrets relèvent de chacune de ces catégories.

Randstorm — clés prévisibles pour portefeuilles de navigateur

Randstorm a affecté des millions de portefeuilles générés dans le navigateur entre 2011 et 2015 environ, à l’aide de la bibliothèque BitcoinJS, dont la routine SecureRandom collectait bien moins d’entropie que prévu. Il en a résulté des clés issues d’un espace de génération fortement réduit. Il s’agit d’une défaillance dans la génération des clés, qui touche un très grand nombre de portefeuilles de la première génération. Consultez notre étude sur Randstorm pour plus de détails.

MilkSad — une graine issue de l’horloge, ou pire encore

La faille MilkSad (CVE-2023-39910) a affecté les portefeuilles dont la graine provenait de la commande « bx seed » de libbitcoin-explorer, qui initialisait un algorithme Mersenne Twister à l’aide de l’heure système sur 32 bits. Cela ne laisse qu’environ quatre milliards de graines possibles — et généralement bien moins, car l’heure de création est souvent connue. Il s’agit là d’une nouvelle faille de génération de clés, dans un outil largement utilisé. Consultez notre étude sur MilkSad.

Android SecureRandom — fuite de clés lors de la signature

La faille SecureRandom d’Android découverte en 2013 est un cas classic d’échec classic . Le générateur aléatoire d’Android pouvait renvoyer des valeurs répétées, ce qui amenait les portefeuilles Bitcoin à réutiliser le nonce ECDSA d’une signature à l’autre — ce qui permettait à n’importe qui de calculer la clé privée à partir de deux transactions publiques. Les fonds ont été directement détournés de la chaîne. Consultez notre étude sur SecureRandom d’Android.

Trust Wallet — une nouvelle version moderne

Le problème de l’aléatoire faible ne date pas d’hier. En 2023, on a découvert que l’extension de navigateur Trust Wallet générait des phrases mnémoniques à l’aide d’un générateur pseudo-aléatoire prévisible, ce qui permettait d’énumérer les clés créées dans la fenêtre concernée — la même faille de génération de clés que celles observées chez Randstorm et MilkSad, une décennie plus tard. Cela nous rappelle que ce type de bug réapparaît chaque fois qu’un développeur a recours à une source d’aléatoire pratique mais non cryptographique.

L’angle « PRNG » de la prévente de 2014

Nos propres recherches étendent ce phénomène au générateur de la prévente d’Ethereum de 2014, qui s’appuyait sur la fonction Math.random() du navigateur pour certaines étapes de son processus. Sous Firefox, un effondrement spécifique de l’entropie pouvait réduire le caractère aléatoire inconnu à un horodatage borné — ce qui constituait une voie de récupération potentielle pour un sous-ensemble de ces portefeuilles de grande valeur. Consultez nos recherches sur les générateurs de nombres aléatoires pseudo-aléatoires (PRNG) utilisés lors de la prévente.

Le principe : une cryptographie solide, une graine prévisible

Dans chacun de ces cas, la cryptographie en elle-même ne posait aucun problème. L’AES, l’ECDSA et les fonctions de hachage n’ont jamais constitué le point faible ; celui-ci résidait toujours dans la donnée d’entrée — une valeur aléatoire qui s’est avérée prévisible parce qu’elle provenait d’une horloge, d’un générateur de plate-forme défectueux, d’une particularité du navigateur ou d’une fonction non cryptographique utilisée là où une fonction cryptographique était requise. C’est en reconnaissant ce schéma que nous pouvons examiner un portefeuille « sécurisé » et poser la bonne question : non pas « le chiffrement est-il solide ? », mais « d’où provient réellement le caractère aléatoire ? »

Pourquoi la prévisibilité est une arme à double tranchant

Voici ce qui importe pour un propriétaire. Cette prévisibilité, qui permet à un attaquant de régénérer une clé ou de la déduire à partir d’une signature, est précisément ce qui nous permet de récupérer un portefeuille pour son propriétaire légitime. Si votre portefeuille a été créé avec un aléa insuffisant et que vous en avez perdu l’accès, c’est justement l’espace de recherche restreint qui le met en danger qui permet de le reconstruire — en parcourant l’ensemble des graines possibles, ou en déduisant la clé à partir de vos propres transactions publiques. Nous procédons ainsi strictement dans le cadre de la récupération par le propriétaire, pour les portefeuilles dont un client peut prouver qu’il en est le propriétaire, afin de lui restituer des fonds qu’il aurait autrement perdus.

Comment savoir si vous êtes susceptible d’être concerné

Vous pourriez être exposé si votre portefeuille a été : créé dans un navigateur entre 2011 et 2015 (Randstorm) ; généré à l’aide de la graine « bx » de libbitcoin ou d’un outil s’appuyant sur celle-ci (MilkSad) ; créé dans l’un des premiers portefeuilles Bitcoin pour Android vers 2013 (SecureRandom) ; créé dans la fenêtre de l’extension Trust Wallet concernée ; ou s’il s’agit d’un portefeuille issu de la prévente Ethereum de 2014. Ce qui est inquiétant dans tous ces cas, c’est que le portefeuille semble tout à fait normal : la faille est invisible jusqu’à ce que quelqu’un effectue une énumération de l’espace. Si l’une de ces descriptions correspond à l’un de vos portefeuilles contenant encore des fonds, considérez-le comme à risque et transférez les fonds ; si vous en avez perdu l’accès, cette même faille pourrait vous permettre d’y accéder à nouveau.

À quoi ressemble un bon hasard ?

La leçon à retenir en matière de sécurité est claire : les clés et les graines doivent provenir d’une source aléatoire cryptographique appropriée, et la signature doit utiliser à chaque fois un nonce unique et imprévisible (les portefeuilles modernes utilisent des nonces déterministes, conformément à la RFC 6979, afin d’éliminer totalement le risque de réutilisation). Générez vos graines à l’aide d’un logiciel fiable et à jour ou d’un portefeuille matériel réputé ; méfiez-vous des anciens générateurs basés sur navigateur et des outils abandonnés ; et si un portefeuille a été créé à l’aide d’un des éléments de la liste ci-dessus, migrez vers un portefeuille nouvellement généré. Un bon générateur aléatoire est invisible lorsqu’il fonctionne et catastrophique lorsqu’il ne fonctionne pas — c’est pourquoi il mérite toute cette attention.

Nos recherches

La récupération des clés à aléatoire faible constitue un axe central des travaux de KeychainX, car une grande partie des cryptomonnaies « perdues » à leurs débuts sont en réalité des cryptomonnaies à aléatoire faible qui n’attendent qu’à être reconstituées pour leurs propriétaires. Chaque cas mentionné ci-dessus dispose de sa propre page détaillée, et cette vue d’ensemble les regroupe au sein d’une même catégorie. Nous actualisons et mettons à jour cette étude à mesure que de nouveaux cas apparaissent — ce phénomène n’est pas près de disparaître, car la tentation de recourir à un aléa de commodité refait surface à chaque nouvelle génération de logiciels de portefeuille.

Foire aux questions

Qu’est-ce que le « hasard faible » dans un portefeuille cryptographique ?

C’est lorsque les nombres aléatoires utilisés pour générer des clés ou signer des transactions proviennent d’une source prévisible — une horloge, un générateur défectueux ou une fonction non cryptographique —, ce qui réduit l’immense espace de clés à un espace restreint et facilement explorable. Le chiffrement reste solide ; c’est la donnée d’entrée qui constitue le point faible.

Quelles sont les vulnérabilités qui appartiennent à cette famille ?

Randstorm (portefeuilles de navigateur, 2011-2015), MilkSad (graine libbitcoin bx, CVE-2023-39910), la faille SecureRandom sur Android en 2013, le problème lié à l’extension Trust Wallet en 2023 et la faille du générateur de nombres aléatoires (PRNG) lors de la prévente d’Ethereum en 2014.

Est-ce que le fait que l’aléatoire soit faible signifie que j’ai perdu tout mon argent ?

Cela signifie que le portefeuille est exposé à un risque : n’importe qui pourrait potentiellement régénérer la clé. Mais pour son propriétaire légitime, cela signifie également qu’il est souvent possible de le récupérer, car c’est précisément l’espace de recherche réduit qui met le portefeuille en danger qui permet de le reconstituer.

Comment savoir si mon portefeuille a utilisé un générateur aléatoire peu performant ?

Vérifiez comment et quand il a été créé : les portefeuilles intégrés aux navigateurs de 2011 à 2015, les graines générées par BX Seed, les premiers portefeuilles Android, la fenêtre concernée de Trust Wallet ou les portefeuilles issus de la prévente de 2014 constituent les principaux profils à risque. Le portefeuille en lui-même semble normal, c’est donc son historique de création qui est révélateur.

Est-il possible de récupérer un portefeuille affecté par un manque d’aléatoire ?

Souvent, pour le propriétaire. À partir des informations concernant la date et la manière dont le portefeuille a été créé (ainsi qu’une adresse connue), nous passons au crible l’espace de graines réduit ou déduisons la clé à partir de vos transactions publiques. Rémunération en fonction des résultats, aucun paiement initial.

Un portefeuille conçu avec un générateur aléatoire peu performant ?

Si votre portefeuille correspond à l’un de ces profils et que vous en avez perdu l’accès, c’est souvent cette même faille qui vous permettra d’y accéder à nouveau. Expliquez-nous comment et quand cette faille a été exploitée : nous vous fournirons une évaluation honnête dans les 24 heures.

Contacter KeychainX →