Recherche. Vulnérabilité

La faille SecureRandom d’Android en 2013

En 2013, le générateur de nombres aléatoires d’Android n’était pas aussi aléatoire qu’il aurait dû l’être — et les portefeuilles Bitcoin qui s’y fiaient ont divulgué leurs clés privées par le biais des transactions mêmes qu’ils signaient.

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

Il s’agit d’un exemple emblématique de défaillance du générateur aléatoire au niveau de la plateforme, ayant eu des conséquences financières directes. En août 2013, une faille dans l’implémentation de SecureRandom sous Android a fait que des valeurs censées être imprévisibles ne l’étaient pas, ce qui a exposé les clés des portefeuilles Bitcoin sur les appareils concernés. Cette page retrace les événements et explique pourquoi cette faille reste d’actualité pour les anciens portefeuilles Android.

Pourquoi les signatures ont besoin d’aléatoire

Chaque fois qu’un portefeuille Bitcoin effectue un paiement, il signe la transaction à l’aide de l’algorithme ECDSA, et chaque signature nécessite un nombre aléatoire nouveau et imprévisible : le « nonce », ou valeur k. La sécurité de l’ECDSA repose entièrement sur le fait que ce nombre soit unique et secret pour chaque signature. Si l’on réutilise la même valeur k pour deux signatures, les principes mathématiques permettent à n’importe qui de calculer la clé privée à partir des deux signatures publiques. C’est l’un des risques les plus marqués de la cryptographie, illustré par l’adage « une petite erreur, une perte totale ».

La faille SecureRandom

Les applications Android tiraient cette valeur aléatoire de la fonction SecureRandom du système. En 2013, il est apparu que, dans certaines conditions, l’implémentation d’Android n’était pas correctement initialisée : elle pouvait renvoyer des résultats prévisibles ou répétitifs. Pour les portefeuilles Bitcoin, cela signifiait que la valeur k, essentielle dans les signatures, était parfois répétée. Deux transactions provenant du même portefeuille et réutilisant une même valeur k fournissaient à un observateur tout ce dont il avait besoin pour déduire la clé privée directement à partir de la blockchain publique.

L’impact

Les transactions Bitcoin étant publiques, les pirates pouvaient analyser la chaîne à la recherche de nonces répétitifs révélateurs et vider les portefeuilles exposés. Plusieurs portefeuilles Bitcoin sous Android ont été touchés, et des fonds ont été volés avant que l’écosystème ne réagisse. La réponse officielle a incité les utilisateurs concernés à générer de nouvelles clés et à transférer leurs cryptomonnaies, et les applications de portefeuille ont publié des correctifs — mais toute transaction déjà signée avec un nonce répétitif avait exposé sa clé de manière définitive.

Identifier un portefeuille compromis

L’empreinte numérique est conservée sur la chaîne : il s’agit de deux signatures ou plus provenant de la même adresse et partageant un nonce. Un ancien portefeuille Bitcoin pour Android datant de 2013 ayant signé plusieurs transactions constitue le profil classic . Même un portefeuille qui n’a manifestement jamais été vidé peut avoir signé une transaction vulnérable, et s’il contient encore des fonds, ceux-ci peuvent être accessibles à toute personne qui repère ce schéma — ce qui justifie une évaluation plutôt que de présumer de la sécurité.

Ce que cela signifie pour la reprise

Pour un propriétaire, cette faille présente un double avantage. Si votre ancien portefeuille Android a exposé sa clé via un nonce répété, la clé privée peut être déduite de vos propres transactions publiques — ce qui, avec une preuve de propriété, constitue un moyen légitime de récupérer des fonds auxquels vous ne pouvez plus accéder autrement. Nous considérons cela strictement comme une récupération par le propriétaire : reconstituer une clé à partir des signatures d’un portefeuille dont le client est manifestement propriétaire, afin de transférer les fonds auxquels il n’a plus accès.

La leçon à en tirer

L’incident lié à SecureRandom sur Android nous rappelle de manière emblématique que la sécurité d’un portefeuille dépend entièrement de la qualité de l’aléatoire sur lequel il repose. Il s’inscrit dans la même lignée que Randstorm et MilkSad : une cryptographie solide compromise par une source aléatoire prévisible ou défaillante. La différence ici réside dans le fait que la faille a entraîné la fuite de clés lors de la signature plutôt que lors de leur génération — mais le principe, ainsi que la logique de récupération pour les utilisateurs, reste le même.

Si vous aviez un portefeuille Android datant de 2013

Si vous déteniez des bitcoins dans un portefeuille Android vers 2013 et que vous disposez encore d’une partie de ces clés ou de l’historique des transactions, considérez ce portefeuille comme potentiellement compromis : les fonds restants doivent être transférés vers un portefeuille reposant sur un système de générateur aléatoire fiable. Si vous avez perdu l’accès à ce portefeuille, la faille liée au « nonce » pourrait en fait vous permettre, en tant que propriétaire, d’y accéder à nouveau — cela vaut la peine d’être vérifié avant de considérer ces fonds comme perdus.

Pourquoi cela reste important, même des années plus tard

Il est tentant de considérer une faille datant de 2013 comme de l’histoire ancienne, mais la permanence du Bitcoin change la donne. Chaque signature vulnérable jamais diffusée figure toujours sur la chaîne, exactement telle quelle ; ainsi, une clé exposée par un nonce répété il y a une décennie reste exposée pour toujours — la blockchain n’oublie pas. Cela signifie que les anciens portefeuilles Android de cette époque restent aujourd’hui un sujet d’actualité : tous ceux qui contiennent encore un solde sont accessibles à quiconque recherche ce schéma, et tous ceux dont le propriétaire a perdu l’accès peuvent potentiellement être récupérés grâce à cette même faille. Une faille dans des données publiques et permanentes n’expire jamais complètement, ce qui explique précisément pourquoi elle a sa place dans un document de référence comme celui-ci plutôt que dans une note de bas de page datant de 2013.

Notre documentation

KeychainX documente cette vulnérabilité dans le cadre de nos recherches sur la « randomité faible », menées en collaboration avec Randstorm et MilkSad. Les avis de sécurité originaux publiés en 2013 par la communauté Bitcoin fournissent toutes les informations nécessaires ; notre objectif est de permettre aux propriétaires légitimes de récupérer leurs portefeuilles affectés. Si vous possédez un ancien portefeuille Bitcoin sous Android auquel vous ne pouvez plus accéder, cela vaut la peine d’y jeter un œil.

Foire aux questions

Comment puis-je savoir si mes signatures ont réutilisé un nonce ?

Sur la blockchain, cela apparaît sous la forme de deux signatures provenant d’une même adresse et partageant la même valeur de nonce. Dans le cadre d’une évaluation, nous pouvons vérifier si ce schéma se retrouve dans l’historique des transactions d’une adresse.

En quoi consistait la faille SecureRandom d’Android en 2013 ?

Une faille dans la fonction SecureRandom d’Android qui générait des résultats prévisibles ou répétitifs. Les portefeuilles Bitcoin qui utilisaient cette fonction pouvaient réutiliser le nonce ECDSA d’une signature à l’autre, ce qui permettait à n’importe qui de déduire la clé privée à partir des transactions publiques.

Comment les fonds ont-ils été détournés ?

Les pirates ont analysé la blockchain à la recherche de signatures réutilisant le même nonce et ont calculé les clés privées à partir de celles-ci, avant de vider les portefeuilles — le tout à partir de données publiques.

Mon ancien portefeuille Android pourrait-il être concerné ?

Si la transaction date d’environ 2013 et qu’elle comporte plusieurs signatures, c’est possible. Le risque se manifeste par la présence de nonces de signature répétés sur la chaîne. Il convient de transférer les fonds restants.

Est-ce que cela peut m’aider à récupérer mon propre portefeuille ?

Si votre propre portefeuille a révélé sa clé en utilisant plusieurs fois le même nonce, celle-ci peut être déduite de vos transactions publiques — ce qui constitue un moyen légitime de récupération pour vous, en tant que propriétaire avéré.

Combien coûte la remise en état ?

Rémunération au résultat : un pourcentage de la valeur récupérée uniquement si nous retrouvons le portefeuille, et aucun paiement initial.

Un ancien portefeuille Bitcoin sous Android auquel vous ne pouvez plus accéder ?

Un portefeuille Android datant de 2013 pourrait être récupérable grâce à la faille liée au nonce — pour vous, en tant que propriétaire. Dites-nous ce que vous possédez, et nous vous fournirons une évaluation honnête dans les 24 heures.

Contacter KeychainX →