Aller au contenu

Rapport sur la sécurité crypto : mai 2022

Les implémentations import.meta et __dirname d'Endo pour la compatibilité des modules MetaMask, un prototype snap de génération de clés distribuées via calcul multipartite pour MetaMask Flask, et le lancement du bug bounty HackerOne de MetaMask.

4 minutes
Rapport sur la sécurité crypto : mai 2022

Chaque mois, Luker, directeur de la sécurité chez MetaMask, fait le point sur les dernières attaques crypto et les risques émergents à connaître.

L'édition de mai 2022 a couvert le lancement du programme de bug bounty MetaMask sur HackerOne, l'implémentation par Endo de import.meta et __dirname pour améliorer la compatibilité des dépendances MetaMask, ainsi qu'un prototype de snap de génération de clés distribuées illustrant la signature par calcul multipartite dans MetaMask Flask. Plongez dans les détails ci-dessous, mais d'abord...

À la une : Adi Shamir, co-inventeur de RSA et créateur du partage de secret

Adi Shamir est un cryptographe israélien qui a co-inventé l'algorithme RSA en 1977 aux côtés de Ron Rivest et Leonard Adleman — le premier cryptosystème à clé publique véritablement opérationnel, ce qui a valu au trio le prix Turing en 2002. En 1979, il a publié « How to Share a Secret », introduisant le partage de secret de Shamir : un schéma qui divise un secret en parts dont seul un nombre seuil est nécessaire pour reconstituer l'original. Cette propriété est fondamentale pour les travaux sur la génération de clés distribuées présentés dans ce rapport.

MetaMask lance son programme de bug bounty sur HackerOne

MetaMask a lancé son programme de bug bounty sur HackerOne en juin 2022, ouvrant un canal officiel permettant aux chercheurs en sécurité de signaler des vulnérabilités dans les produits MetaMask.

Endo implémente import.meta et __dirname, améliorant la compatibilité des dépendances MetaMask

Suite aux avancées d'avril 2022 sur la prise en charge CommonJS d'Endo, les résultats des tests de bout en bout ont montré que les principaux obstacles restants pour l'exécution des modules populaires étaient la prise en charge de import.meta.url et de __dirname.

Une réunion entre Agoric, MetaMask et Moddable le 3 mai 2022 a abouti à un accord sur le moment du processus d'importation de modules où import.meta doit être traité. Le concept importMetaHook a été introduit dans la spécification Compartment. Le hook n'est appelé que si l'analyse statique indique que le module accède à import.meta — car Node.js y attache une fonction resolve dont la création est coûteuse, il est préférable de n'invoquer le hook que lorsque ses résultats sont susceptibles d'être utilisés.

L'implémentation de import.meta est terminée (issue de spécification, PR d'implémentation). Il reste à implémenter le passage de import.meta.url dans les modules d'Endo par défaut. L'implémentation de __dirname est également terminée (PR), après plusieurs itérations pour garantir l'exactitude et la prise en charge des chemins Windows.

De plus, la prise en charge des fichiers package.json imbriqués modifiant l'hypothèse de type de module par défaut pour les fichiers .js a été ajoutée, afin que le compartment-mapper gère les packages aux structures complexes conçues pour prendre en charge à la fois les spécifications CommonJS et ES module (source).

La prise en charge du comportement __esModule est en suspens. Deux tentatives d'implémentation ont toutes deux abouti à de moins bons résultats dans les tests de bout en bout. Une troisième approche — placer la logique de prise en charge dans ThirdPartyModuleInstance au sein de SES — est jugée controversée. La fonctionnalité est suivie dans l'issue #927.

Le prototype de snap de génération de clés distribuées illustre la signature MPC dans MetaMask Flask

Des progrès ont été réalisés sur les capacités de calcul multipartite (MPC). Notre équipe a repris des liaisons WebAssembly (WASM) issues d'une preuve de concept antérieure et a créé un prototype de snap, utilisable dans MetaMask Flask, qui illustre la génération de clés distribuées (DKG) et la signature de messages. Le snap prend en charge l'export et l'import de parts de clés, en plus de la génération de clés et de la sauvegarde des preuves pour la signature de messages.

En coulisses, le package s'appuie sur une implémentation de GG2020 (Gennaro et Goldfeder 2020, article), un protocole qui prend en charge une phase en ligne non interactive permettant aux participants de participer de manière asynchrone sans avoir besoin d'être connectés simultanément, et permettant une détection efficace des parties qui abandonnent.

Les prochaines étapes comprennent l'ajout de la prise en charge du chiffrement pour snap_manageState afin d'éliminer le chiffrement manuel des parts de clés dans le code du snap, suivi de l'ajout de la prise en charge de la signature des transactions. Le prototype est suivi dans le dépôt tss-snap (initialement publié sous le nom ecdsa-wasm).


Le rapport de sécurité crypto de MetaMask pour mai 2022 a couvert l'implémentation par Endo de import.meta et __dirname pour la chaîne de compatibilité des modules MetaMask, ainsi que le prototype de snap de génération de clés distribuées illustrant la signature par calcul multipartite dans MetaMask Flask. Consultez les éditions précédentes du rapport de sécurité crypto MetaMask pour découvrir davantage de menaces, de tendances et de conseils pour rester en sécurité dans l'écosystème.

Traduit par IA. Peut contenir des erreurs. Veuillez toujours vérifier les informations.

Évaluer la traduction

Cet article a été rédigé par :

  • Luker

      Jen Luker, connue de la plupart sous le nom de Luker, est Directrice de la Sécurité des Produits chez Consensys, où elle dirige les défenseurs de première ligne qui protègent des millions d'utilisateurs contre les vulnérabilités, les menaces émergentes et les acteurs malveillants dans l'écosystème des technologies décentralisées. Participante active dans l'écosystème Ethereum depuis 2017, elle a occupé des postes clés, notamment celui d'éditrice chez ETHNews et de cheffe de projet chez MyCrypto. Luker intervient régulièrement lors de conférences sectorielles, est l'auteure du rapport mensuel de sécurité crypto de MetaMask (Crypto Security Report), et détient le badge officiel ETH Security désigné par The DAO. Elle est également une fervente défenseure de la formation continue et de la sensibilisation à la sécurité, qu'elle considère comme des piliers essentiels pour l'avenir d'Ethereum et de la technologie blockchain.

      Lire tous les articles