Faille RNG COLDCARD : analyse du vol de 88 millions de dollars en Bitcoin
Célestine Rochefour
88,6 millions de dollars. 1 367 Bitcoin. 4 585 adresses compromises. Une seule vulnérabilité logicielle. En août 2026, l’écosystème des cryptomonnaies a été frappé par l’une des attaques les plus méthodiques jamais observées contre un portefeuille matériel. La faille RNG COLDCARD a exposé une vérité inconfortable : même les dispositifs de stockage à froid les plus réputés peuvent reposer sur un maillon faible, en l’occurrence un générateur de nombres aléatoires (RNG) défaillant. Cet incident, documenté par Galaxy Research, Chainalysis et les équipes de Block, offre des leçons cruciales pour quiconque détient des actifs numériques. Comment une simple erreur d’intégration a-t-elle pu vider des milliers de portefeuilles ? Plongeons au cœur de la faille.
L’attaque éclair : chronologie et ampleur du vol de Bitcoin
Le 30 juillet 2026, à 14h30 UTC, les équipes de sécurité de Galaxy Research ont observé une anomalie frappante sur la blockchain Bitcoin. Une série de transactions, émanant de centaines d’adresses différentes, convergeait vers un petit nombre de portefeuilles contrôlés par un attaquant. En l’espace de 41 minutes, 1 083 BTC, d’une valeur estimée à 70,2 millions de dollars à l’époque, ont été dérobés depuis 1 196 adresses.
Selon le rapport de Galaxy Research, chaque transaction présentait des caractéristiques identiques : des frais de transaction fixés à 30 satoshis par virtual byte (sat/vB), soit un surpaiement de 30 à 75 fois par rapport à la médiane de la semaine (0,4 à 1,0 sat/vB), et aucune adresse de change. « Signature: every sweep paid an identical hardcoded 30.0 sat/vB … That looks like an automated tool spending keys it already held, not owners moving funds », ont expliqué les chercheurs. Cette signature a immédiatement alerté les analystes : il ne s’agissait pas d’un mouvement de fonds légitime, mais d’une opération de vol automatisée.
Le 1er août, une deuxième et une troisième vague de transactions ont été identifiées. Le bilan final s’est alourdi à 1 367 Bitcoin, soit environ 88,6 millions de dollars, dérobés sur 4 585 adresses. Les fonds volés sont restés dans les adresses contrôlées par l’attaquant au moment de la publication du rapport, sans tentative de blanchiment immédiate.
Chainalysis, spécialiste de l’analyse blockchain, a révélé un détail troublant : l’attaquant a priorisé les portefeuilles à haute valeur. Durant les dix premières minutes de l’attaque, 30 millions de dollars ont été siphonnés. Une seule victime a perdu 1,8 million de dollars. « Cela suggère que l’attaquant avait identifié et étudié les portefeuilles affectés avant de commencer les vols », a commenté la firme. Cette préparation minutieuse indique que la faille était connue de l’attaquant avant même la divulgation publique par Coinkite, survenue 30 heures plus tard.
Comprendre la faille RNG COLDCARD : une erreur d’intégration aux conséquences désastreuses
Pour comprendre comment un portefeuille matériel, conçu précisément pour isoler les clés privées de tout accès extérieur, a pu être vidé à distance, il faut se pencher sur le cœur même de la génération des seeds : le générateur de nombres aléatoires (RNG).
Les portefeuilles COLDCARD intègrent un générateur de nombres aléatoires matériel dédié, basé sur le microcontrôleur STM32. Ce composant est conçu pour produire une entropie véritable, c’est-à-dire des nombres imprévisibles, en exploitant des phénomènes physiques (bruit thermique, jitter électronique). C’est cette entropie qui est utilisée pour générer la seed (la phrase de 12 ou 24 mots) à partir de laquelle toutes les clés privées sont dérivées.
Cependant, les équipes de Block (anciennement Square) ont identifié une erreur critique dans l’intégration du code RNG. « COLDCARD firmware contains an RNG integration error that causes ngu.random to use MicroPython’s deterministic Yasmarang fallback instead of the STM32 hardware RNG », explique le rapport de Block. En d’autres termes, une vérification incorrecte dans le firmware a fait que le dispositif a utilisé un générateur logiciel déterministe (Yasmarang) au lieu du générateur matériel sécurisé.
Ce générateur de secours (fallback) ne produisait pas un véritable aléa. Il utilisait l’identifiant unique du microcontrôleur et des valeurs de temporisation système (timings) comme source d’entropie. Or, ces valeurs sont observables et, dans une certaine mesure, reconstructibles. Un attaquant pouvait donc, en théorie, reproduire l’environnement de génération de la seed.
Concrètement, la faille RNG COLDCARD a permis aux attaquants de générer des seeds potentielles hors ligne, de calculer les adresses Bitcoin correspondantes, et de les comparer aux adresses visibles sur la blockchain. Dès qu’une correspondance était trouvée, la seed était confirmée, et l’attaquant pouvait dériver les clés privées pour vider le portefeuille. Ce processus, bien que complexe, est parfaitement réalisable avec des ressources de calcul modernes, surtout si les seeds sont générées à partir d’une source d’entropie faible.
L’importance cruciale de l’entropie et du RNG matériel
Cet incident rappelle une vérité fondamentale de la cryptographie : la sécurité d’un système repose entièrement sur la qualité de son générateur de nombres aléatoires. Un RNG logiciel déterministe, même s’il semble aléatoire, produit une séquence prévisible si l’état initial est connu ou devinable. C’est pourquoi les normes de sécurité les plus strictes, comme les critères communs (Common Criteria) ou les recommandations de l’ANSSI, exigent l’utilisation de RNG matériels certifiés pour les applications cryptographiques sensibles.
Encadré : Pourquoi le RNG est le fondement de la sécurité des cryptomonnaies
La seed de votre portefeuille est une clé maîtresse. Si elle est générée à partir d’un faible niveau d’entropie, l’espace des seeds possibles est considérablement réduit. Un attaquant n’a pas besoin de deviner votre seed exacte parmi 2^256 possibilités ; il lui suffit de générer toutes les seeds possibles à partir de l’état initial limité du RNG déterministe. C’est exactement ce qui s’est passé avec la faille RNG COLDCARD. La différence entre un RNG matériel et un RNG logiciel déterministe est la différence entre une serrure inviolable et une serrure dont toutes les clés sont des copies conformes.
Quels sont les portefeuilles COLDCARD concernés et comment les sécuriser ?
Coinkite, le fabricant de COLDCARD, a publié un avis de sécurité détaillant les versions de firmware affectées. La vulnérabilité touche une large gamme de produits, principalement les générations Mk2, Mk3, Mk4, Mk5 et Q.
| Modèle | Firmware affecté | Firmware corrigé |
|---|---|---|
| Mk2 / Mk3 | 4.0.1 à 4.1.9 | ≥ 4.2.0 |
| Mk4 / Mk5 (Standard) | Avant 5.6.0 | ≥ 5.6.0 |
| Mk4 / Mk5 (Edge) | Avant 6.6.0X | ≥ 6.6.0X |
| Q (Standard) | Avant 1.5.0Q | ≥ 1.5.0Q |
| Q (Edge) | Avant 6.6.0QX | ≥ 6.6.0QX |
Il est important de noter que les produits TAPSIGNER, OPENDIME et SATSCARD de Coinkite ne sont pas affectés, car ils utilisent des bases de code différentes.
Coinkite a également indiqué avoir détruit tous les dispositifs COLDCARD en attente d’expédition qui contenaient le firmware vulnérable. Les clients dont les appareils avaient déjà été expédiés ont été contactés par courriel avec des instructions de migration.
Mesures d’atténuation et facteurs de risque
Tous les utilisateurs de COLDCARD ne sont pas égaux face à cette faille. Le risque dépend de la manière dont la seed a été générée.
- Seeds à risque : Toute seed générée sur un appareil fonctionnant avec l’un des firmwares vulnérables listés ci-dessus est considérée comme compromise. Même si vous avez mis à jour le firmware par la suite, la seed initiale reste vulnérable.
- Seeds potentiellement protégées : Coinkite précise que les seeds supplémenté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’ajout d’entropie externe via des dés ou une pièce de monnaie renforce la seed au-delà de ce que le RNG défaillant pouvait produire.
- Rôle de la passphrase BIP-39 : L’utilisation d’une passphrase BIP-39 forte et unique rend l’exploitation plus difficile, car elle ajoute une couche de sécurité dérivée de la seed. Cependant, elle ne répare pas la vulnérabilité sous-jacente de la seed. La migration reste impérative.
Procédure de migration : étapes actionnables pour protéger vos fonds
Si vous possédez un portefeuille COLDCARD, la mise à jour du firmware ne suffit pas. Elle corrige le RNG pour les futures seeds, mais ne protège pas les seeds générées précédemment. Une migration complète des fonds vers une nouvelle seed est obligatoire. Voici la procédure recommandée par Coinkite et les experts en sécurité :
- Vérifiez votre sauvegarde existante. Avant toute manipulation, assurez-vous que votre seed phrase actuelle est correctement enregistrée et accessible. Vous en aurez besoin pour accéder à vos fonds.
- Installez le firmware corrigé. Mettez à jour votre COLDCARD vers la dernière version stable (≥ 4.2.0 pour Mk2/Mk3, ≥ 5.6.0 pour Mk4/Mk5 Standard, ≥ 6.6.0X pour Edge, ≥ 1.5.0Q pour Q Standard).
- Générez une nouvelle seed. Une fois le firmware mis à jour, utilisez la fonction de réinitialisation de l’appareil pour générer une nouvelle seed. Assurez-vous que le processus utilise désormais le RNG matériel STM32.
- Enregistrez et vérifiez la nouvelle seed. Notez soigneusement les 12 ou 24 mots sur un support physique résistant au feu et à l’eau. Utilisez la fonction de vérification de l’appareil pour confirmer que vous avez correctement enregistré la seed.
- Effectuez une transaction test. Transférez une petite quantité de Bitcoin de votre ancienne seed (via un wallet logiciel intermédiaire, ou directement si vous gérez les deux seeds sur le même appareil en utilisant des slots différents) vers la nouvelle adresse générée par votre COLDCARD. Attendez plusieurs confirmations.
- Transférez le reste des fonds. Une fois la transaction test confirmée, vous pouvez transférer le solde restant. Pour des raisons de sécurité, il est conseillé d’utiliser un wallet logiciel (comme Electrum ou Sparrow) connecté à votre COLDCARD en mode « watch-only » pour créer les transactions, puis de les signer avec le COLDCARD.
- Conservez l’ancienne sauvegarde jusqu’à confirmation. Ne détruisez pas votre ancienne seed phrase tant que vous n’êtes pas certain que tous les fonds ont été correctement transférés et que vous pouvez accéder à la nouvelle seed.
Attention : La migration est un processus délicat. Toute erreur peut entraîner une perte définitive de fonds. Si vous n’êtes pas à l’aise avec ces manipulations, faites appel à un service de conseil en sécurité des cryptomonnaies ou suivez des tutoriels vidéo détaillés provenant de sources fiables.
Leçons pour l’industrie et meilleures pratiques de sécurité des portefeuilles matériels
La faille RNG COLDCARD est un signal d’alarme pour toute l’industrie des actifs numériques. Elle démontre que la sécurité d’un portefeuille matériel ne se limite pas à la robustesse de son boîtier ou à l’isolation de sa puce sécurisée. Le logiciel qui l’anime, et en particulier la gestion de l’entropie, est tout aussi critique.
Le rôle des audits et de la transparence
Coinkite a réagi rapidement en divulguant la faille et en fournissant des correctifs. La destruction des stocks non expédiés est une mesure forte qui démontre un engagement envers la sécurité. Cependant, cet incident soulève des questions sur les processus d’assurance qualité et d’audit de sécurité.
- Audits de code complets : Les audits de sécurité doivent systématiquement inclure une analyse approfondie des fonctions cryptographiques, et en particulier de la génération de nombres aléatoires. Un simple test fonctionnel (« est-ce que ça génère une seed ? ») ne suffit pas. Il faut vérifier comment elle est générée.
- Vérification indépendante : Les équipes de Block ont joué un rôle crucial en identifiant la cause racine. La collaboration entre entreprises concurrentes (Block et Coinkite) et chercheurs indépendants est essentielle pour la santé de l’écosystème.
- Transparence sur les RNG : Les fabricants devraient publier les détails de leurs implémentations RNG et les résultats des tests statistiques (comme ceux de la suite NIST SP 800-22) pour permettre une vérification par la communauté.
Responsabilité partagée : le rôle de l’utilisateur
Si la responsabilité première de cette faille incombe au fabricant, l’incident rappelle aux utilisateurs qu’ils doivent adopter une posture de « confiance zéro ».
- Ne jamais faire confiance à un seul générateur d’entropie : La pratique de l’airgap et l’ajout d’entropie externe (dés, pièces, logiciels de génération de seeds comme Ian Coleman’s BIP39 tool, utilisé hors ligne) est une excellente habitude. La faille RNG COLDCARD n’aurait pas eu d’impact sur les utilisateurs qui avaient ajouté leurs propres lancers de dés.
- Vérifier les mises à jour de sécurité : Abonnez-vous aux listes de diffusion des fabricants de vos portefeuilles matériels. La réactivité est cruciale. Coinkite a divulgué la faille 30 heures après les premiers vols, ce qui a permis de limiter les dégâts.
- Diversifier ses portefeuilles : Ne pas mettre tous ses œufs dans le même panier. L’utilisation de plusieurs portefeuilles matériels de différents fabricants pour répartir le risque est une stratégie prudente.
Conclusion : la vigilance reste le meilleur pare-feu
La faille RNG COLDCARD est bien plus qu’un simple bug logiciel. C’est une démonstration éclatante de la fragilité de la sécurité numérique face à une erreur d’intégration en apparence mineure. 88,6 millions de dollars se sont envolés en quelques heures, non pas à cause d’un piratage de la blockchain ou d’une faille dans le protocole Bitcoin, mais à cause d’une ligne de code défaillante dans le firmware d’un portefeuille matériel.
Cet événement doit servir de catalyseur pour une prise de conscience collective. Pour les fabricants, il souligne l’impératif d’audits rigoureux et de transparence totale. Pour les utilisateurs, il rappelle que la sécurité est une pratique active, pas un achat passif. La mise à jour du firmware, la migration vers une nouvelle seed et l’ajout d’entropie externe ne sont pas des options, mais des nécessités.
La faille RNG COLDCARD est désormais un cas d’école. Elle nous enseigne que dans le monde des cryptomonnaies, la confiance se gagne et se vérifie, bit par bit. La prochaine action à entreprendre est simple : si vous utilisez un COLDCARD, vérifiez votre version de firmware et entamez la procédure de migration sans délai. Votre vigilance est le dernier rempart contre les prochaines vagues d’attaques.