Comment une faille de sécurité a permis à des chercheurs de récupérer 3 millions d’euros en bitcoin

Camille Coirault
Publié le 11 juin 2024 à 11h57
Une récupération miraculeuse © 1st footage / Shutterstock
Une récupération miraculeuse © 1st footage / Shutterstock

Deux années se sont écoulées depuis que « Michael », un détenteur de Bitcoin (dont le cours semble repartir de plus belle), a été privé de l'accès à une coquette somme avoisinant les trois millions d'euros. Un fichier corrompu en était la cause, l'empêchant de récupérer cette précieuse réserve virtuelle. Cependant, la persévérance de deux chercheurs, Joe Grand et son acolyte Bruno leur a permis de déjouer cet écueil en exploitant une brèche dans le générateur de mots de passe RoboForm.

La découverte d’une faille dans RoboForm

En 2013, Michael, avait créé un mot de passe formé de 20 caractères grâce au logiciel RoboForm. Cette clé était censée protéger son wallet, abritant la rondelette somme de 43,6 bitcoins. Toutefois, le destin en décida autrement puisque ce mot de passe fut préservé dans un fichier crypté par TrueCrypt, lequel se corrompit par la suite, rendant l'accès à ce trésor numérique complètement impossible.

C'est alors que Joe Grand, connu sous le pseudonyme Kingpin, ainsi que son compagnon d'armes Bruno, décidèrent de mettre les mains dans le cambouis pour percer les mystères de la génération des mots de passe par RoboForm à l'époque concernée. Leur quête les mena à une découverte importante : le générateur de nombres pseudo-aléatoires employé par RoboForm jusqu'en 2015 souffrait d'un défaut majeur, liant de manière indissociable les mots de passe engendrés à la date et l'heure précises de l'ordinateur. Armés de cette connaissance, ils purent, en manipulant ces paramètres temporels, recréer les mots de passe générés à un instant donné. Malin !

 Trois millions d'euros : une somme qu'il aurait été un peu dommage de perdre © DegreeStudioMY / Shutterstock
Trois millions d'euros : une somme qu'il aurait été un peu dommage de perdre © DegreeStudioMY / Shutterstock

Retour vers le futur

Michael ne se souvenait pas du jour précis de la création de son mot de passe, mais disposait néanmoins d'un indice précieux. Le journal de son portefeuille indiquait un premier transfert de bitcoins le 14 avril 2013. Grâce à cette information, Grand et Bruno configurèrent RoboForm en vue de générer des mots de passe respectant les critères initiaux : une longueur de vingt caractères. Ils entamèrent alors une série d'essais, testant diverses plages de dates et jouant avec les paramètres.

Malheureusement, leurs premières tentatives se révélèrent infructueuses. Loin de se décourager, ils élargirent la plage de dates explorée et affinèrent les paramètres en se basant sur d'autres mots de passe générés par Michael à la même époque. Leur persévérance finit par être récompensée lorsqu'ils mirent la main sur le précieux sésame, le mot de passe créé le 15 mai 2013 à 16 h 10, dépourvu de caractères spéciaux. Michael allait pouvoir récupérer son sésame !

Plateforme Crypto-monnaie : les meilleurs exchanges en 2024
Quelle est la meilleure plateforme crypto en 2024 ? Quelle plateforme d'exchange ou de trading privilégier pour acheter des crypto-monnaies ? Voici notre sélection des 10 meilleures plateformes cryptos pour cette nouvelle année. Guide comparatif complet : frais de trading, cryptos disponibles, services annexes et sécurité mise en place.

En deux ans, ses Bitcoins avaient eu en plus le temps de prendre énormément de valeur ! La faille de RoboForm exploitée par les chercheurs avait pourtant été corrigée par Siber Systems (l'entreprise responsable) en 2015, mais elle n'avait pas informé ses utilisateurs.

Sources : Wired, Proton

Par Camille Coirault

Une fois réveillé dans le bateau arrivé en Morrowind, j’avais mis le doigt dans l'engrenage. Un autre de mes doigts fut lui aussi coincé entre les pages des livres d’auteurs classiques : Charles Baudelaire, Émile Zola, Choderlos de Laclos ou Victor Hugo pour ne citer qu’eux. Vingt ans après, quelques milliers d'heures à jouer, à lire, et me voilà ! Mon coeur balance toujours entre ma passion de la tech, des jeux vidéo et mon amour incommensurable pour les Lettres. Spoiler : je n’ai pas choisi et cela ne risque pas d’arriver de sitôt.

Vous êtes un utilisateur de Google Actualités ou de WhatsApp ?
Suivez-nous pour ne rien rater de l'actu tech !

A découvrir en vidéo

Commentaires (0)
Rejoignez la communauté Clubic
Rejoignez la communauté des passionnés de nouvelles technologies. Venez partager votre passion et débattre de l’actualité avec nos membres qui s’entraident et partagent leur expertise quotidiennement.
Commentaires (9)
ayaredone

Maintenant il faut qu’ils développent un algorithme pour déterminer le parcours d’un disque dur dans une décharge :wink:

Bombing_Basta

J’imagine que les « chercheurs » ont eu le droit à une récompense ?

MattS32

Puis concevoir une technique pour récupérer des données d’un disque dur qui a baigné des années dans du jus de poubelle :rofl:

ayaredone

bah, un petit coup de Paic citron :sweat_smile:

OL556B3C4

Si j’extrapole, cela veut dire que le véritable hasard n’est pas concevable en informatique ?

MattS32

Ça ne peut pas se faire de façon strictement programmatique. Pour faire du vrai hasard, il faut un composant dédié, qui va générer une « graine » qui permet d’initialiser l’algorithme de génération. En général, ça se fait en mesurant des variations de certaines mesures physiques, par exemple les irrégularités dans les tensions d’alimentation ou dans les fréquences de certains signaux.

Un exemple concret, il y a quelques années un des jeux de hasard à tirage fréquent (trop pour le faire avec des boules) de la FDJ fonctionnait avec quelques micros disséminés en région parisienne, et c’est le bruit ambiant mesuré par ces micros qui servait de graine pour l’algorithme de génération.

Une autre solution, utilisée par exemple dans VeraCrypt et KeePass, c’est de demander à l’utilisateur de faire des mouvements de souris ou des frappes au clavier pour générer la clé, ça permet là aussi d’avoir une graine imprévisible.

Après, pour pas mal d’usages, on peut se contenter d’une graine basée sur le temps à la microseconde près (avec quand même le risque dans ce cas d’une attaque si on connait l’heure où l’initialisation a eu lieu, mais si on a cette heure seulement à la seconde près, ça fait quand même déjà un million de graines à tester au minimum… à priori RoboForm se basait sur l’heure à la seconde près, pas à la microseconde) ou sur le compteur de cycles du CPU (là ça devient très compliqué à deviner, surtout avec les CPU dont la fréquence varie en permanence, même si tu connais le modèle de CPU et sait que ça a été généré x secondes après le démarrage de la machine, c’est très dur de prévoir de façon fiable la valeur du compteur), surtout si en plus on utilise ensuite un algorithme de génération suffisamment complexe pour empêcher le brute force.

Par exemple, si ton algo de génération met 1s à générer un mot de passe à partir de la graine et que la graine est basée sur le temps à la microseconde, quelqu’un qui saurait à 10 minutes près l’heure de génération du mot de passe aura statistiquement besoin de 10 ans pour trouver le mot de passe.

OL556B3C4

Merci, très intéressant !

Nmut

Pour compléter ce que dit @MattS32 : oui le véritable hasard n’existe pas, il faut trouver une base issue d’un chaos (heureusement le monde réel en est rempli) pour ne limiter fortement la reproductibilité de la génération de nombres aléatoires.
D’un autre coté, la reproductibilité des algos de générations de nombres « aléatoires » est souvent pratique en informatique, par exemple pour les tests, les validations, les simulations, …

mcbenny

Dans la serie hasard, je me souviens avoir lu il y a quelques annees qu’une grande societe generait ses mots de passe ou salt ou je ne sais plus quoi a partir de cameras qui etaient braquees sur un mur de « lava lamps », et donc filmaient unr image « aleatoire » pour generer un input aleatoire.