Faille RNG COLDCARD : 88,6 millions de dollars en Bitcoin dérobés suite à un défaut de générateur aléatoire
Églantine Montclair
Introduction
Le 30 juillet 2026, une attaque d’une ampleur inédite a ébranlé l’écosystème Bitcoin. En l’espace de 41 minutes, plus de 1 083 BTC, représentant environ 70,2 millions de dollars, ont été dérobés depuis 1 196 adresses de hardware wallets COLDCARD. Au terme de trois vagues d’attaques successives, le préjudice total est estimé à 1 367 BTC, soit 88,6 millions de dollars, affectant plus de 4 500 portefeuilles distincts. L’origine de ce désastre financier ? Une faille RNG COLDCARD critique, un défaut profond dans le générateur de nombres aléatoires (RNG) du firmware, transformant un dispositif réputé inviolable en une source de clés privées prédictibles. Cet incident rappelle avec une brutalité froide que la sécurité d’un wallet matériel repose sur des fondations logicielles parfois fragiles, et que la souveraineté financière exige une vigilance technique de tous les instants.
Qu’est-ce que la faille RNG qui a fragilisé les wallets COLDCARD ?
Le rôle crucial du RNG matériel dans la sécurité des cryptomonnaies
La création d’un portefeuille Bitcoin commence par la génération d’une seed (graine), une séquence aléatoire de 128 à 256 bits. Cette seed est la racine absolue de toutes les clés privées du portefeuille. Si cette seed est prévisible, l’ensemble des fonds est compromis. Pour garantir une imprédictibilité maximale, les hardware wallets comme le COLDCARD intègrent un RNG matériel dédié (le True Random Number Generator ou TRNG du microcontrôleur STM32). Ce TRNG puise son entropie dans des phénomènes physiques quantiques (bruit thermique, jitter d’horloge), ce qui le rend, en théorie, impossible à reproduire. C’est sur ce socle que repose la promesse de sécurité des hardware wallets.
L’erreur d’intégration : du matériel au logiciel
Les équipes de sécurité de Block (anciennement Square) et des chercheurs externes ont découvert l’origine du problème : une erreur d’intégration dans le firmware COLDCARD. Une vérification incorrecte dans le code a redirigé la génération de l’aléatoire vers une fonction de secours logicielle. Au lieu d’appeler le TRNG matériel, le firmware utilisait Yasmarang, un générateur de nombres pseudo-aléatoires (PRNG) déterministe intégré à MicroPython.
“COLDCARD firmware contains an RNG integration error that causes ngu.random to use MicroPython’s deterministic Yasmarang fallback instead of the STM32 hardware RNG” - Block Report.
Yasmarang : un algorithme déterministe inadapté
Yasmarang est un PRNG simple et rapide, mais il n’est pas conçu pour la cryptographie. Il se base sur un état interne initialisé avec des valeurs observables ou reconstructibles, comme l’identifiant unique du microcontrôleur et des valeurs de timing système. En pratique, un attaquant pouvait reproduire ces conditions localement, générer la même séquence de nombres aléatoires, et ainsi reconstituer les seeds des victimes. La faiblesse est classifiée sous la référence CWE-338 (Utilisation d’un générateur de nombres pseudo-aléatoires cryptographiquement faible). Ce n’est pas une faille matérielle, mais bien une faille logicielle dans le firmware, ce qui la rend particulièrement insidieuse.
Chronologie d’un vol massif : comment 1 367 BTC ont été siphonnés
Les trois vagues d’attaques identifiées par Galaxy Research
La firme d’analyse Galaxy Research a été la première à détecter l’anomalie. La première vague d’attaques, survenue le 30 juillet 2026, est d’une efficacité redoutable : en seulement 41 minutes, 1 083 BTC (70,2 millions de dollars) sont drainés depuis 1 196 adresses. Une seconde et une troisième vagues sont identifiées le 1er août, portant le total à 1 367 BTC (88,6 millions de dollars) issus de 4 585 adresses distinctes. L’attaquant a visiblement opéré par lots, maximisant son butin avant que l’alerte ne soit donnée.
Des transactions automatisées sans faille
Plusieurs détails techniques indiquent une attaque automatisée et méticuleusement préparée. Toutes les transactions de la première vague utilisaient des frais de transaction identiques, soit 30 satoshis par vbyte, un montant 30 à 75 fois supérieur à la médiane de la semaine (0,4 - 1,0 sat/vB). De plus, aucune transaction ne générait de monnaie rendue (change output).
“That looks like an automated tool spending keys it already held, not owners moving funds.” - Galaxy Research.
Cette signature unique trahit un script automatisé dont l’objectif était la vitesse, non l’optimisation des frais. L’attaquant ne cherchait pas à minimiser les coûts, mais à vider les portefeuilles avant que les victimes ou les autorités ne puissent réagir. L’absence de change output est particulièrement révélatrice : l’attaquant vidait intégralement des UTXOs spécifiques, confirmant qu’il possédait les clés privées et qu’il ciblait des soldes précis.
Le rôle de Chainalysis dans l’identification des victimes
La société d’analyse blockchain Chainalysis a apporté un éclairage supplémentaire sur le profil de l’attaquant. Selon ses analyses, les adresses les plus riches ont été ciblées en priorité. Au cours des dix premières minutes de l’attaque, environ 30 millions de dollars ont été dérobés, dont 1,8 million de dollars provenant d’une seule adresse. Cela suggère que l’attaquant avait préalablement généré une vaste base de données de clés privées à partir des seeds déterministes, puis les avait comparées aux adresses actives et fortunées visibles sur la blockchain. L’attaque n’était pas opportuniste ; elle était chirurgicale.
Quels modèles COLDCARD sont concernés par cette vulnérabilité ?
Coinkite, le fabricant du COLDCARD, a publié une liste exhaustive des firmwares affectés. Il est essentiel pour tout propriétaire de COLDCARD de vérifier sa version.
| Modèle COLDCARD | Firmwares Affectés | Firmware Correctif |
|---|---|---|
| Mk2 & Mk3 | Versions 4.0.1 à 4.1.9 | Version 4.2.0 ou ultérieure |
| Mk4 & Mk5 | Avant Standard 5.6.0 ou Edge 6.6.0X | Standard 5.6.0+ / Edge 6.6.0X+ |
| Q | Avant Standard 1.5.0Q ou Edge 6.6.0QX | Standard 1.5.0Q+ / Edge 6.6.0QX+ |
Important : Les produits TAPSIGNER, OPENDIME et SATSCARD ne sont pas affectés, car ils utilisent des bases de code et des architectures différentes. Coinkite a également annoncé avoir détruit tous les COLDCARD en stock qui contenaient encore le firmware vulnérable, une mesure radicale visant à restaurer la confiance des utilisateurs.
Comment sécuriser votre wallet COLDCARD après cette faille RNG ?
Mettre à jour le firmware (une étape nécessaire mais insuffisante)
La première action à entreprendre est de mettre à jour votre COLDCARD vers la dernière version du firmware disponible sur le site officiel de Coinkite. Cette mise à jour corrige le défaut d’intégration du RNG pour les futures générations de seeds. Cependant, elle ne répare en aucun cas une seed qui a été générée alors que le firmware était vulnérable. Votre ancienne seed reste mathématiquement compromise.
Migrer vers une nouvelle seed : le processus étape par étape
La seule solution pérenne pour sécuriser vos fonds est de migrer vers une nouvelle seed générée avec le firmware corrigé. Voici la procédure recommandée par les experts en sécurité :
- Vérifiez votre sauvegarde actuelle : Assurez-vous que votre phrase mnémonique (seed) de 12 ou 24 mots est correctement notée et stockée en lieu sûr.
- Installez le firmware corrigé : Mettez à jour votre COLDCARD via une carte SD ou l’outil de mise à jour officiel.
- Générez une nouvelle seed : Utilisez le menu de votre COLDCARD pour créer une nouvelle seed. L’écran du dispositif doit confirmer l’utilisation du RNG matériel.
- Vérifiez la nouvelle adresse : Générez une adresse de réception et vérifiez-la attentivement sur l’écran du COLDCARD. Comparez-la avec celle affichée sur votre logiciel de portefeuille (Sparrow, Electrum, etc.).
- Effectuez une transaction test : Envoyez un montant très faible (quelques milliers de satoshis) vers la nouvelle adresse. Confirmez que la transaction est bien reçue et dépensable.
- Transférez le reste des fonds : Une fois le test réussi, vous pouvez transférer l’intégralité de vos actifs vers la nouvelle seed.
- Conservez l’ancienne sauvegarde : Ne détruisez pas l’ancienne seed tant que vous n’avez pas la certitude absolue que la migration est complète et que les fonds sont disponibles sur la nouvelle seed.
L’efficacité relative des passphrases et des dés
Coinkite précise que les seeds complétées par au moins 50 lancers de dés équitables, indépendants et privés ne sont pas considérées comme à risque par cette seule faille. L’entropie ajoutée par les dés (environ 129 bits) rend l’attaque exponentiellement plus difficile. De même, l’utilisation d’une passphrase BIP-39 forte et unique complique considérablement l’exploitation, car elle ajoute une couche de dérivation qui n’est pas affectée par la faiblesse du RNG. Néanmoins, ces mesures ne sont que des palliatifs. Elles ne réparent pas la faiblesse structurelle de la seed initiale. La migration vers une nouvelle seed reste la recommandation absolue et sans équivoque.
Leçons pour l’industrie : RNG, hardware wallets et confiance
L’importance des audits de code et de la transparence
Cet incident met en lumière un paradoxe des hardware wallets : le matériel est robuste, mais le firmware peut contenir des bugs fatals. Les audits de code réguliers, réalisés par des firmes indépendantes spécialisées en cryptographie, doivent devenir une norme industrielle, comme le préconise l’ANSSI pour les produits de sécurité critiques. La transparence sur les processus de génération d’aléatoire est tout aussi cruciale. Le code du firmware devrait être vérifiable par la communauté.
# Exemple conceptuel de l'erreur d'intégration (simplifié)
# def get_random_seed():
# if not hardware_rng_available(): # Vérification incorrecte
# entropy = yasmarang(mcu_id, system_tick) # Fallback déterministe
# return entropy
# else:
# return stm32_trng_read()
Alternatives et bonnes pratiques pour le stockage à froid
Pour les détenteurs de sommes importantes, la diversification des solutions de stockage à froid est une sage précaution. Ne pas mettre tous ses œufs dans le même panier, ni même dans le même écosystème de hardware wallet, permet de limiter l’impact d’une vulnérabilité systémique. L’utilisation de portefeuilles multisignatures (multisig) répartis entre différents fabricants (COLDCARD, Ledger, Trezor, etc.) est une pratique recommandée par les experts en sécurité. Elle permet de sécuriser les actifs même si l’un des dispositifs est compromis.
Conclusion : une piqûre de rappel sur la souveraineté des clés
Le vol de 88,6 millions de dollars via la faille RNG COLDCARD est un séisme pour l’industrie des cryptomonnaies. Il démontre que même les dispositifs les plus réputés ne sont pas infaillibles et que la sécurité est un processus dynamique, non un état statique. La souveraineté financière offerte par Bitcoin implique une responsabilité technique immense de la part de l’utilisateur. Cet incident doit servir de catalyseur pour une vigilance accrue, des audits plus rigoureux et une hygiène de sécurité irréprochable : mise à jour systématique des firmwares, vérification rigoureuse des seeds et migration proactive face à la moindre alerte de sécurité. Comme le dit l’adage dans le monde Bitcoin : “Don’t trust, verify”. La confiance est bonne, la vérification est meilleure.