Il y avait plusieurs quintillions d'options de clé de décryptage entre une personne et sa crypto-monnaie.
En octobre, Michael Stay a reçu un étrange message de LinkedIn. Un inconnu a perdu l'accès aux clés privées de sa crypto-monnaie et a demandé à Stay de l'aider à récupérer ses 300 000 $.
Il n'était pas trop surprenant que «Dude», comme l'appelle Stay, ait trouvé un ancien spécialiste de la sécurité chez Google. Il y a dix-neuf ans, Stay a publié un article détaillant la technologie de craquage des fichiers ZIP chiffrés. Le mec a acheté pour environ 10000 dollars de bitcoins en janvier 2016, bien avant le boom de la crypto-monnaie. Il a chiffré les clés privées dans un fichier ZIP et a oublié le mot de passe. Et maintenant, il espérait que Stay pourrait l'aider à le casser.
Lors de la récente conférence Defcon, Stay a décrit ses tentatives épiques pour faire exactement cela.
ZIP est un format de fichier populaire utilisé pour la compression sans perte de gros fichiers - tout comme une petite bande adhésive peut contenir votre sac de couchage. De nombreuses implémentations du format ZIP sont connues pour avoir des problèmes de sécurité - avant même qu'un sénateur américain n'ait approché le National Institute of Standards and Technology l'été dernier pour enquêter sur la question. «Si nous réussissons à trouver ce mot de passe, je vous remercierai», a écrit Dude avec un smiley à la fin. Après avoir effectué l'analyse initiale, Stay a estimé que la rupture du dossier coûterait 100 000 $. Le mec a accepté l'offre - après tout, le profit devrait être important.
«Je n'ai pas eu autant de plaisir depuis longtemps. Chaque matin, je me suis rendu au travail avec joie et j'ai lutté avec ce problème », déclare Stay, actuellement directeur technique de la société de technologie blockchain Pyrofex. "Le cryptage ZIP a été développé par un cryptographe profane il y a des décennies - il est donc assez remarquable qu'il ait duré si longtemps." Cependant, si certains fichiers ZIP peuvent être piratés à l'aide d'utilitaires prêts à l'emploi, alors Dude n'a pas eu de chance.
En particulier, c'est pourquoi ils ont tant demandé le travail. Les nouvelles générations de programmes ZIP utilisent le standard de cryptage AES réputé et fiable, et les versions plus anciennes, dont Dude a utilisé, est Zip 2.0 Legacy, qui peut souvent être piraté. Le degré de complexité dépend cependant de sa mise en œuvre. «C'est une chose de dire que la norme n'est pas conforme, mais la briser est une question complètement différente», déclare le cryptographe Matthew Green de l'Université Johns Hopkins.
Seule une poignée d'indices pourrait aider Stay dans son approche. Mec avait toujours un ordinateur portable qu'il utilisait pour créer le ZIP crypté - ce qui validait sa propriété des bitcoins, et donnait également à Stay des informations sur le programme ZIP et la version utilisée pour le cryptage. Il connaissait également l'heure de création du fichier que le logiciel Info-ZIP utilise pour son schéma cryptographique. Stay a pu réduire le nombre énorme de mots de passe et de clés de cryptage possibles à plusieurs quintillions.
Pour mener une attaque de cette ampleur, il était nécessaire de louer une puissance de traitement cloud pour le traitement graphique. Restez approché Nash Foster, le directeur de Pyrofex, pour écrire le code de cryptanalyse et l'exécuter sur un GPU à usage général de Nvidia Tesla. En approfondissant le projet, Stay a pu affiner l'attaque et réduire le temps d'exécution du programme requis pour obtenir un résultat.
«Au départ, nous avons supposé que nous développerions le programme pendant quelques mois, puis qu'il fonctionnerait pendant quelques mois de plus», a déclaré Foster au magazine Wired. «En conséquence, Mike a pu mener des analyses cryptographiques plus efficacement, et nous avons passé plus de temps à développer l'attaque, et le programme n'a mis qu'une semaine à fonctionner. Cela a économisé beaucoup d'argent à Dude en location d'infrastructure. Il y a dix ans, cela aurait été impossible à faire sans le montage d'équipements spéciaux, et le coût du projet aurait probablement dépassé le coût de ses bitcoins. "
Cependant, la question de savoir si ce broyage des chiffres sur le GPU fonctionnerait était toujours ouverte. Après des mois à bricoler cette tâche, Stan était enfin prêt à l'essayer. Le mec n'a pas donné à Stay and Foster l'intégralité du fichier - il ne leur faisait probablement pas confiance, pensant qu'ils pouvaient voler sa crypto-monnaie en craquant les clés. En raison de la façon dont il implémentait le cryptage ZIP, il ne pouvait fournir à Stay and Foster que des en-têtes cryptés - des enregistrements d'informations sur le contenu du fichier - sans transmettre le contenu principal. En février, 4 mois après le premier message LinkedIn, ils avaient préparé un programme et lancé une attaque.
Elle a travaillé pendant 10 jours et a échoué. Stay a écrit plus tard qu'il était «navré».
«Avant cela, nous avons rencontré divers bogues, mais sur tous les tests que j'ai exécutés sur mon ordinateur portable, tout fonctionnait bien», dit-il. «Si c'était une erreur, elle devait être très rusée, et je craignais que cela ne nous prenne beaucoup de temps pour la retrouver. Le fait qu'en février le coût des bitcoins a commencé à baisser, et avec lui le coût du fichier, n'a pas non plus aidé. Le mec était très inquiet.
Stay a parcouru tout le programme, inquiet des fausses hypothèses ou des bugs cachés. Mais ensuite, il a eu une nouvelle idée de la graine aléatoire à commencer par le générateur de nombres aléatoires utilisé dans leur programme. Le mec a également regardé les données de test et a remarqué une erreur qui se produirait si le GPU ne traitait pas le mot de passe correct lors du premier passage. Stay et Foster ont corrigé le bug. Après avoir effectué ces deux corrections de programme, ils étaient prêts à recommencer.
"Coup! Et un tas de bitcoins est sorti du fichier », explique Foster. «Nous avons poussé un soupir de soulagement», ajoute Stay.
En conséquence, le coût de location de l'infrastructure était de 6 000 $ à 7 000 $, au lieu des 100 000 $ initialement estimés, dit Foster. Le mec a payé quatre fois moins que ce à quoi il s'attendait.
«L'accord a été formidable pour lui», dit Foster. - De tels projets sont rares. S'il avait une situation légèrement différente, s'il utilisait une version plus récente de ZIP, ce serait impossible à faire. Mais dans ce cas particulier, nous aurions pu faire quelque chose. "
Stay dit qu'après la publication de la description technique du projet en avril, plusieurs personnes l'ont approché pour lui demander de récupérer les mots de passe de leurs portefeuilles bitcoin. Malheureusement, c'est un problème courant. Même la rédaction de Wired a rencontré cela. Mais l'attaque ZIP n'a rien à voir avec les portefeuilles de crypto-monnaie - ils peuvent parfois avoir des défauts piratables, mais ils sont construits avec un cryptage moderne et puissant.
Pourtant, la prévalence du ZIP suggère que la recherche de Stay and Foster a des implications de grande portée.
«En termes de déconner avec la cryptographie, c'est un projet très cool», dit Green. - C'est l'une des anciennes attaques contre un système obsolète, et personne n'aurait pensé qu'il est toujours pertinent. Mais, étonnamment, toutes ces ordures sont toujours omniprésentes, ce sujet est donc très pertinent. Et le fait que beaucoup d'argent les attendait à la fin est généralement cool. "
Nous serions tous si chanceux.