
Après l'EIP-3074, des signatures malveillantes peuvent-elles entraîner l'épuisement des fonds d'un compte Ethereum ?
TechFlow SélectionTechFlow Sélection

Après l'EIP-3074, des signatures malveillantes peuvent-elles entraîner l'épuisement des fonds d'un compte Ethereum ?
Le champ appelant dans la signature EIP-3074 est très important, un appelant malveillant pourrait voler vos fonds.
Rédaction : lightclients
Traduction : MetaCat

Après l’EIP-3074, une signature erronée pourrait vider le solde de votre compte Ethereum.
Oui, c’est vrai.
L’un des auteurs de l’EIP-3074 est ici ! Avant que les choses ne dégénèrent davantage, permettez-moi de calmer temporairement cette inquiétude.
Premièrement : je n’ai pas connaissance d’un portefeuille actuel qui supporte la signature de données sans préfixe. Cela signifie qu’aucun portefeuille ne prend actuellement en charge l’EIP-3074, peu importe combien de tableaux de bord vous parcourez ou combien de fonctionnalités avancées vous activez. Il n’est actuellement pas possible de signer des messages EIP-3074.
Les messages que vous signez pour « connecter » un dapp utilisent un standard fondamentalement différent de l’EIP-3074 basé sur l’EIP-191. Cela ajoute les données suivantes au message que vous signez :
0x19 <0x45 (E)> <thereum Signed Message:\n" + len(message)> <data to sign>
C’est pourquoi il est impossible de tromper quelqu’un qui se connecte à un dapp afin qu’il signe effectivement une transaction Ethereum valide.
Les transactions sont préfixées par une valeur d’un seul octet :
0x01 - tx 2930
0x02 - tx 1559
0x03 - tx 4844
Plus d'informations ici : https://github.com/ethereum/execution-specs/tree/master/lists/signature-types
L’EIP-3074 prévoit d’utiliser le préfixe 0x04. Cela élimine toute ambiguïté avec tous les autres types de données signables dans Ethereum. Les portefeuilles doivent explicitement choisir d’autoriser les utilisateurs à signer ces messages.
Selon la manière dont les portefeuilles intègrent spécifiquement l’EIP-3074, cela pourrait rendre les utilisateurs plus vulnérables aux abus. Pour comprendre cela, nous devons bien saisir le fonctionnement des signatures EIP-3074.
Le message d’authentification construit pour la signature comporte les champs suivants. Il inclut notamment une adresse appelante (caller address). C’est la seule adresse que AUTH considère comme valide pour la signature.

Pour qu’un compte soit vidé de son solde, deux conditions doivent être remplies simultanément :
1) Le portefeuille doit autoriser l'utilisateur à signer vers n'importe quelle adresse appelante (invoker address),
2) L'utilisateur ne doit pas avoir vérifié si l'appelant (invoker) était digne de confiance.
Cela signifie que tant que l’utilisateur ne fait aucune de ces deux actions, aucun problème ne surviendra.
Nous espérons que les logiciels de portefeuille comprendront que l’appelant (invoker) EIP-3074 ressemble davantage à une extension du code du portefeuille qu’à un simple contrat. Les portefeuilles n'autorisent pas les utilisateurs à exécuter librement du code arbitraire et à accéder à leur clé privée ; de même, ils ne devraient pas autoriser les utilisateurs à déléguer librement leur compte Ethereum.
Par conséquent, si un logiciel de portefeuille intègre l’EIP-3074 de manière non sécurisée et que l’utilisateur ne vérifie pas l’appelant avec lequel il interagit, il pourrait déléguer à un appelant malveillant. Toutefois, cela peut toujours être annulé en envoyant une seule transaction depuis un EOA. Cela révoquerait toutes les signatures AUTH « en cours ».
Au minimum, les logiciels de portefeuille devraient faire de la signature de messages EIP-3074 un événement majeur, comparable au niveau de gravité de l’exportation de votre clé privée.
Même si les portefeuilles intègrent correctement l’EIP-3074, il reste possible que des comptes soient piratés. Ceci est inhérent aux transactions groupées (batch transactions). Elles vous permettent d’envoyer facilement plusieurs opérations, tout comme elles permettent à un attaquant de vous inciter à envoyer un lot d’actifs vers une adresse sous son contrôle.
Les logiciels de portefeuille doivent afficher clairement chaque opération que vous êtes en train de signer. Ainsi, il sera facile de remarquer : « Je voulais seulement effectuer une transaction, mais cette demande de signature m’oblige à en faire une douzaine ». Si la signature aveugle (blind signing) est utilisée pour le traitement par lots, cela ne pourra pas être détecté.
Oui, l’EIP-3074 repose fortement sur la confiance accordée aux portefeuilles. Mais nous leur avons déjà confié la sécurité de nos clés privées ! Il n’y a pas de niveau de confiance supérieur.
L’EIP-3074 peut être intégré et utilisé en toute sécurité. Si un portefeuille a des questions sur la meilleure façon de procéder, n’hésitez pas à nous contacter. En tant qu’auteurs de l’EIP-3074, nous réfléchissons actuellement à la manière d’accompagner au mieux cette norme dans sa prochaine phase de développement.
Ces dernières années, nous avons passé beaucoup de temps à élaborer des scénarios hypothétiques sur la façon dont elle pourrait être utilisée — ou détournée. Nous sommes heureux que ces idées commencent à passer en production. Mais nous reconnaissons aussi que c’est la partie la plus difficile.
Résumons donc les inquiétudes selon lesquelles, après l’EIP-3074, une seule mauvaise signature pourrait vider le solde de votre compte Ethereum :
-
Actuellement, aucun portefeuille ne prend en charge la signature de type EIP-3074, qui suit ce nouveau format.
-
Le champ « appelant » (caller) dans la signature EIP-3074 est crucial. Un appelant malveillant pourrait voler vos fonds.
-
Les portefeuilles doivent s’assurer que l’adresse de l’appelant est digne de confiance. Cela revient à la manière dont les portefeuilles empêchent actuellement l’exécution de code arbitraire.
-
Les transactions groupées de l’EIP-3074 ouvrent la porte à un monde où des malveillants peuvent vous tromper pour que vous signiez des transferts d’actifs. Les portefeuilles doivent afficher clairement ce qui se produira lors de la signature d’un message EIP-3074.
-
Oui, nous faisons grand cas des portefeuilles, mais les utilisateurs leur ont déjà confié leurs clés privées, ce qui constitue le niveau de confiance le plus élevé.

EIP-3074 vs EIP-4337
L’EIP-3074 est une excellente nouvelle pour les fournisseurs d’abstraction de comptes, car il apporte de grands avantages à nos utilisateurs.
-
L’ERC-4337 est la meilleure manière d’introduire de nouveaux utilisateurs au monde de la cryptographie.
-
L’EIP-3074 est la meilleure manière d’introduire les utilisateurs existants aux comptes intelligents.
Bienvenue dans la communauté officielle TechFlow
Groupe Telegram :https://t.me/TechFlowDaily
Compte Twitter officiel :https://x.com/TechFlowPost
Compte Twitter anglais :https://x.com/BlockFlow_News











