A
A

Bitcoin - Hacker un Hardware Wallet

sam 04 Nov 2023 ▪ 9 min de lecture ▪ par Nicolas T.
Apprendre Wallet

La sécurité de vos bitcoins augmente sensiblement en utilisant des hardware wallets. Ces derniers sont toutefois vulnérables à de nombreux types d’attaques.

Bitcoin wallet

Bitcoin Wallet

Le rôle d’un wallet est de générer des paires de clés publiques/privées :

-La clé publique sert à recevoir des bitcoins (les « adresses bitcoin » sont des encodages de clés publiques).

-La clé privée (liée mathématiquement à sa clé publique correspondante) sert à signer une transaction. Cette dernière est ensuite propagée par le wallet vers les mineurs qui la graveront dans le marbre d’un bloc.

Ce sont les deux principales fonctions du wallet : générer/stocker les clés privées et signer des transactions.

Aujourd’hui, tous les wallets sont dits HD pour « Hierarchical Deterministic » (BIP44). Ce type de wallet crée des milliards de paires de clés à partir d’une seule seed (les fameux 12 ou 24 mots).

Au-delà de cette architecture commune, on distingue d’une part le wallet traditionnel qui s’installe sur son PC ou son smartphone. Et puis le hardware wallet, qui remplit la même fonction, mais de manière beaucoup plus sécurisée.

Les premiers sont plus simples (un seul programme suffit), mais sont vulnérables à des malwares. Comme l’a rappelé Ledger sur son blog l’année dernière, certains malwares comme « Pegasus » sont capables d’exfiltrer des SMS, des messages de l’application chiffrée Signal, des appels téléphoniques, etc.

Plusieurs malwares ont été développés spécifiquement pour vider des wallets. Notamment KPOT ou ElectroRAT qui vont capturer le mot de passe du wallet lors de sa frappe sur le clavier, déchiffrer les données de configuration du wallet et exfiltrer la seed dont dérivent toutes les clés privées.

Le second type de wallet est un petit appareil, généralement de la taille d’une grosse clé USB. Ces appareils vont de pair avec un wallet installé sur son PC. Ils permettent de signer des transactions sans jamais que la seed se retrouve sur un PC potentiellement infecté.

Néanmoins, la seed se trouvant à l’intérieur d’un hardware wallet reste vulnérable à une attaque physique.

À l’intérieur d’un hardware wallet

A son cœur se trouve une puce microélectronique (ou microcontrôleur). Il s’agit en essence d’une plaque de silicium de quelques millimètres carrés sur laquelle des millions de transistors ont été gravés. Ces transistors s’interconnectent via des pistes conductrices microscopiques pour former des portes logiques par lesquelles les électrons circulent.

D’autres couches d’interconnexion s’y superposent pour rassembler les portes logiques en fonctions plus complexes : microprocesseur/contrôleur, mémoires, etc…

Les entrailles des puces ont beau être des labyrinthes microscopiques inatteignables, il reste possible de les chahuter pendant leur fonctionnement, parfois chirurgicalement, pour forcer son chemin à l’intérieur et/ou extraire des informations.

Le donjon Ledger est un spécialiste en la matière. Leur équipe a d’ailleurs gentiment taclé le concurrent Trezor tout récemment :

Précisons tout de même que l’attaque de Ledger est réduite à néant si l’utilisateur se sert d’une passphrase lors de la génération de la seed. Par ailleurs, Trezor se dotera bientôt d’un Secure Element (SE) open source conçu par Tropic Square. En attendant, son modèle Trezor Safe dévoilé en octobre contient bien un SE (non open source).

Le problème est toutefois bien réel. De nombreuses techniques d’attaque sont bien documentées et à la portée de plus en plus de monde. Certaines attaques physiques sont même devenues très peu onéreuses.

Beaucoup de techniques sont des détournements d’outils et méthodes venant du domaine de l’analyse de défaillance. Par exemple, lorsque les ingénieurs de l’industrie spatiale injectent des fautes dans leurs circuits à l’aide de lasers pour tester leur résistance au rayonnement cosmique.

Les techniques de préparation (décapsulation de boitiers, retrait des couches technologiques d’une puce, etc) et d’imagerie (thermique, rayons X, etc) sont également détournées pour hacker des puces électroniques.

En somme, il est plus ou moins facile d’extraire la seed d’un Bitcoin hardware wallet. Cela dépend si le circuit est doté d’un Secure Element ou pas.

Attaques physiques

Le premier type d’attaque est dit par canaux auxiliaires. Vous en trouverez une description dans le dernier numéro de MISC, le magazine de la cybersécurité offensive et défensive.

Son but est l’analyse de propriétés physiques du circuit telles que sa consommation électrique, son rayonnement électromagnétique, ses temps de calcul, etc. C’est-à-dire une grandeur physique mesurable et directement corrélée à une information que l’on cherche à extraire.

Ces attaques sont dites non invasives. L’attaquant ne fait qu’observer le circuit pendant son fonctionnement. Sa consommation électrique par exemple. Après suffisamment de mesures, des outils statistiques permettent de reconstruire les informations recherchées, typiquement un mot de passe.

Démonstration dans cette vidéo réalisée par Ledger : Side-channel attacks | Enter the Donjon.

Une seconde catégorie concerne les attaques plus invasives dites « par injection » qui viennent altérer physiquement le circuit. On parle d’attaques en fautes dont le principe est d’introduire des erreurs de calcul lors du fonctionnement du circuit.

L’objectif est d’affecter son fonctionnement pour extraire des informations ou autoriser une opération normalement interdite. Tout un florilège de « fault attacks » existent :

« Power Glitch » : Cette attaque consiste à couper l’alimentation du circuit pour interrompre son traitement. Stopper le processus d’écriture en mémoire Flash peut corrompre les données inscrites et provoquer des erreurs qui permettront une attaque logique au démarrage suivant.

Démonstration par Ledger : Power glitch attacks | Enter the Donjon

« Tension Glitch » : Baisse momentanée de la tension d’alimentation du circuit. Peu onéreuse, cette technique nécessite simplement un transistor et un générateur d’impulsions.

« Clock Glitch » : Modification brève de la fréquence de l’horloge du processeur (overclocking). Cette méthode est tout aussi facile que les glitchs en tension, mais également facile à contrer.

« Perturbation électromagnétique » : Émission d’une puissante impulsion électromagnétique à l’aide d’une antenne placée près de la puce. Il en résulte des courants dans les pistes du circuit qui modifient les valeurs des signaux logiques (0 ou 1).

« Injection de fautes par laser » : On projette un puissant laser sur le silicium. Cela permet de générer des courants indésirables dans les transistors par effet photoélectrique. Il faut pouvoir accéder à la puce de silicium sans la détruire.

L’attaque laser a l’avantage d’être très chirurgicale. Elle cible directement le transistor don’t l’ouverture permettra de déverrouiller l’accès à la puce. Cette technique donne les meilleurs résultats, mais elle est plus chère et plus complexe à réaliser.

Démonstration par Ledger : Laser fault attacks | Enter the Donjon.

Attaques très invasives

Cette troisième catégorie d’attaque est généralement aussi complexe que coûteuse. Il faut mettre à nu la puce de silicium pour aller sonder directement des signaux internes du circuit à l’aide de fines aiguilles.

Le but du jeu est d’enregistrer des signaux transitant dans les conducteurs électriques reliant plusieurs composants. L’attaque peut même aller jusqu’à une modification du circuit en ajoutant/supprimant des pistes de connexion. Ce travail de microchirurgie se réalise à l’aide d’un FIB (Focused Ion Beam) qui permet de couper ou de créer de nouvelles connexions.

Le travail de préparation et d’imagerie est extrêmement complexe et fastidieux sans les plans de la puce. Plusieurs mois sont nécessaires pour comprendre en détail son fonctionnement afin d’identifier quels transistors doivent être visés.

Il faut vraiment que le jeu en vaille la chandelle pour mener une attaque d’une telle envergure. Typiquement, un wallet bitcoin que l’on suspecte d’être plein…

En conclusion, de nombreuses protections sont nécessaires pour empêcher un attaquant de révéler les secrets contenus dans une puce. Les Secure Elements en embarquent beaucoup, ce qui les rend bien plus résistants aux attaques physiques que les microcontrôleurs classiques.

Maximisez votre expérience Cointribune avec notre programme 'Read to Earn' ! Pour chaque article que vous lisez, gagnez des points et accédez à des récompenses exclusives. Inscrivez-vous dès maintenant et commencez à cumuler des avantages.


A
A
Nicolas T. avatar
Nicolas T.

Reporting on Bitcoin, "the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy".

DISCLAIMER

Les propos et opinions exprimés dans cet article n'engagent que leur auteur, et ne doivent pas être considérés comme des conseils en investissement. Effectuez vos propres recherches avant toute décision d'investissement.