Principaux points à retenir
La signature des messages est un aspect essentiel des transactions sur la blockchain, mais si elle n’est pas gérée avec précaution, elle peut exposer les utilisateurs à des risques de sécurité considérables.
La fonction « eth_sign », qui permet aux utilisateurs de signer des messages arbitraires, est particulièrement vulnérable aux abus, permettant potentiellement aux attaquants de prendre le contrôle total des actifs de la victime.
Pour vous protéger, utilisez toujours des plateformes de confiance, évitez de signer des messages inconnus et restez informé des escroqueries courantes.
Pour ceux qui explorent l’espace Web3, la signature des messages est essentielle pour autoriser les transactions, vérifier les identités et interagir avec les applications décentralisées (DApps). Par exemple, une plateforme Airdrop peut demander à un utilisateur de signer un message pour prouver la propriété d’une adresse de portefeuille spécifique éligible à un Airdrop. Bien que ce processus permette de nombreuses fonctions critiques de la blockchain, il introduit également des risques de sécurité importants.
Dans cet article, nous explorons les dangers potentiels associés à la signature de messages sur et hors de la blockchain, et mettons en évidence les scénarios courants dans lesquels les utilisateurs peuvent subir des pertes financières suite à la signature de messages malveillants.
Signature de messages et de transactions : comprendre la différence
Dans l'espace décentralisé, les signatures sont essentielles à la fois pour autoriser les transactions et pour interagir avec les DApps. Elles se déclinent en deux types principaux : les signatures on-chain (transaction) et off-chain (message).
Signatures en chaîne (signature d'une transaction)
Les signatures sur la chaîne sont utilisées pour autoriser des actions qui modifient l’état de la blockchain, comme le transfert de fonds ou l’exécution de contrats intelligents. Voici comment cela fonctionne :
Flux de travail du processus de signature et de vérification en chaîne
Génération de messages : lorsqu'une personne lance une transaction sur la blockchain, le réseau génère un message lié à cette transaction, qui contient des informations à son sujet, telles que les adresses de l'expéditeur et du destinataire, le montant à transférer et d'autres détails pertinents.
Signature du message : l'utilisateur qui lance une transaction « signe » ce message avec sa clé privée. Ce processus consiste à appliquer un algorithme cryptographique au message et à la clé privée de l'utilisateur, ce qui génère une signature numérique.
Envoi du message signé : Le message signé, ainsi que le message d'origine, sont envoyés au réseau.
Vérification : le réseau vérifie la signature à l’aide de la clé publique de l’utilisateur effectuant la transaction, qui est dérivée de sa clé privée mais peut être partagée en toute sécurité. Si la signature correspond au message et à la clé publique, cela confirme que le titulaire du compte a autorisé la transaction.
Traitement des transactions : si la signature est valide, le réseau traite la transaction. Dans le cas contraire, la transaction est rejetée.
Lorsque vous utilisez un portefeuille cryptographique, le processus de signature des transactions se déroule généralement automatiquement en arrière-plan. La plupart des portefeuilles cryptographiques modernes offrent une interface conviviale qui fait abstraction des détails techniques, de sorte que vous ne voyez pas ou n'interagissez pas directement avec le processus.
Signatures hors chaîne (signature d'un message)
Les signatures hors chaîne, en revanche, sont utilisées pour des actions qui n’affectent pas l’état de la blockchain, comme la vérification de l’identité de l’utilisateur, la connexion à une DApp ou la préautorisation de transferts de fonds. Voici comment cela fonctionne :
Génération de défis : l'application génère un message unique qui sert de « défi » – une demande à l'utilisateur de s'authentifier en prouvant qu'il est le propriétaire de l'adresse en question. Ce message peut inclure des détails spécifiques liés à la tentative de connexion, tels que l'horodatage ou un nombre aléatoire.
Création de signature : l'utilisateur signe le message avec sa clé privée, créant ainsi une signature numérique. Cette signature sert de preuve qu'il est le propriétaire de la clé privée associée au portefeuille.
Vérification de la signature : le destinataire vérifie la signature à l’aide de votre clé publique. Si la signature est valide, elle confirme l’identité de l’utilisateur et lui accorde l’accès.
Ce sont des signatures hors chaîne avec lesquelles les utilisateurs du Web3 interagissent souvent à diverses fins – et c'est ce type de signature qui a le potentiel d'être utilisé à mauvais escient par des criminels.
Le risque : une autorisation involontaire
Il existe plusieurs méthodes pour signer des messages, notamment eth_sign, personal_sign et eth_signTypedData. Ces fonctions ont différents niveaux de sécurité et, selon le portefeuille que vous utilisez, certaines méthodes peuvent être prises en charge ou non.
La fonction eth_sign permet aux utilisateurs de signer des messages arbitraires avec leurs clés privées, ce qui peut potentiellement présenter des risques de sécurité. Cette méthode utilise un format de message brut et non lisible sans aucun préfixe ni contexte.
De ce fait, les utilisateurs ne comprennent souvent pas les implications de ce qu’ils signent. Le risque le plus grave est que la signature d’un message malveillant puisse donner à l’attaquant le contrôle total de vos actifs.
La méthode personal_sign est conçue pour être plus sécurisée et plus conviviale. Elle préfixe le message avec une chaîne standard avant le hachage et la signature, ce qui indique clairement que le message est destiné à être signé. Ce préfixe permet de se protéger contre certains types d'attaques, telles que les attaques par relecture, où un message signé peut être réutilisé dans un contexte différent.
La méthode eth_signTypedData est utilisée pour signer des données structurées, offrant ainsi plus de contexte et de clarté sur ce qui est signé. Elle permet aux développeurs de définir la structure des données signées, les rendant plus transparentes et plus faciles à comprendre.
Qu'est-ce que le phishing eth_sign ?
À la base, eth_sign est un mécanisme cryptographique qui permet aux utilisateurs de signer des messages arbitraires. Cette signature sert de preuve numérique que le propriétaire du compte a autorisé le contenu du message. Cependant, le problème se pose lorsque ces messages signés peuvent être interprétés et exécutés par des contrats intelligents d'une manière qui n'est pas immédiatement apparente pour l'utilisateur. Un message qui semble être une chaîne de caractères inoffensive peut, en réalité, autoriser les attaquants à prendre le contrôle total de votre compte. Décomposons les mécanismes d'une attaque de phishing eth_sign typique :
1. La configuration : les attaquants créent souvent de faux sites Web ou applications qui imitent des plateformes légitimes. Il peut s'agir d'échanges décentralisés, de marchés NFT ou d'autres services basés sur la blockchain.
2. L’appât : les utilisateurs sont incités à se connecter à ces fausses plateformes par divers moyens : e-mails de phishing, publicités trompeuses ou même faux liens dans des groupes de médias sociaux. Les attaquants créent souvent un sentiment d’urgence, en prétendant que l’utilisateur doit s’inscrire rapidement pour profiter d’une offre à durée limitée ou pour éviter certaines conséquences négatives.
3. Le piège : le site des attaquants demande à l’utilisateur de signer un message en utilisant eth_sign. Cependant, le message que l’utilisateur signe est très différent de ce qu’il pense. Il pourrait donner la permission d’effectuer n’importe quelle action malveillante souhaitée par l’escroc.
Les étapes d'une attaque de phishing eth_sign
Les tactiques les plus courantes pour exploiter la signature de messages incluent les faux airdrops, les DApps malveillantes créées pour paraître légitimes mais dont le seul but est de voler des fonds, les faux services de création de NFT, les e-mails de phishing, l'usurpation d'identité du service client et la création de fausses interfaces de pont inter-chaînes. Tous ces outils malveillants ont pour but de faire croire aux utilisateurs qu'ils signent un message légitime alors qu'en fait, ils donnent aux criminels accès à leurs fonds numériques.
Ce qui rend ces attaques particulièrement dangereuses, c’est qu’elles exploitent le comportement conditionné des utilisateurs du Web3 pour signer des messages afin de vérifier leur identité ou d’approuver des actions. De nombreux utilisateurs ont tendance à signer de tels messages sans en comprendre pleinement les implications.
Exemples de la vie réelle
Le faux Airdrop NFT
Les escrocs manipulent souvent leurs victimes en leur promettant des récompenses inattendues. Dans cet exemple réel, un utilisateur a reçu un NFT non sollicité dans son portefeuille, les expéditeurs affirmant que l'utilisateur avait gagné une récompense importante et qu'il n'avait plus qu'à convertir son bon NFT en argent.
Pour obtenir son prix, l’utilisateur est redirigé vers un site Web lié pour signer un message, qui est présenté dans un format hexadécimal illisible. En supposant qu’il s’agit d’une partie standard du processus de vérification, l’utilisateur signe. Cependant, ce message est une autorisation astucieusement déguisée qui accorde à l’escroc le contrôle des actifs de l’utilisateur, ce qui entraîne des transferts non autorisés depuis son portefeuille.
Peu de temps après, l'utilisateur remarque qu'une quantité importante de jetons est transférée hors de son portefeuille sans son consentement, réalisant trop tard qu'il a été arnaqué.
À retenir : méfiez-vous des offres ou des parachutages non sollicités, en particulier ceux qui promettent des récompenses importantes. Vérifiez toujours la légitimité de la source avant d'entreprendre toute autre action.
Usurpation d'identité d'un projet bien connu
Les escrocs se font souvent passer pour des projets ou des comptes réputés afin de créer un sentiment de crédibilité. Dans cet exemple, les criminels ont créé un faux compte sur X imitant le compte officiel Baby Doge Coin. L'usurpateur d'identité avait obtenu un badge de vérification en or pour ajouter une couche de crédibilité.
Le faux compte annonçait un nouvel airdrop pour les détenteurs de Baby Doge Coin et incluait un lien vers un site Web où les utilisateurs pouvaient réclamer le nouveau jeton. Le message a rapidement gagné en popularité, ce qui a ajouté encore plus à son apparence de légitimité. Les utilisateurs ont visité le lien fourni, connecté leurs portefeuilles et signé un message pour confirmer leur identité et réclamer l'airdrop.
Ce que les victimes ne savaient pas, c'est que le message signé autorisait le transfert de jetons de leurs portefeuilles vers l'adresse de l'attaquant. La plupart des utilisateurs n'ont réalisé qu'il s'agissait d'une arnaque que lorsqu'ils ont remarqué que leurs jetons Baby Doge Coin avaient disparu de leurs portefeuilles.
À retenir : vérifiez toujours l’authenticité des comptes de réseaux sociaux avec lesquels vous interagissez et soyez prudent avec les messages demandant votre signature. De petites différences, comme un nom d’utilisateur légèrement différent ou incorrect, sont essentielles pour distinguer le vrai du faux. Dans cet exemple, le pseudo X du compte de l’escroc a été subtilement modifié pour se lire presque comme le vrai, avec une voyelle doublée à la fin.
Un faux nouveau jeton Airdrop
Créer un sentiment d’urgence est une autre tactique utilisée par les escrocs pour pousser les utilisateurs à prendre des décisions hâtives. Dans cet exemple, un utilisateur parcourant son fil d’actualité sur les réseaux sociaux a remarqué une publication provenant de ce qui semble être un projet de cryptomonnaie légitime, annonçant un nouveau largage aérien d’un jeton appelé « Sunwaves ». La publication affirme qu’il existe une fenêtre limitée de 24 heures pour réclamer le largage aérien.
Intrigués par l'annonce, les utilisateurs visitent le site Web mentionné dans la publication, qui les invite à connecter leurs portefeuilles et à effectuer plusieurs étapes de vérification, notamment la signature d'un message pour confirmer leur identité et réclamer le largage aérien.
Cependant, ce message signé autorise l’escroc à transférer des jetons du portefeuille de l’utilisateur. L’utilisateur remarque rapidement que des jetons, y compris des actifs de valeur, ont été transférés sans son consentement.
À retenir : méfiez-vous des offres qui créent un sentiment d’urgence. Les escrocs font souvent pression sur les utilisateurs pour qu’ils agissent rapidement afin de les empêcher de prendre le temps d’évaluer et de vérifier la légitimité de l’offre.
Comment le portefeuille Binance Web3 vous protège
Pour éliminer la possibilité que les utilisateurs tombent dans le piège de l'eth_sign, cette fonction est interdite dans Binance Web3 Wallet. En pratique, cela signifie qu'une fois que l'eth_sign est déclenché pour une transaction, les utilisateurs seront immédiatement informés que cette transaction est très risquée en raison d'une demande de signature potentiellement malveillante. Il ne sera pas possible de réaliser une telle transaction.
Se protéger des escroqueries
Pour éviter les arnaques à la signature de messages dans l'espace Web3, il est essentiel de prendre des mesures de précaution :
1. Utilisez des plateformes de confiance : signez uniquement les messages provenant de plateformes auxquelles vous faites confiance. Si une plateforme vous semble suspecte pour une raison quelconque, il est préférable de l'éviter.
2. Ne faites pas confiance aux parachutages inattendus : méfiez-vous des offres non sollicitées qui semblent trop belles pour être vraies, en particulier celles qui promettent des récompenses substantielles.
3. Vérifiez les URL des DApp : vérifiez toujours que l'URL est légitime avant d'interagir avec une application décentralisée. Les escrocs créent souvent des URL qui ressemblent à des URL réelles.
4. Utilisez des portefeuilles sécurisés : utilisez des portefeuilles réputés qui offrent des mesures de sécurité contre les messages malveillants. Par exemple, Binance Web3 Wallet a interdit la fonction eth_sign pour empêcher de telles attaques.
5. Restez informé : restez au courant des dernières tactiques d’escroquerie et des meilleures pratiques de sécurité dans l’espace blockchain.
Réflexions finales
Explorer l’espace décentralisé des services et applications Web3 peut être une magnifique aventure. Cependant, cet environnement comporte ses propres risques, ce qui nécessite que les utilisateurs soient vigilants et informés. Les escrocs peuvent exploiter des outils tels que la signature de messages et l’usurpation d’identité pour effectuer des transactions non autorisées, entraînant des pertes financières importantes. En étant conscient de ces risques et en adoptant des pratiques et habitudes de sécurité simples, vous pouvez vous protéger. Faites toujours preuve de prudence et restez vigilant pour assurer la sécurité de vos actifs dans l’écosystème Web3.
Lectures complémentaires
Protégez vos crypto-monnaies : comprendre les attaques de logiciels malveillants en cours dans le monde et ce que nous faisons pour les arrêter
Comment éviter et signaler les escroqueries liées aux faux services
Binance évite jusqu'à présent 2,4 milliards de dollars de pertes potentielles pour ses utilisateurs en 2024
Avis de non-responsabilité : les crypto-monnaies sont soumises à un risque de marché élevé et à une volatilité des prix. Vous ne devez investir que dans des produits que vous connaissez bien et dont vous comprenez les risques associés. Vous devez examiner attentivement votre expérience d'investissement, votre situation financière, vos objectifs d'investissement et votre tolérance au risque et consulter un conseiller financier indépendant avant de procéder à tout investissement. Ce document ne doit pas être interprété comme un conseil financier. Les performances passées ne sont pas un indicateur fiable des performances futures. La valeur de votre investissement peut baisser comme augmenter et vous pourriez ne pas récupérer le montant que vous avez investi. Vous êtes seul responsable de vos décisions d'investissement. Binance n'est pas responsable des pertes que vous pourriez subir. Pour plus d'informations, veuillez vous référer à nos conditions d'utilisation et à notre avertissement sur les risques. Il s'agit d'une annonce générale. Les produits et services mentionnés ici peuvent ne pas être disponibles dans votre région.