Un défaut dans les puces ESP32 permet de voler des clés privées via Bluetooth ou de les prédire par des défauts dans la randomité générative des clés.
La réitération de Blockstream s'est produite parce que, selon l'équipe derrière cette entreprise, le « sujet a refait surface ». La vulnérabilité en question a été détectée dans le microcontrôleur ESP32, fabriqué par l'entreprise Espressif Systems, utilisé dans certains portefeuilles matériels pour stocker des crypto-actifs, parmi lesquels Jade. Au niveau de ces puces, une faille de sécurité a été trouvée qui pourrait compromettre les fonds des utilisateurs. Selon l'entreprise créatrice de Jade, cette vulnérabilité n'affecte pas son portefeuille car il fonctionne avec une approche en couches pour l'entropie.
Le 16 avril, depuis le compte officiel de X de Blockstream, une entreprise dédiée au développement d'infrastructure pour Bitcoin (BTC) et les cryptomonnaies, a réaffirmé qu'une vulnérabilité découverte en mars affectant les portefeuilles matériels n'atteint pas les dispositifs créés par cette entreprise, les portefeuilles Jade.
Des marques comme Trezor et Ledger, qui utilisent des puces d'élément sécurisé (SE), restent hors de portée de cette menace, car elles ne contiennent pas le microcontrôleur ESP32.
D'autre part, d'autres portefeuilles matériels qui peuvent être connectés au portefeuille Electrum pourraient également être en danger. Les portefeuilles qui utilisent l'ESP32 pour activer des fonctions telles que la connectivité Bluetooth ou Wi-Fi, permettant de configurer et d'opérer ces portefeuilles depuis des dispositifs mobiles, les placent au centre des préoccupations découlant de la vulnérabilité.
Où réside cette vulnérabilité ?
Le microcontrôleur ESP32 est un composant à faible coût et à haute polyvalence, connu pour sa capacité à se connecter via Bluetooth et Wi-Fi. Sa popularité dans les projets open source l'a amené à être adopté par certains portefeuilles matériels, qui sont des dispositifs physiques conçus pour stocker les clés privées de manière hors ligne, les protégeant contre les attaques numériques.
Cependant, un rapport publié par des chercheurs de Crypto Deep Tech, intitulé 'Bitcoin Bluetooth Attacks' (Attaques à Bitcoin via Bluetooth), a révélé une vulnérabilité critique dans la sécurité de l'ESP32 qui met en péril les portefeuilles bitcoin et d'autres crypto-actifs utilisant ces microcontrôleurs.
Selon cette source, la faille réside dans le générateur de nombres aléatoires (PRNG) de l'ESP32, qui présente une entropie insuffisante. L'entropie, dans le contexte de la cryptographie, mesure le degré de randomité d'un système. Un générateur de nombres aléatoires avec une entropie insuffisante génère ce type de séquences prévisibles, ce qui faciliterait à un attaquant la déduction des clés privées, qui sont de grands nombres aléatoires utilisés, par exemple, dans l'algorithme ECDSA de Bitcoin pour signer des transactions.
Comme l'explique le rapport : « La faible entropie du PRNG dans l'ESP32 permet aux attaquants de prédire les clés privées générées, compromettant la sécurité des fonds stockés dans les portefeuilles matériels qui dépendent de cette puce ».
De plus, le rapport souligne que la connectivité Bluetooth de l'ESP32 amplifie le risque. Un attaquant pourrait exploiter cette interface pour réaliser des attaques à distance, accédant à l'appareil sans nécessiter de contact physique. Cette vulnérabilité se manifeste à travers deux points faibles principaux dans l'ESP32 : le générateur de nombres aléatoires et l'interface Bluetooth.
Par exemple, selon Crypto Deep Tech, des vulnérabilités antérieures dans le protocole Bluetooth de l'ESP32, telles que celles associées à l'ensemble de failles connu sous le nom de BrakTooth (découvert en 2021), ont montré qu'il est possible d'exécuter du code arbitraire ou de compromettre la mémoire de l'appareil.
Dans le cas d'un portefeuille matériel, cela pourrait se traduire par la capacité de signer des transactions non autorisées, vidant les fonds de l'utilisateur.
La faille dans Bluetooth implique-t-elle des vols seulement à courte distance ?
Bluetooth Low Energy (BLE), utilisé par l'ESP32, a une portée standard de 10 à 100 mètres dans des conditions idéales, selon des facteurs tels que la puissance du signal, les obstacles physiques (murs, meubles) et l'environnement (interférences électromagnétiques).
Dans des scénarios réels, comme un lieu public (café, aéroport), un attaquant aurait besoin d'être dans cette portée pour interagir avec le portefeuille matériel.
Cependant, les attaquants peuvent utiliser des antennes directionnelles ou des amplificateurs de signal Bluetooth pour étendre la portée de l'attaque au-delà de 100 mètres. Dans des expériences documentées, comme celles liées à des vulnérabilités Bluetooth précédentes (par exemple, BrakTooth), il a été démontré que la portée peut être étendue à plusieurs centaines de mètres, voire des kilomètres, avec du matériel avancé, comme des adaptateurs Bluetooth longue portée ou des drones équipés de transcepteurs.
Cela signifie qu'un attaquant ne serait pas nécessairement 'à courte distance' dans le sens courant (par exemple, à quelques mètres). Il pourrait opérer depuis un véhicule stationné, un bâtiment voisin ou même un dispositif mobile camouflé dans un espace public.
De plus, le défaut trouvé dans les ESP32 ne se limite pas exclusivement à l'exploitation immédiate via Bluetooth. Un attaquant pourrait utiliser Bluetooth comme vecteur initial pour compromettre le portefeuille matériel et ensuite établir un canal d'attaque persistant.
Un attaquant à portée Bluetooth pourrait charger un firmware compromis dans l'ESP32. Ce firmware pourrait être programmé pour envoyer des clés privées ou des graines de récupération à un serveur distant via Wi-Fi (si activé) ou même lorsque le portefeuille se connecte à un autre dispositif plus tard. Dans ce cas, le vol de fonds pourrait se produire bien après l'attaque initiale, sans nécessiter une proximité continue.
La réponse d'Espressif Systems
Espressif Systems, l'entreprise derrière l'ESP32, a publié un communiqué en mars abordant les préoccupations concernant la sécurité de son microcontrôleur. La société reconnaît que l'ESP32 n'a pas été conçu spécifiquement pour des applications de haute sécurité, comme celles requises par les portefeuilles matériels de cryptomonnaies. Cependant, elle défend que la puce peut être sécurisée si des mesures supplémentaires sont mises en œuvre par les fabricants de dispositifs.
Dans son communiqué, Espressif explique que « L'ESP32 est un microcontrôleur à usage général, largement utilisé dans les applications Internet des Objets (IoT). Pour des environnements de haute sécurité, nous recommandons aux développeurs d'incorporer des sources externes d'entropie et des éléments de sécurité dédiés, en plus de suivre les meilleures pratiques de conception matérielle et logicielle ».
L'entreprise souligne également qu'elle travaille sur des mises à jour de firmware pour atténuer les vulnérabilités identifiées, y compris des améliorations dans le générateur de nombres aléatoires et la sécurité de l'interface Bluetooth. Cependant, Espressif souligne que la responsabilité ultime incombe aux fabricants de portefeuilles matériels, qui doivent mettre en œuvre ces mises à jour et concevoir leurs dispositifs avec des couches supplémentaires de protection.

