
Signer un message : ce que prouve vraiment « se connecter avec son wallet »
Tôt ou tard, un site vous demande de « signer un message » au lieu d’envoyer une transaction. Pas de gas, pas de confirmation on-chain, rien de visible dans votre historique. Cela semble inoffensif – et c’est très souvent le cas. Mais une signature, c’est votre clé qui se porte garante de quelque chose, et la question à se poser à chaque fois est simple : garante de quoi ?
Ce que prouve une signature
Une signature numérique prouve une seule chose : la personne qui contrôle une clé privée donnée a approuvé une donnée précise. N’importe qui peut la vérifier à partir de votre adresse publique sans rien apprendre de votre clé.
Cela rend les signatures utiles bien au-delà de l’envoi de cryptomonnaies. Un site peut confirmer que vous possédez une adresse sans que vous payiez de frais. Un développeur peut prouver qu’il a publié une version. Un opérateur de nœud peut prouver qu’un serveur lui appartient. Rien de tout cela ne touche la blockchain, et tout repose sur la même garantie : la clé a signé exactement ces octets.
Le piège se trouve dans « exactement ces octets ». Une signature ne porte aucune intention. Elle ne sait pas si vous pensiez vous connecter ou approuver un paiement. Elle lie seulement votre clé aux données – et quiconque détient cette signature peut l’utiliser pour tout ce que ces données permettent.
« Se connecter avec son wallet »
Le message le plus courant que vous verrez est une connexion. Au lieu d’un mot de passe, le site vous envoie un texte, vous le signez, et le site vérifie la signature à partir de votre adresse. Si elle correspond, vous êtes connecté.
Un message de connexion bien conçu se lit comme un petit contrat, et le format standard pour Ethereum (appelé Sign-In with Ethereum, EIP-4361) le détaille :
- Le domaine qui fait la demande – il doit correspondre au site affiché dans votre barre d’adresse.
- L’adresse qui se connecte.
- Une déclaration en langage clair, par exemple « Se connecter à Example ».
- Un nonce – une valeur aléatoire à usage unique, pour que la signature ne puisse pas être rejouée plus tard.
- Des dates d’émission et d’expiration, pour qu’une ancienne signature devienne caduque.
Quand tous ces éléments sont présents et concordent, une signature de connexion présente peu de risques : elle ouvre une session sur un seul site, rien de plus. Si le domaine indiqué dans le message ne correspond pas au site sur lequel vous êtes, arrêtez-vous. Cette incohérence est exactement ce que produirait une page d’hameçonnage cherchant à réutiliser votre signature ailleurs.
Les signatures qui déplacent de l’argent
C’est ici que le raisonnement « pas de gas, donc inoffensif » s’effondre. Plusieurs types de signatures hors chaîne peuvent être soumis plus tard par quelqu’un d’autre pour déplacer vos fonds :
- Les permits de tokens. De nombreux tokens permettent d’accorder une autorisation de dépense par signature plutôt que par une approbation on-chain. Le bénéficiaire la soumet ensuite et peut transférer jusqu’au montant autorisé. De votre côté, cela ressemblait à la signature d’un message. C’est une approbation en tout, sauf le nom.
- Les ordres de marketplace. Les annonces et offres signées peuvent être exécutées par quiconque les détient, aux conditions que vous avez signées – y compris des conditions qu’un site malveillant a remplies à votre place.
- La signature de hachages bruts. Certaines méthodes anciennes signent un hachage arbitraire de 32 octets, sans contenu lisible ni préfixe l’identifiant comme « simple message ». Un hachage peut être l’empreinte d’une vraie transaction. En signer un que vous ne pouvez pas lire, c’est la signature à l’aveugle dans sa forme la plus pure.
La règle qui en découle est courte : si vous ne pouvez pas lire ce que vous signez, vous ne pouvez pas savoir ce que cela autorise.
Comment lire une demande de signature
Avant d’approuver un message, passez en revue les mêmes quatre questions :
- Qui demande ? Comparez le site demandeur avec celui que vous vouliez utiliser.
- Quelle adresse et quel réseau ? Une demande pour une adresse ou une chaîne différente de celle attendue est un signal d’alerte.
- Pouvez-vous le lire ? Un texte clair que vous comprenez, c’est une chose. De l’hexadécimal, des hachages ou un long JSON inexpliqué, c’en est une autre.
- Qu’est-ce que cela permettrait à quelqu’un de faire ? Se connecter, prouver la propriété – très bien. Dépenser, mettre en vente, transférer, approuver – traitez-le comme une transaction, car c’en est une.
Ce que SSP vous montre
Lorsqu’une dApp connectée via WalletConnect demande à SSP de signer un message, la demande affiche le site demandeur, l’adresse et le réseau, ainsi que le message lui-même. Les messages encodés en hexadécimal sont d’abord décodés en texte lisible, avec les octets bruts accessibles dans une section dépliable si vous voulez les vérifier.
Les messages texte ordinaires reçoivent le préfixe Ethereum standard de « message signé », qui les identifie comme des messages et non comme des transactions, afin qu’ils ne puissent pas être rejoués comme tels. Les demandes de données typées structurées affichent leur contenu brut complet avant que vous n’approuviez.
Comme tout dans SSP, une signature de message depuis votre wallet nécessite les deux clés : vous approuvez dans SSP Wallet, puis vous confirmez sur SSP Key. Cette seconde étape est un véritable second regard sur un appareil distinct, et elle mérite d’être utilisée comme telle.
Ce que SSP ne peut pas faire, c’est vous dire ce qu’un site a l’intention de faire d’une signature. Il vous montre fidèlement les données – les lire reste votre travail.
Le bilan honnête
Signer un message permet de prouver des choses avec votre clé sans rien dépenser, et la plupart du temps, c’est exactement aussi inoffensif que cela en a l’air. Les exceptions sont les signatures qui autorisent une dépense, une mise en vente ou un transfert – et elles se ressemblent souvent jusqu’à ce que vous les lisiez.
Alors lisez-les. Vérifiez le domaine, l’adresse, la chaîne et le contenu. Signez ce que vous comprenez, et considérez tout ce que vous ne pouvez pas lire comme un refus.


