Portefeuilles Coldcard : un défaut d'entropie lié à un vol de 38 M$ en bitcoin
ALERTE SÉCURITÉ — Si vous avez généré une phrase de récupération (seed) sur un Coldcard Mk3, Mk4, Mk5 ou Q avant le dernier correctif de firmware, vos fonds peuvent être exposés. Consultez les informations officielles et lancez une migration sans attendre.
Ce que l'on sait — balayage on-chain de 38 M$
Selon Lookonchain, plus de 38 M$ de bitcoin, soit précisément 594,48 BTC, ont été transférés depuis environ 500 portefeuilles vers une adresse de consolidation commençant par bc1qnk… sur une fenêtre très courte, concentrée sur un faible nombre de blocs.
Les portefeuilles vidés présentent plusieurs points communs :
- Majoritairement des portefeuilles à signature unique, sans protection multisig
- Des portefeuilles inactifs depuis des années, ce qui suggère un ciblage de seeds anciennes plutôt que d'adresses récemment utilisées
- Des transferts coordonnés et quasi simultanés, compatibles avec un "sweep" automatisé de seeds pouvant être énumérées ou dérivées dans un espace de recherche réduit
Coinkite n'a pas confirmé officiellement que ce défaut d'entropie est la cause directe de ce sweep. Le rapprochement temporel entre l'avis de sécurité et les mouvements on-chain, ainsi que le profil des portefeuilles, conduit toutefois des chercheurs en sécurité à considérer la vulnérabilité de génération de seed à faible entropie comme l'explication technique la plus probable.
La faille technique — origine du problème d'entropie
Source : note technique Coinkite — blog.coinkite.com/entropytechnicalbackgrounder/
L'avis technique de Coinkite décrit une chaîne de dysfonctionnements empêchant le générateur matériel de nombres aléatoires (TRNG) d'apporter correctement de l'entropie lors de la création de seeds sur certaines versions de firmware.
Le point clé : au lieu d'utiliser le RNG matériel, la génération de seed s'est appuyée à tort sur un générateur pseudo-aléatoire logiciel (PRNG) de MicroPython. Une configuration de build et un contrôle de préprocesseur n'ont pas imposé la voie RNG matériel, déclenchant silencieusement le mécanisme de repli logiciel, sans indicateur visible pour l'utilisateur.
Impact pratique sur la sécurité (niveau effectif vs objectif) :
- Mk3 : ~40 bits (au lieu de 128 bits)
- Mk4 / Mk5 / Q : ~72 bits (amélioration partielle via les secure elements, mais au lieu de 128 bits)
Avec 40 bits, le nombre de seeds possibles est d'environ 1 000 milliards : gigantesque au quotidien, mais potentiellement accessible à des attaquants bien équipés. 72 bits offre une protection nettement supérieure, mais reste en dessous du standard 128 bits qui rend une attaque par force brute irréaliste à horizon technologique prévisible. L'écart entre 40 ou 72 bits et 128 bits n'est pas un détail : il sépare une seed pratiquement incassable d'une seed qu'un adversaire sophistiqué pourrait explorer dans des délais plausibles.
Appareils et firmwares concernés
Source : avis Coinkite — blog.coinkite.com/coldcardmk3seedgenerationwarning/
- Mk3 — RISQUE ÉLEVÉ : seeds générées avec le firmware 4.0.1 (publié en mars 2021) jusqu'à la dernière version supportée 5.0.3. L'entropie effective est estimée à ~40 bits, l'exposition la plus sévère.
- Mk4, Mk5 et Q — RISQUE ACCRU : seeds générées sur tout firmware antérieur au dernier hotfix, avec une entropie réduite d'environ 72 bits.
- Appareils non concernés : TAPSIGNER, OPENDIME et SATSCARD (bases de code différentes, non touchées par cette vulnérabilité).
- Cas à risque plus faible : utilisateurs ayant ajouté au moins 50 lancers de dés privés et indépendants lors de la génération, ou utilisant une passphrase BIP39 forte et unique. La passphrase est traitée séparément de l'entropie interne et apporte une protection même si le RNG de l'appareil est compromis.
Ce qu'il faut faire — guide de migration
Coinkite est explicite : mettre à jour le firmware ne corrige pas une seed déjà créée. Le manque d'entropie est "inscrit" dans la seed existante. La seule mesure efficace consiste à générer une nouvelle seed et à transférer les fonds.
1) Considérez la seed actuelle comme potentiellement compromise
Si votre seed a été générée sur un appareil/firmware concerné, sans 50+ lancers de dés et sans passphrase robuste, partez du principe qu'elle est vulnérable. N'attendez pas des confirmations supplémentaires.
2) Mettez à jour vers un firmware corrigé
- Mk4 et Mk5 : firmware 5.6.0 ou ultérieur
- Modèle Q : firmware 1.5.0Q ou ultérieur
- Mk3 : aucun correctif disponible (voir mesure temporaire ci-dessous)
3) Générez une seed entièrement nouvelle sur le firmware à jour
Sur l'appareil mis à jour, créez une nouvelle seed ; ne restaurez pas l'ancienne phrase. Cette seed doit être produite avec l'entropie matérielle correcte.
Renforcement recommandé :
- Ajouter au moins 50 lancers de dés indépendants lors de la génération
- Utiliser une passphrase BIP39 forte et unique, conservée séparément de la sauvegarde de seed
4) Sauvegardez correctement seed et passphrase
Notez la nouvelle phrase sur papier et stockez-la de manière sécurisée. Si vous utilisez une passphrase BIP39, conservez-la séparément. Les deux sont nécessaires pour accéder au portefeuille : la perte de l'un des éléments entraîne une perte d'accès.
5) Vérifiez le portefeuille
Contrôlez l'empreinte (fingerprint) et vérifiez au moins une adresse de réception avant tout transfert.
6) Effectuez d'abord une transaction test
Envoyez un petit montant de l'ancien portefeuille vers le nouveau et confirmez la bonne réception.
7) Migrez l'ensemble des fonds
Transférez tout le solde vers le nouveau portefeuille. Cessez d'utiliser l'ancienne seed après migration.
Mesure temporaire pour Mk3
Si le Mk3 est votre seul appareil et que vous ne pouvez pas accéder rapidement à un Mk4/Mk5/Q, réduisez l'exposition en ajoutant une passphrase BIP39 forte et unique à votre portefeuille existant. Cette mesure ne remplace pas une migration : prévoyez un transfert vers un appareil non affecté dès que possible.
Pourquoi l'entropie est déterminante (explication simple)
La sécurité d'un hardware wallet dépend de l'aléa utilisé pour créer la seed, clé maîtresse dont dérivent toutes les adresses. Si la seed a été générée avec une entropie insuffisante, l'ensemble des seeds possibles est beaucoup plus petit que prévu. Au lieu d'une seed parmi 2^128 possibilités, on se retrouve autour de 2^40 ou 2^72 possibilités, un volume considérablement plus exploitable par un attaquant disposant de ressources de calcul importantes. Les protections physiques (airgap, résistance au sabotage) ne compensent pas une base cryptographique affaiblie.
Sources officielles et prudence
- Alerte Mk3 Coinkite : blog.coinkite.com/coldcardmk3seedgenerationwarning/
- Note technique : blog.coinkite.com/entropytechnicalbackgrounder/
Vérifiez systématiquement via les canaux officiels Coinkite. Évitez les "supports" non officiels sur les réseaux sociaux et tout tiers proposant une aide à la récupération ou à la migration.
À retenir
Le défaut d'entropie Coldcard constitue une vulnérabilité grave et complexe qui, au vu des éléments on-chain disponibles, aurait déjà conduit au vol d'environ 38,2 M$ en bitcoin depuis des portefeuilles affectés. Le problème provient d'un bug de firmware ayant utilisé un PRNG logiciel à la place du RNG matériel, produisant des seeds à 40 ou 72 bits de sécurité effective au lieu de 128 bits.
Si vous possédez un Coldcard et avez généré votre seed sur un firmware concerné sans lancers de dés ni passphrase solide, vos fonds peuvent être en danger dès maintenant. L'action à mener est immédiate : mettre à jour, créer une nouvelle seed et migrer les fonds.
FAQ
Qu'est-ce que le défaut d'entropie Coldcard ?
Un bug de firmware qui a conduit les appareils Coldcard à utiliser un PRNG logiciel au lieu du TRNG matériel lors de la génération de seed, produisant environ 40 bits (Mk3) ou 72 bits (Mk4/Mk5/Q) au lieu du standard 128 bits.
Mon Coldcard est-il concerné ?
Mk3 avec firmware 4.0.1 à 5.0.3 : risque élevé. Mk4, Mk5 et Q avec firmware antérieur au dernier hotfix : concernés. TAPSIGNER, OPENDIME et SATSCARD : non concernés.
La mise à jour du firmware corrige-t-elle ma seed existante ?
Non. Une mise à jour ne modifie pas la seed déjà générée. Il faut créer une nouvelle seed sur le firmware corrigé et transférer tous les fonds.
Vers quelle version de firmware mettre à jour ?
Mk4 et Mk5 : 5.6.0 ou plus récent. Modèle Q : 1.5.0Q ou plus récent. Mk3 : pas de correctif disponible ; utilisez une passphrase BIP39 forte comme mesure temporaire en attendant la migration vers un appareil non affecté.