Connect with us

Entreprises

Bitcoin – Hacker un {Hardware} Pockets

Published

on

Spread the love


20h00 ▪
9
min de lecture ▪ par
Nicolas T.

Advertisement

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

Bitcoin wallet

Bitcoin Pockets

Le rôle d’un pockets 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).

Advertisement

-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 pockets vers les mineurs qui la graveront dans le marbre d’un bloc.

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

Advertisement

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

Au-delà de cette structure commune, on distingue le pockets traditionnel qui s’installe sur son PC ou son smartphone. Et puis le {hardware} wallets, qui remplit la même fonction, mais ne présente pas les mêmes garanties de sécurité.

Advertisement

Les premiers sont plus simples puisqu’un seul programme suffit. Mais ils sont vulnérables à des malwares. Comme l’a rappelé Ledger sur son weblog l’année dernière, certains logiciels espions comme « Pegasus » sont capables d’exfiltrer des SMS, des messages de l’software chiffrée Sign, des appels téléphoniques, and so on.

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 pockets lors de sa frappe sur le clavier, déchiffrer les données de configuration du pockets et exfiltrer la seed dont dérivent toutes les clés privées.

Advertisement

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

Néanmoins, un Bitcoin {hardware} pockets reste vulnérable à une attaque physique.

Advertisement

À l’intérieur d’un Bitcoin {hardware} pockets

Au cœur d’un {hardware} pockets 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 on grave des tens of millions de transistors. Ces transistors s’interconnectent by way of 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, and so on…

Advertisement

Les entrailles des puces ont beau être des labyrinthes microscopiques, il reste doable de les chahuter pendant leur fonctionnement, parfois chirurgicalement, pour en extraire des informations.

Le donjon Ledger est un spécialiste de la selected. Leur équipe a d’ailleurs gentiment taclé son concurrent Trezor tout récemment :

Advertisement

Précisons tout de même que l’attaque de Ledger est réduite à néant si l’utilisateur utilise une passphrase. Par ailleurs, Trezor se dotera bientôt d’un Safe Aspect (SE) open supply conçu par Tropic Sq.. En attendant, son dernier modèle Trezor Protected dévoilé en octobre contient bien un SE (non open supply).

Le problème est toutefois bien réel. De nombreuses strategies 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.

Advertisement

Beaucoup de strategies sont en réalité 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 strategies de préparation (décapsulation de boitiers, retrait des couches technologiques d’une puce, and so on) et d’imagerie (thermique, rayons X, and so on) sont également détournées pour hacker des puces électroniques.

Advertisement

En somme, il est plus ou moins facile d’extraire la seed d’un Bitcoin {hardware} pockets. Cela dépend si le circuit est doté d’un Safe Aspect ou pas.

Attaques physiques

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

Advertisement

Son however est l’analyse de propriétés physiques du circuit telles que sa consommation électrique, son rayonnement électromagnétique, ses temps de calcul, and so on. C’est-à-dire une grandeur physique mesurable et directement corrélée à une info que l’attaquant 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.

Advertisement

Démonstration dans cette vidéo réalisée par Ledger : Aspect-channel assaults | 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.

Advertisement

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

« Energy 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, lors de la prochaine mise sous rigidity, permettront une attaque logique.

Advertisement

Démonstration par Ledger : Energy glitch assaults | Enter the Donjon

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

Advertisement

« 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 rigidity, 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).

Advertisement

« Injection de fautes par laser » : On éclaire le silicium à l’aide d’un puissant laser focalisé. 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.

L’attaque laser a l’avantage d’être très chirurgicale en ciblant directement des petits groupes de transistors. Cette method donne les meilleurs résultats, mais elle est plus chère et plus complexe à réaliser.

Advertisement

Démonstration par Ledger : Laser fault assaults | 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.

Advertisement

Le however du jeu est d’enregistrer des signaux transitant dans les conducteurs électriques reliant plusieurs composants. L’attaquant peut même modifier le circuit lui-même en ajoutant des pistes ou en supprimant des connexions.

Ce travail de microchirurgie se réalise à l’aide d’un FIB (Centered Ion Beam) qui mix l’motion d’un faisceau ionique et de gaz pour faire de la gravure de matériaux ou créer de nouvelles connexions.

Advertisement

Le travail de préparation et d’imagerie est extrêmement complexe et fastidieux si les attaquants ne disposant pas des plans des puces. Plusieurs mois sont nécessaires pour comprendre en détail le fonctionnement du circuit et 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 pockets bitcoin que l’on suspecte d’être plein…

Advertisement

Terminons en disant que de nombreuses protections sont nécessaires pour protéger efficacement une puce. Les Safe Components en embarquent beaucoup, ce qui les rend bien plus résistants aux attaques physiques, au contraire les microcontrôleurs classiques.

Recevez un condensé de l’actualité dans le monde des cryptomonnaies en vous abonnant à notre nouveau service de publication quotidienne et hebdomadaire pour ne rien manquer de l’essentiel Cointribune !

Advertisement
Nicolas T. avatar

Nicolas T.

Journaliste rapportant sur la révolution Bitcoin. Mes papiers traitent du bitcoin à travers les prismes géopolitiques, économiques et libertaires.

function launch_linkedin_pixel() { _linkedin_partner_id = '3766114'; window._linkedin_partner_id = '3766114'; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); (function(l) { if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; window.lintrk.q=[]} var s = document.getElementsByTagName('script')[0]; var b = document.createElement('script'); b.type="text/javascript";b.async = true; b.src="https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(window.lintrk); }

function launch_microsoft_clarity() { if (typeof window.clarity !== 'undefined') { window.clarity("consent"); } }

Advertisement

function launch_loyalty_program_1world() { if (typeof window.OWOStorageSolutionManager !== 'undefined' && typeof window.OWOStorageSolutionManager.allow !== 'undefined') { window.OWOStorageSolutionManager.allow(); } }

(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l="+l:"';j.async=true;j.src="https://www.googletagmanager.com/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f);}) (window,document,'script','dataLayer','GTM-KCC4DFK'); void 0 === window._axcb && (window._axcb = []); window._axcb.push((axeptio) => { axeptio.on("cookies:complete", (choices) => { if (choices.google_analytics) { launch_google_analytics(); } if (choices.facebook_pixel) { launch_facebook_pixel(); } if (choices.Linkedin) { launch_linkedin_pixel(); } if (choices.clarity) { launch_microsoft_clarity(); } if (choices.loyalty_program) { launch_loyalty_program_1world(); } else { if (typeof window.OWOStorageSolutionManager !== 'undefined' && typeof window.OWOStorageSolutionManager.disable !== 'undefined') { window.OWOStorageSolutionManager.disable(); } } }); }); window.axeptioSettings = { clientId: '60df16cf7559213aac28972d', cookiesVersion: 'FR', }; document.addEventListener('DOMContentLoaded', () => { var el = document.createElement('script'); el.setAttribute('type', 'text/javascript'); el.setAttribute('async', true); el.setAttribute('src', 'https://loyalty-wleu.1worldonline.com/points-balance-widget.js'); document.body.append(el); var el = document.createElement('script'); el.setAttribute('type', 'text/javascript'); el.setAttribute('async', true); el.setAttribute('src', 'https://www.clarity.ms/tag/' + 'j0pngcg8ry'); document.body.append(el); window.clarity = window.clarity || function() []).push(arguments);; if (typeof window.OWOStorageSolutionManager !== 'undefined' && typeof window.OWOStorageSolutionManager.disable !== 'undefined') { window.OWOStorageSolutionManager.disable(); } const urlParams = new URLSearchParams(window.location.search); if (urlParams.has('logged-out') && urlParams.get('logged-out') === '1') { const checkFunctionExist = setInterval(() => { if (typeof window.logout1WO === 'function') { setTimeout(window.logout1WO, 500); clearInterval(checkFunctionExist); } }, 100); } });

Advertisement
Advertisement
Click to comment

Leave a Reply

Your email address will not be published.