← Retour au journal

Comment NE PAS faire confiance à son Hardware Wallet

Comment NE PAS faire confiance à son Hardware Wallet

Le 30 juillet 2026, les COLDCARD ont commencé à tomber. En quatre vagues, et sans une seule transaction d’exploit sur la chaîne, les attaquants ont vidé plus de 5 200 adresses et emporté 1 816 BTC — environ 116 millions de dollars — selon le décompte de TRM Labs. Aucun appareil n’a été piraté, ni accédé à distance, ni pris d’assaut : l’avis de Coinkite le dit dans ces termes.

Trois mois plus tard, ce fut le tour de Ledger, pour une raison qui n’a rien à voir. Les appareils étaient authentiques, le firmware était l’officiel et la puce était intacte : ce qu’il y avait à l’intérieur, c’était un implant caché sous l’écran, avec un module cellulaire, qui transmettait les mots de la graine pendant que l’utilisateur les lisait.

Deux attaques, deux leçons. L’une a cassé le nombre ; l’autre, la boîte. Douze planches et un manuel clandestin pour comprendre les deux moitiés d’une même phrase : votre hardware wallet ne garde pas votre clé, il garde la qualité de votre entropie et celle de la chaîne qui l’a amenée chez vous. Et de tout cela, une seule partie est vérifiable de vos propres mains.

Deux coups, deux leçons

COLDCARD : le nombre. Le firmware 4.0.1, de mars 2021, contenait une garde de compilation qui vérifiait si une certaine macro du générateur matériel existait, et non si elle était activée. Quand elle ne l’était pas, la génération de la graine retombait en silence sur Yasmarang, le générateur pseudo-aléatoire livré avec MicroPython, initialisé avec des données qui ne sont pas secrètes : le numéro de série de la puce et les registres du timer. La force effective est tombée à environ 40 bits sur les Mk2 et Mk3 — certaines analyses parlent de 22 à 32 — et à environ 72 sur les Mk4, Q et Mk5, par mélange partiel avec l’élément sécurisé. La conception en demandait 128.

À 40 bits, il n’y a rien à pirater : on énumère les graines possibles, on en dérive les adresses et on surveille la blockchain. Quand un solde apparaît, on le vide. C’est tout ce qui s’est passé pendant ces quatre vagues, sans toucher une seule victime, sans semer un satoshi de poussière en chemin.

Deux détails qui comptent quand c’est votre tour : mettre à jour le firmware ne répare pas une graine déjà générée — il faut en créer une nouvelle avec sa propre entropie et déplacer les fonds —, et quiconque avait une phrase de passe BIP39 ou assez de dés à lui n’était pas sur la liste. Coinkite a publié un firmware d’urgence (5.6.0+) qui ne laisse plus générer de graine sans entropie de l’utilisateur.

Ledger : la boîte. Octobre 2026, une autre couche, une autre méthode. Les attaquants ont acheté des Nano X authentiques, les ont ouvertes, ont collé un implant dans l’espace de remplissage sous l’écran — un microcontrôleur STM32, un module LTE avec eSIM et une antenne — et les ont remises en circulation, surtout via des revendeurs d’Asie du Sud-Est. Des cas sont aussi apparus via Amazon et en Europe.

L’implant ne touche ni l’élément sécurisé ni le système d’exploitation : il lit les vingt-quatre mots directement sur l’écran pendant que l’appareil les affiche à la configuration initiale, et les envoie par réseau cellulaire. Le Genuine Check passait sans problème, parce que la puce d’origine était toujours là et qu’elle était authentique. Ledger a confirmé qu’il n’y avait eu aucune compromission de sa fabrication, de son firmware ni de ses systèmes : c’est une attaque physique, après l’usine, contre la distribution. Pertes estimées : entre 90 et 100 millions de dollars sur des centaines de portefeuilles.

Aucune des deux n’a eu besoin d’une vulnérabilité cryptographique. La première a demandé un bug silencieux de cinq ans dans une garde de compilation ; la seconde, un livreur complice. Et dans les deux, la même certitude inconfortable : l’air-gap ne couvre ni l’une ni l’autre.

Le mirage du coffre parfait

Slide: le chat ninja sourit à côté d'un coffre-fort géant dont la paroi arrière est cassée et ouverte

Bitcoin exige que vous gardiez votre propre argent, et le hardware wallet a résolu le problème avec une métaphore impeccable : un coffre physique, isolé d’internet, air-gapped, avec la clé privée à l’intérieur et son propre écran pour signer. La métaphore se vend toute seule parce qu’elle est tactile : on branche l’appareil, on appuie sur deux boutons, on repart tranquille.

La question à laquelle le coffre ne répond jamais est celle de l’écriteau : qui a fabriqué la serrure, et qui garde la copie de la clé maître ? Dans le cas COLDCARD, le fabricant était sérieux, le firmware était ouvert, les utilisateurs étaient avertis, et l’erreur est arrivée quand même. L’appareil continuait d’afficher son petit écran, continuait de demander le PIN, continuait d’être une brique indéchiffrable. Et pendant ce temps, il distribuait des clés de 40 bits avec la même solennité que celles de 128.

L’entropie ne se voit pas. C’est là tout le piège. Tout le reste de l’appareil s’inspecte : le boîtier, le prix, la communauté, les dépôts. La seule chose qui décide si votre argent est à vous ou à n’importe qui se joue en quelques millisecondes de bruit, à l’intérieur d’une puce, et n’apparaît sur aucun écran.

Le seul vrai travail de l’appareil

Slide: à gauche un ordinateur de bureau assemble une transaction ; à droite un gangster aux lunettes noires appose un tampon géant qui dit FIRMADO

Il faut démonter le rituel en trois étapes, car une seule des trois porte un risque réel :

  • Étape A — risque nul : votre ordinateur assemble la transaction. Vous choisissez le destinataire, le montant, les frais. Si votre ordinateur est infecté, il peut assembler une autre transaction : cela se règle en regardant l’écran de l’appareil avant de signer.
  • Étape B — risque critique : l’appareil signe avec la clé privée à l’intérieur, sans toucher à internet. C’est là que se produit la seule chose irréversible.
  • Étape C — risque nul : la transaction signée part dans le monde. Une signature ne fuit pas : elle est publique par définition, et une fois dehors il n’y a plus rien à voler.

Toute la valeur de l’appareil est concentrée dans l’Étape B, et toute sa surface d’attaque aussi. Il n’est pas nécessaire de casser la puce : il suffit que le firmware décide que la clé peut sortir — ce qu’a justement démontré la fonction Recover de Ledger en 2023, quand il est devenu clair que la phrase « la clé ne quitte jamais la puce » est une décision de conception et non une loi physique.

D’où la première règle, contre-intuitive : le travail de l’appareil n’est pas de garder la clé. Il est de signer avec elle. Tout ce qu’il fait en plus est de la surface, et tout ce qui ajoute de la « commodité » est de la surface que vous offrez à un tiers.

Le piège de la confiance aveugle

Slide : le chat ninja tient le plan d'une puce ; il imagine un bouclier (l'attente) et découvre une usine à la loupe (la réalité)

Un tableau de deux lignes démonte l’argument de vente :

La promesseLa réalité
« C’est open source. »Le logiciel, oui. Le silicium, non : aucun moyen de vérifier ce que fait réellement la puce (STM32, ESP32, ou l’élément sécurisé sous NDA).
« Il vient scellé d’usine. »Interventions dans la chaîne d’approvisionnement — l’implant de Ledger d’octobre est exactement cela —, livreurs compromis, appareils contrefaits et portes dérobées d’usine.

L’open source est une vraie vertu et aussi la partie la plus facile à obtenir : les builds reproductibles prouvent que le binaire correspond au code, pas que la puce qui exécute ce binaire fait ce que le code dit. Et du côté de la chaîne d’approvisionnement, l’histoire ne manque pas. En décembre 2023, le paquet @ledgerhq/connect-kit publié sur npm est sorti avec un drainer dedans — le compte npm d’un ancien employé, versions 1.1.5 à 1.1.7, environ deux heures en ligne, quelque 600 000 dollars drainés entre dApps et utilisateurs. Personne n’a eu à casser de la cryptographie. Quelqu’un a eu à publier un module.

Et il y a un risque moins cher que tous les précédents : la fuite de 2020 chez Ledger, avec environ 272 000 adresses postales et un million d’e-mails, a nourri des années de phishing, d’appels, d’extorsions et d’agressions à domicile contre des gens qui avaient fait ce qu’il fallait et s’étaient simplement acheté un coffre. C’est la raison de la première règle du manifeste : dire publiquement que l’on possède un hardware wallet, c’est annoncer que sa maison contient quelque chose qui vaut la peine.

Le Manifeste clandestin

Slide: le chat ninja, vieux et barbu, tient une tablette de pierre aux règles gravées, dans les montagnes

Trois règles, à lire comme de l’hygiène et non comme de l’épopée :

  1. Do not say you own a HW. Ne révélez jamais que vous en avez un. Ni sur le fil du forum, ni dans le groupe, ni en photo de fond d’écran. La discrétion est la seule atténuation qui ne dépend d’aucun fabricant.
  2. Do not buy a HW. Ou plutôt : ne l’achetez pas aveuglément. L’acheter pour qu’il devine à votre place, c’est déléguer à un inconnu la seule partie qui compte.
  3. Do not trust a HW. Ne lui faites pas confiance. Utilisez-le pour ce qu’il est : une calculatrice ennuyeuse qui signe et n’appelle personne.

Et une note de bas de page qui, en octobre, a cessé d’être théorique : si vous en achetez un quand même, achetez-le directement au fabricant et ouvrez-le avant de lui confier une graine. L’attaque de Ledger n’existerait pas sans le revendeur.

L’ennemi caché : l’entropie

Slide: un robot ouvre la tête et des engrenages en sortent ; à côté, un chat ninja se prend la tête devant un rouleau de papier qui imprime 1,2,3,4

L’entropie veut dire ici une seule chose : combien de nombres différents le processus qui a inventé votre graine pouvait produire à l’intérieur de l’appareil. Cent bits d’entropie, ce sont 2¹⁰⁰ possibilités ; quarante, c’est mille milliards, ce qui paraît énorme et se parcourt entièrement en un après-midi. La sécurité de vos fonds ne dépend pas de la longueur de la phrase que vous avez notée, elle dépend de l’ignorance qui reste dans le système quant au nombre qui vous est échu.

Le problème, c’est qu’une micropuce est par nature le contraire du hasard : c’est une calculatrice qui répète le même calcul et renvoie toujours le même résultat. Pour fabriquer du hasard, il faut aller le chercher dehors, dans un phénomène physique qui ne peut pas se répéter. Les générateurs matériels (TRNG) essaient avec le bruit thermique, la gigue des oscillateurs et d’autres sources analogiques, puis mélangent le tout avec une fonction cryptographique. Quand cette chaîne se rompt — un repli déterministe, une graine d’horloge de 32 bits, une macro désactivée — ce n’est pas la cryptographie qui échoue : c’est le point où le monde physique devait entrer dans la puce et n’est pas entré.

Deux cas avec la même signature le montrent mieux que n’importe quelle théorie. En 2023, la découverte publiée sous le nom de Milk Sad (CVE-2023-39910) a montré que bx seed, de Libbitcoin Explorer 3.x, utilisait le générateur Mersenne Twister initialisé avec 32 bits de l’horloge système : quatre milliards de possibilités — rien — et les portefeuilles touchés ont été balayés. Et le cas COLDCARD de 2026, avec une garde de compilation mal écrite et un reseed de 32 bits sur le chemin de repli. Produits différents, années différentes, même péché : quand la bonne source manque, quelqu’un a écrit un plan B, et le plan B était aussi la clé.

Physique quantique contre le monde réel

Slide: le chat ninja, en combinaison spatiale, tient avec des pinces une pierre radioactive qui brille, au-dessus d'une table avec deux dés

La théorie dit que le vrai hasard ne peut venir que d’un événement physique imprévisible. C’est une route que des gens ont déjà parcourue : Alex Waltz a construit un générateur quantique de nombres aléatoires pour des graines Bitcoin en utilisant la désintégration radioactive — un échantillon d’américium 241 pris dans un détecteur de fumée —, un tube Geiger et un Raspberry Pi. Ça fonctionne, c’est beau, et c’est la preuve que l’entropie physique est réelle et vérifiable.

Maintenant la pratique : vous ne gardez pas de plutonium dans le placard. Votre hardware wallet a un petit générateur analogique, bon marché, avec une fiche technique de deux pages, et le fabricant ne vous montre pas les nombres qui en sont sortis et ne vous laisse les comparer à rien. Là-dedans, il n’y a pas de théorie quantique : il y a de la confiance, c’est-à-dire le contraire.

La conclusion n’est pas « fabriquez-vous un générateur nucléaire ». Elle est bien plus modeste et bien plus utile : partez du principe que le générateur interne de votre appareil est faible, et cessez de lui demander d’être le seul. La solution n’est pas technologique, elle est analogique : elle se règle avec des dés.

Étape 1 : devenez le chaos

Slide: le chat ninja lance des dizaines de dés en l'air, qui explosent sur la table avec des lignes de vitesse

Achetez des dés de casino — les vrais, aux arêtes vives, pas ceux d’un jeu de société — et faites ce que fait l’appareil, mais à l’extérieur : lancez les dés des dizaines de fois et notez les résultats exacts. Ensuite, faites en sorte que votre appareil ou votre ordinateur utilise cette séquence comme source d’entropie et la mélange avec la sienne, au lieu de les laisser décider seuls.

Les chiffres, car ici ils comptent. Rien dans le monde numérique n’utilise plus de 256 bits, et les 128 bits qu’exige une phrase de 12 mots sont déjà inatteignables : chaque lancer d’un dé à six faces apporte log₂(6) ≈ 2,58 bits, donc 50 lancers font 129 bits — plus que ce qu’utilise tout le coffre — et 200 lancers environ 517 bits. L’avis de Coinkite est explicite : les graines créées entre mars 2021 et juillet 2026 sont à risque si elles ont été générées sans au moins 50 lancers de dés indépendants et privés et sans une phrase de passe BIP39 forte et unique.

Un peu d’honnêteté technique, car le diable est dans le détail : un dé peut être pipé et votre façon de le lancer peut être prévisible, c’est pourquoi aucun protocole sérieux n’utilise les dés bruts mais les dés mélangés par une fonction de hachage. Ce qui compte n’est pas que les dés soient parfaits. Ce qui compte, c’est que personne d’autre n’ait une copie du résultat. Le générateur d’usine peut être compromis par celui qui l’a fabriqué ; vos lancers, non. C’est tout ce que vous achetez.

Étape 2 : le traducteur universel (BIP39)

Slide: le chat ninja verse un sac de nombres et de symboles dans une machine industrielle ; il en sort un parchemin qui dit CASA PERRO NINJA

Les humains ne peuvent pas noter 256 bits sans se tromper, alors Bitcoin a standardisé un traducteur : BIP39. La séquence d’entropie est découpée en blocs de 11 bits, chaque bloc indexe un mot d’un dictionnaire de 2048 (2¹¹), et on ajoute un checksum — 4 bits pour une phrase de 12 mots, 8 pour une de 24 — afin que l’appareil détecte une mauvaise copie. De là vient la phrase de récupération que vous notez sur papier : vingt-quatre mots qui sont, littéralement, un nombre écrit dans une langue de deux mille mots.

Deux malentendus qui valent de l’argent. Premier : la phrase de récupération n’est pas la clé. C’est l’entrée d’une fonction de dérivation (PBKDF2-HMAC-SHA512) qui produit la graine maître ; de là — et de là seulement — viennent toutes vos clés. Second : cette fonction accepte un ingrédient supplémentaire, la phrase de passe ou « 25e mot », qui n’est pas dans votre sauvegarde. Si votre entropie est mauvaise, la phrase de passe est la seule chose qui vous sauve ; si votre entropie est bonne, c’est la seule chose qui vous sauve de quelqu’un qui trouve le papier. C’est la couche que presque personne n’utilise, et celle qui a transformé le désastre COLDCARD en frayeur pour une partie des personnes touchées et en perte totale pour le reste.

Et il y a un piège d’implémentation qu’il faut nommer, parce que c’est exactement le point de cet article : les dés ne donnent pas des puissances de deux. Soixante faces n’entrent pas exactement dans 2048, donc le programme qui convertit les lancers en mots doit écarter les valeurs hors plage — s’il les prend modulo, il introduit un biais, et ce biais est un indice. Votre entropie est aussi forte que l’arithmétique du programme qui la traduit. Une raison de plus d’utiliser un outil connu et audité plutôt que le premier venu.

Étape 3 : isolement total (mode paranoïaque)

Slide: le chat ninja, couvert d'une couverture et une lampe de poche dans la gueule, écrit devant un portable dans une pièce sombre ; une hache est plantée dans la table

La procédure n’a aucun mystère, mais elle se fait en entier ou ne sert à rien :

  • Matériel d’usage général : un vieux PC que vous n’utilisez pour rien d’autre. Pas votre machine de tous les jours, pas celle du travail, pas celle qui a le dossier Téléchargements.
  • L’outil sur une clé USB : téléchargez le convertisseur BIP39 d’Ian Coleman — un simple fichier HTML, il fonctionne sans serveur — et vérifiez-le. Cette copie s’utilise hors ligne, pas ouverte dans un navigateur connecté.
  • Coupez la connexion : éteignez le wifi, débranchez le câble, et seulement ensuite ouvrez l’outil sur le vieux PC, avec votre liste de lancers sur papier.
  • Notez les mots dans le secret absolu, à la main, sur papier — ou mieux, estampés dans une plaque d’acier, qui ne se mouille ni ne brûle. Et ensuite : allumez la machine uniquement pour l’éteindre et l’effacer, pas pour « vérifier le solde ».

L’Étape 3 est celle que presque tout le monde saute, et celle qui transforme les deux autres en théâtre. Si vous générez la graine avec vos dés sur la machine de tous les jours, wifi allumé et navigateur plein d’extensions, vous n’avez rien amélioré : vous avez offert à un malware exactement ce que le fabricant n’avait pas.

Le spectre de la garde

Slide: une balance : d'un côté une enclume qui dit Confianza Ciega en un Chip ; de l'autre, le chat ninja tenant un dé

Les deux extrêmes mis côte à côte, le choix devient clair :

Niveau débutant. L’appareil génère la graine. Vous faites confiance à son firmware, à son générateur matériel, à son élément sécurisé et à la chaîne d’approvisionnement qui l’a amené chez vous. Quand quelque chose dans cette chaîne échoue — le bug COLDCARD, le courrier intercepté, le firmware qui décide un jour d’exporter — vous perdez tout et vous l’apprenez sur Twitter. Ce n’est pas de la bêtise : c’est le niveau auquel tourne presque tout le monde, y compris beaucoup de gens qui se croient experts.

Niveau ninja. Vous créez la graine physiquement. L’appareil est une calculatrice idiote qui signe : vous ne lui demandez pas d’inventer quoi que ce soit, seulement de multiplier ce que vous avez déjà inventé. Vous faites encore confiance au firmware qui mélange votre entropie à la sienne — ce résidu existe et il faut savoir qu’il est là — mais vous ne confiez plus l’origine de votre clé à une puce que vous ne pouvez pas voir.

Le spectre, c’est cela : il n’y a pas de point de confiance zéro, il y a un point de confiance minimal et visible. Entre « je fais confiance à tout ce qu’un inconnu a fait pour moi » et « je fais confiance à ce programme pour mélanger ce que j’ai fait, et je peux relire le code qui le fait », la distance, c’est toute votre sécurité.

Le Zen de l’auto-garde

Slide: le chat ninja médite en l'air entouré de douze mots flottant dans un halo, tandis qu'un robot abandonné regarde depuis un tabouret

Vérifiez tout ce que vous pouvez. Soyez impitoyable sur la génération de vos clés, qui est le seul moment du processus où vous pouvez encore faire quelque chose. Ensuite, acceptez le reste : aucun outil ne vous donnera une confiance nulle, et qui vous promet un coffre imprenable vous vend une boîte en plastique.

La vraie sécurité ne s’achète pas emballée : elle se construit en assumant la responsabilité de sa propre entropie. C’est le même geste épistémique que nous racontons dans cette série, toujours du même côté : il n’est pas nécessaire de tout avoir pour savoir que c’est bon. PeerDAS ne télécharge pas le bloc entier : il échantillonne quelques cellules et il sait. La toile de confiance de Ğ1 n’exige la vérité complète de personne : elle demande cinq signatures qui expirent et se renouvellent. Et ici, vous n’avez pas besoin d’un générateur de nombres aléatoires parfait : vous avez besoin que le nombre que vous avez inventé, personne d’autre ne l’ait inventé.

Deux mois et demi après le désastre, le fabricant lui-même recommande toujours ce qu’il recommandait avant : 50 lancers de dés et une phrase de passe forte. Les dés sont une plaisanterie de table de café, et ils sont le seul composant du système que ni le fabricant, ni le facteur, ni le firmware, ni un attaquant disposant de votre historique complet ne peuvent prédire.

L’appareil vous donne la signature. Le hasard, c’est à vous de l’apporter.