Un bandit de la chaîne de blocs de l’ethereum vole les transactions à faible clé

Chaînes de blocs

Les chaînes de blocs sont des grands livres comptables publics de transactions vérifiées par l’utilisation de clés publiques et privées pour signer et prouver la possession de la donnée de transaction.

Les chaînes de blocs populaires, comme celles de bitcoin, ripple, monero ou ethereum, comptent des centaines de millions de transactions.

Actuellement, la chaîne de blocs de l’ethereum compte 345 millions de transactions par 47 millions de paires de clés.

Toute personne détenant la clé privée d’un portefeuille électronique est maîtresse de ce portefeuille. On peut, sur l’unique base de cette clé privée, effectuer des virements, retirer de l’argent, etc., car l’on peut déduire la clé publique de la clé privée, puis l’adresse ethereum.

Une clé étant composée de 256 bits, il existe 2^256 clés différentes, soit plus de clés que d’atomes dans l’univers. Théoriquement, il est donc strictement impossible que deux personnes utilisent la même clé sur la chaîne de blocs, et strictement impossible de deviner la clé privée de quelqu’un.

Clés faibles

Mais il faut savoir rester curieux. Adrian Bednarek, un chercheur en cybersécurité de l’ISE – Independent Security Evaluator, se demanda l’été dernier s’il trouverait des transactions signées avec la clé la plus simple, 1, dans la chaîne de blocks de l’ethereum.

À sa grande surprise, il en trouva ! Toutefois, l’argent avait été retiré du portefeuille d’ethereum correspondant.

Il continua son exploration, et trouva que d’autres transactions furent menées avec des clés ultra-simples.

Il décida alors de passer à l’industrialisation de sa recherche, en développant un programme d’exploration de sous-ensembles de l’espace des clés, qui fut lancé sur des machines virtuelles dans le nuage.

Au total, il trouva 735 clés qui furent utilisées dans des transactions.

Le bandit de la chaîne de blocs

Plus étonnant encore, elles furent toutes exploitées par un bandit pour dérober les ethereum et les placer dans un même portefeuille contenant 45 000 ethers. D’une valeur de 7,7 millions de dollars actuellement. Toutefois, si le bandit avait échangé ses ether à l’apex de sa valeur, il aurait gagné plus de 55 millions de dollars !

Autre surprise, le bandit de l’ethereum est toujours actif, et il exploite sans aucun doute un programme automatisé qui scanne en permanence les transactions ajoutées à la chaîne de blocks pour détecter celles qui auraient été effectuées à partir d’une clé vulnérable.

C’est ce dont s’est aperçu Bednarek en plaçant quelques dollars sur une clé vulnérable pas encore utilisée, et en voyant la somme disparaître en quelques secondes.

La taille d’une clé n’est-elle pas supposée garantir sa qualité?

S’il est statistiquement impossible de deviner une clé privée, comment se fait-il que le bandit et que Bednarek y arrivent ?

Le chercheur imagine trois possibilités :

  • Des bogues dans le code du portefeuille, ou dans toute autre partie du système liée à la clé privée, et qui d’une manière ou d’une autre la tronque ;
  • Des clients qui utilisent des « brain wallets » : en donnant une phrase secrète, telle qu’« abracadabra 123 », on obtient une clé. Mais si une autre personne utilise la même phrase secrète, elle obtient la même clé ! Pire encore, certaines personnes appuieraient sur la touche entrée quand on leur demande une phrase secrète.
  • Le logiciel est écrit correctement, mais fait appel au matériel pour certains calculs, et ce matériel est bogué ou malicieux.

On ne sait qui est le bandit de la chaîne de blocs. C’est peut-être un organisme œuvrant pour la Corée du Nord, ou pour un autre État.

Conclusions

On peut tirer plusieurs leçons de cette affaire. Quand on parie sur / « investit dans » une cryptomonnaie, même si la génération de la clé privée du portefeuille est l’étape la moins attrayante, elle est la plus importante. Tout comme protéger son portefeuille numérique.

La chaîne de blocs, dont les consultants et les autres parties prenantes disent tant de bien, tout en esquivant ses problèmes fondamentaux (catastrophe écologique par consommation extraordinaire d’énergie), n’est pas une panacée, n’est pas inviolable, et ne rend rien plus sûr.

Au contraire, comme on peut le voir dans cet exemple, l’accès à tout l’historique des transactions est un atout certain pour le voleur intelligent.

Et ces dernières années, plus de 500 millions d’euros en cryptomonnaies ont été dérobés par des moyens plus simples.