Auteur original : lightclients

Source originale : Twitter

Compilé par : MetaCat

Après EIP-3074, une mauvaise signature peut drainer le solde de votre compte Ethereum.

Oui c'est vrai.

Les co-auteurs de l'EIP-3074 sont là ! Avant que les choses ne deviennent encore plus incontrôlables, permettez-moi de mettre de côté cette préoccupation un instant.

Tout d'abord : je n'ai actuellement entendu parler d'aucun portefeuille prenant en charge la signature de données sans préfixe. Cela signifie qu'aucun portefeuille ne prend actuellement en charge EIP-3074. Peu importe le nombre de panneaux de contrôle que vous parcourez ou le nombre de fonctionnalités avancées que vous activez. Le message pour EIP-3074 ne peut pas être signé pour le moment.

Le message que vous signez pour vous « connecter » au dapp utilise une norme complètement différente de celle de l'EIP-3074, basée sur l'EIP-191. Cela ajoutera les données suivantes à votre message signé :

0x19 <0x45 (E)> <thereum Message signé :\n" + len(message)> <data à signer

C’est pourquoi il est impossible d’amener une personne connectée à une dapp à signer une transaction Ethereum valide.

Les transactions sont préfixées par une valeur sur un seul octet :

0x01 - 2930 tx0x02 - 1559 tx0x03 - 4844 tx

Pour plus d'informations, voir : https://github.com/ethereum/execution-specs/tree/master/lists/signature-types

EIP-3074 prévoit d'utiliser le préfixe 0x04. Cela le distinguera de tous les autres types de données signables dans Ethereum. Les portefeuilles doivent choisir activement de permettre aux utilisateurs de signer ces messages.

En fonction de la manière spécifique dont le portefeuille intègre EIP-3074, les utilisateurs peuvent être plus facilement exploités. Pour comprendre cela, nous devons nous assurer de comprendre le fonctionnement des signatures EIP-3074.

Le message d'authentification qui crée la signature comporte les champs suivants. Surtout, il comprend une adresse de l’appelant. C'est la seule adresse pour laquelle AUTH considère que la signature est valide.

Pour qu’un compte épuise son solde, les deux conditions suivantes doivent être vraies :

1) Le portefeuille doit permettre aux utilisateurs de se connecter à n'importe quelle adresse d'appelant,

2) L'utilisateur ne doit pas vérifier si l'appelant (invocateur) est digne de confiance.

Cela signifie qu'il n'y aura aucun problème si l'utilisateur exécute l'un d'entre eux.

Nous voulons que le logiciel de portefeuille comprenne : les invocateurs EIP-3074 ressemblent plus à des extensions du code du logiciel de portefeuille qu'à des contrats. Les portefeuilles ne permettent pas aux utilisateurs d’exécuter librement du code arbitraire et d’accéder à leurs PK (clés privées) de même, ils ne doivent pas permettre aux utilisateurs de déléguer arbitrairement leurs comptes Ethereum ;

Par conséquent, si le logiciel de portefeuille intègre EIP-3074 de manière non sécurisée et que les utilisateurs ne vérifient pas l'appelant avec lequel ils interagissent, il peut déléguer à un appelant malveillant. Cependant, cela peut toujours être annulé en envoyant une seule transmission depuis EOA. Cela révoquera toutes les signatures AUTH « en cours ».

À tout le moins, le logiciel de portefeuille devrait faire de la signature des messages EIP-3074 un gros problème, tout comme l'exportation de votre clé privée est un gros problème.

En supposant que le portefeuille intègre 3074 en toute sécurité, il est toujours possible qu'un compte soit compromis. C'est la propriété fondamentale des transactions groupées. Il vous permet d'envoyer facilement plusieurs actions, tout comme il permet à un attaquant de vous inciter à envoyer un lot d'actifs à une adresse qu'il contrôle.

Le logiciel de portefeuille doit clairement indiquer chaque action que vous signez. De cette façon, il est facile de remarquer « Je n'avais l'intention d'effectuer qu'une seule transaction, mais cette demande de signature m'a fait effectuer une douzaine de transactions supplémentaires ». Cela ne peut pas être détecté si le traitement par lots est effectué via une signature aveugle.

Oui, EIP-3074 fait beaucoup confiance au portefeuille. Cependant, nous leur faisons déjà confiance en toute sécurité avec notre clé privée ! Il n’y a pas de niveau de confiance plus élevé.

L'EIP-3074 peut être intégré et utilisé en toute sécurité. Si un portefeuille a des questions sur la 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 meilleure manière de contribuer à la prochaine phase de l'évolution de la norme.

Nous avons passé beaucoup de temps au cours des dernières années à élaborer des scénarios de simulation sur la façon dont cela pourrait être utilisé et abusé. Nous sommes ravis que ces idées commencent à être mises en production. Mais nous reconnaissons également que c’est la partie la plus difficile.

Pour résumer les préoccupations suite à l'EIP-3074 selon lesquelles une seule mauvaise signature pourrait drainer le solde de votre compte Ethereum :

- Actuellement, le portefeuille ne prend pas en charge les signatures de type EIP-3074, qui suivent le nouveau format.

- EIP-3074 Le champ appelant dans la signature est très important. Un mauvais appelant peut voler vos fonds.

- Le portefeuille doit garantir que l'adresse de l'appelant est digne de confiance. Ceci est similaire à la manière dont les portefeuilles empêchent actuellement l’exécution de code arbitraire.

- Les transactions groupées dans EIP-3074 ouvrent toujours un monde dans lequel des acteurs malveillants peuvent vous inciter à signer des transactions qui transfèrent des actifs. Les portefeuilles doivent indiquer clairement ce qui se passe lorsqu'un message EIP-3074 est signé.

- Oui, nous avons un haut niveau de confiance dans les portefeuilles, mais les utilisateurs leur ont confié leurs clés privées, ce qui représente le plus haut niveau de confiance.

EIP-3074 et EIP-4337

EIP-3074 est une très bonne chose pour les fournisseurs d'abstraction de compte car il est très avantageux pour nos clients.

- ERC-4337 est le meilleur moyen de présenter aux nouveaux utilisateurs l'espace crypto.

- EIP-3074 est le meilleur moyen d'intégrer les utilisateurs existants aux comptes Smart.