Article 6 sur 125 min de lecture

Ce que vous montre le téléphone : l’analyse des transactions sur l’appareil de signature

La plupart des vols dans les portefeuilles se font avec le consentement de leur propriétaire. Une page affiche une chose, le portefeuille en signe une autre, et le propriétaire a cliqué sur Confirm (Confirmer). Le rôle du téléphone est de garantir que ce que vous voyez est bien ce que vous signez.

Un téléphone qui décode une autorisation de dépense illimitée au profit d’un bénéficiaire inconnu, les deux alertes mises en évidence en encadré, et une petite carte montrant que la page indiquait seulement Swap
La requête telle qu’elle est vraiment, pas telle que la page l’a décrite.
Sur cette page

Une affirmation et la vérité

Lorsqu’une page web vous demande de signer quelque chose, elle vous dit aussi de quoi il s’agit. « Échangez 1 ETH contre des USDC. » « Réclamez votre récompense. » « Vérifiez votre portefeuille. » Cette description est une affirmation de la page, et une page malveillante peut affirmer tout ce qu’elle veut. Les octets qu’elle transmet au portefeuille sont une chose distincte, et c’est la seule que la blockchain verra jamais.

AirNox Vault ignore l’affirmation. Il décode la requête à partir des octets exacts qu’il s’apprête à signer, sur le téléphone, avec son propre analyseur, et vous montre le résultat. Ce que l’ordinateur dit d’une requête est une affirmation. Ce que montre le téléphone est la vérité.

À gauche : une page affiche « Swap 1 ETH to USDC » ; à droite : le téléphone décode une autorisation de dépense illimitée au profit d’un bénéficiaire inconnu
La même requête, deux descriptions. Une seule provient des octets.

Le téléphone reconnaît les opérations standard

L’essentiel de ce que vous signez est ordinaire. Un transfert. Une autorisation de dépense (allowance) sur un token. Un swap via un routeur connu. Un dépôt dans un contrat. Le téléphone reconnaît les opérations standard de chaque famille de chaînes qu’il prend en charge et les présente en termes clairs : quelle opération, quel token, quel montant, à qui, sur quel réseau, et quel est le plafond de frais. Un transfert ressemble à un transfert. Une autorisation de dépense ressemble à une autorisation de dépense, avec le bénéficiaire (spender) et le montant écrits en toutes lettres.

Les sosies sont signalés

Les requêtes dangereuses sont celles qui ont l’air ordinaires et ne le sont pas. Une méthode dont le nom ressemble à celui d’une méthode standard, mais dont les paramètres ne correspondent pas. Un appel qui délègue le contrôle à un autre contrat d’une manière qui n’apparaît pas dans l’intitulé. Une cible qui n’est pas le contrat auquel la page prétendait s’adresser. Un token dont le symbole usurpe celui d’un token connu. Une adresse de destinataire qui partage ses premiers et derniers caractères avec l’une des vôtres.

Chacun de ces cas est détecté et transformé en alerte. Le téléphone ne refuse pas de signer, parce que la décision vous appartient. Il fait en sorte que vous ne puissiez pas passer à côté.

Six alertes : autorisation illimitée, bénéficiaire inconnu, méthode sosie, token usurpateur, destinataire sosie, délégation cachée
Les alertes que le téléphone lève avant de vous laisser accepter.

Les alertes

Une autorisation de dépense illimitée est le coup classique des drainers : on approuve (approve) une fois, et l’on perd ensuite tout ce que l’on détient de ce token. Le téléphone affiche « illimité » en rouge et le traite comme une alerte.

Un bénéficiaire inconnu, c’est une autorisation de dépense accordée à une adresse dont personne ne s’est porté garant. Lorsqu’un swap a été coté via un routeur précis et que l’approbation vise autre chose, l’écart est une alerte.

Une méthode sosie, un symbole de token usurpé, un destinataire sosie et une délégation cachée sont chacun signalés nommément. Pour les destinataires, l’ordinateur et le téléphone affichent tous deux une image déterministe de l’adresse : un sosie qui trompe l’œil sur l’hexadécimal ne le trompe pas sur l’image.

Acquitter, puis Accept

Une alerte n’est pas une fenêtre que l’on ferme par réflexe. Accept (Accepter) reste désactivé tant que chaque alerte n’a pas été cochée. Vous pouvez refuser à tout moment. Vous ne pouvez accepter qu’après avoir acquitté ce que le téléphone a trouvé. Ce seul choix de conception transforme « j’ai cliqué sans lire » en « je l’ai lu et j’ai choisi de continuer », et c’est toute la différence entre un portefeuille vidé et une décision.

L’ordinateur contrôle en premier

La même analyse tourne sur l’ordinateur avant même qu’une requête ne le quitte, si bien que la plupart des requêtes malveillantes sont signalées dans la fenêtre du portefeuille avant d’atteindre le téléphone. Le téléphone refait l’analyse parce que l’ordinateur est la machine que nous supposons compromise. Deux passes indépendantes, sur deux appareils, et le dernier mot à celui qui détient les clés.

Lire reste votre travail

Un appareil de signature (signer) qui vous montre la vérité ne peut pas vous empêcher d’y consentir. Ce qu’il peut faire, c’est rendre la vérité impossible à manquer : décodée à partir des octets, en termes clairs, avec les parties risquées en rouge et une barrière qu’il faut franchir volontairement. Le reste dépend de vous, et vous avez désormais ce qu’il faut pour décider.

La série complète

  1. Partez du principe que l’ordinateur est compromis
  2. Mass Adoption Security : l’appareil de signature est un téléphone que vous possédez déjà
  3. Trois façons de franchir l’air gap : QR codes, Bluetooth LE et NFC
  4. Invisible sur les ondes : un appareil de signature qu’aucun scan ne repère
  5. On ne fait jamais confiance au transport
  6. Ce que vous montre le téléphone : l’analyse des transactions sur l’appareil de signature
  7. Le téléphone tient son propre registre
  8. Le coffre-fort de votre ordinateur : Argon2id et un profil qui résiste au cassage
  9. Des dApps sans portefeuille de navigateur
  10. Un serveur MCP avec des règles : des agents IA encadrés par des limites
  11. Un seul portefeuille protégé pour tout
  12. Petit et natif : C++, aucun runtime JavaScript, de la station de travail au Raspberry Pi

Rejoignez la liste d’attente

Laissez votre adresse e-mail et nous vous enverrons les annonces de sortie. Rien d’autre.