Le moyen étonnamment simple de voler la crypto-monnaie


Dans l’actualité il y a quelques jours, la révélation que Luke Dashjr, un développeur principal de Bitcoin, avait son portefeuille compromis et avait perdu 200 BTC. Une petite fortune, et quelque chose d’un choc. Je suppose que quelqu’un avec cette expertise n’aurait pas laissé traîner sa clé privée, donc en tant que non-amateur de crypto-monnaie, je suis curieux de savoir comment les attaquants auraient pu le faire. J’ai donc téléphoné à quelques amis qui marchent sur ces chemins pour une explication, et le résultat a été une conversation fascinante ou deux. La réponse la plus probable est toujours que quelqu’un est entré par effraction dans son ordinateur et a copié les clés – un vol d’ordinateur pur et simple. Mais il existe une autre avenue possible qui n’implique pas de voler quoi que ce soit et qui est étonnamment simple.

Êtes-vous un joueur ou un ingénieur ?

Une machine à sous Kenny Rogers The Gambler
Pour une raison quelconque, en écrivant ceci, j’ai un ver d’oreille de Kenny Rogers. Jason Lam (CC BY-SA 2.0)

Je suppose que la plupart des lecteurs de Hackaday sauront quelque chose sur le fonctionnement d’une blockchain, ainsi que sur le fonctionnement de la cryptographie à clé publique. La cryptographie à clé publique est la clé de la sécurité d’une crypto-monnaie comme Bitcoin, la clé qui déverrouille toute votre richesse pour vous étant votre clé privée et la clé qui permet à d’autres personnes d’effectuer des transactions avec vous étant votre clé publique.

Si vous souhaitez envoyer de la crypto-monnaie à quelqu’un d’autre, vous cryptez la transaction en utilisant sa clé publique qui est, comme son nom l’indique, publique, et votre clé privée qui n’est connue que de vous. Il est donc important que votre clé privée soit conservée vraiment privé, car si quelqu’un le trouve, il contrôle votre stock de crypto-monnaie. Donc, pour voler tous ces bitcoins, quelqu’un avait sa clé privée, une éventualité qui n’aurait jamais dû se produire. Nous pouvons supposer en toute sécurité que sa protection de la clé était aussi bonne que possible, donc en supposant en outre que personne n’a physiquement volé son portefeuille matériel ou quoi que ce soit sur lequel il le gardait, sa clé a été compromise par d’autres moyens.

La véritable sécurité de la cryptographie à clé publique réside dans le fait qu’il est extrêmement difficile de deviner la clé privée d’un individu. Un algorithme de force brute pour deviner la clé privée de Luke Dashjr nécessiterait une puissance de calcul inimaginable sur une période de temps géologique, il est donc également sûr de supposer que personne n’a configuré son ordinateur pour deviner sa clé seul. À ce stade, il est utile d’arrêter de penser comme un ingénieur et de commencer à penser comme un joueur. Un ingénieur calcule le temps nécessaire pour forcer brutalement la clé privée de Luke Dashjr, mais un joueur lance les dés et voit si le lancer génère de l’argent.

Du point de vue du joueur, quels sont les dés et quelle est la probabilité qu’un lancer soit gagnant ? Si vous lancez les dés en devinant une clé privée au hasard et que vous l’essayez contre la seule réserve de Bitcoin de Luke Dashjr, alors vous êtes dans la même zone que l’ingénieur qui attend le temps géologique pour que votre ordinateur le craque. Mais si vous êtes un joueur, vous ne vous souciez pas de Luke Dashjr ou de qui que ce soit d’autre, vous êtes simplement intéressé par les clés de n’importe quel portefeuille contenant du Bitcoin. À ce stade, les chances contre vous diminuent énormément, car au lieu d’une chance avec Luke Dashjr, vous avez toute une blockchain de possibilités pour un match.

Comment voler 200 BTC par force brute

Voici donc comment cela fonctionne. La blockchain contient les clés publiques de tous ses participants, tous ceux qui ont, ou ont eu, Bitcoin. Vous rassemblez cette liste, qui est assez longue, et vous la conservez. Ensuite, vous lancez les dés en générant une clé privée aléatoire. À partir de cette clé privée, vous générez la clé publique correspondante et vérifiez si elle figure dans la liste des clés publiques de la blockchain. S’il correspond, vous videz le portefeuille qui lui est associé ; sinon, vous répétez le processus en générant une autre clé. En ne vous concentrant pas sur un compte individuel en particulier, vous avez réduit le temps d’attente pour craquer quelconque compte d’un éon géologique à un chiffre beaucoup plus gérable. Mes amis ont suggéré qu’il serait peut-être possible de trouver quelque chose de l’ordre de quelques mois s’ils disposaient de suffisamment de ressources.

Comme le titre l’indique alors, c’est un moyen étonnamment simple de voler de la crypto-monnaie. Mais simple ne signifie pas que l’attaque a un sens économique. Deviner des paires de clés nécessite des ressources et du temps importants, et vous devez peser cela contre les chances de trouver une baleine avec des cargaisons de Bitcoin par rapport à la chance de trouver un compte avec quelques dollars restants, ce qui piquerait après avoir investi des millions dans l’ordinateur temps. Faire cela sérieusement est un pari, et heureusement pour l’intégrité de Bitcoin, probablement un mauvais pari. Mais qui sait? Personnes faire jouer à la loterie.

Si vous voulez rouler les os vous-même, il existe même une preuve de concept pratique sous la forme de keys.lol, le produit de Sjors Ottjes, un développeur Web néerlandais. Ce site affiche une gamme de clés et interroge les blockchains Bticoin et Ethereum pour voir si elles correspondent à quelque chose. Vous verrez bientôt l’ampleur de la tâche lorsque vous chargez des pages aléatoires, et il est sûr de dire que les chances de charger une page avec une clé valide sont en effet très faibles.

Si vous détenez Bitcoin, vous devriez au moins penser à l’attaque par force brute. Mais cela ne nous concerne pas – notre richesse est détenue dans des dispositifs à semi-conducteurs introuvables cachés dans un coffre-fort.

Image d’en-tête : Ralf Roletschek, CC BY-SA 3.0.

Laisser un commentaire