Qu'est-ce que Replay Attack ?
Une Replay Attack se produit lorsqu'une personne intercepte une action crypto valide et l'envoie de nouveau, de sorte qu'un réseau la traite comme si elle était nouvelle. La signature est légitime, le moment est trompeur. Imaginez que quelqu'un réutilise votre chèque signé à un autre guichet qui suit les mêmes règles.
Une Replay Attack signifie que votre clé privée a été volée. Pas tout à fait. L'attaquant peut réutiliser votre message déjà signé si deux endroits l'acceptent de la même façon, même sans connaître votre clé.
Comment fonctionne Replay Attack
Présentation rapide pour s'en souvenir.
- Étape 1 : Vous diffusez une transaction signée.
- Étape 2 : Un attaquant copie ces données signées exactement.
- Étape 3 : Il les renvoie là où elles restent vérifiables, par exemple après un hard fork ou sur une chaîne qui accepte les mêmes règles de signature.
- Étape 4 : Le réseau voit une signature valide et la traite de nouveau, si bien que la valeur est transférée deux fois.
- Étape 5 : Seules des vérifications anti replay l'empêchent, comme les ID de chaîne, les nonces ou des autorisations à usage unique au niveau de l'application.
Voilà tout le tour. Ennuyeux et facilement évitable.
Pourquoi Replay Attack est important
Pourquoi devriez-vous vous préoccuper d'une Replay Attack ? Parce qu'elle peut dupliquer une action réelle que vous vouliez faire une fois, et la transformer en deux exécutions.
- Avantage : Connaître le risque vous fait économiser de l'argent et du stress en vous aidant à organiser des opérations plus sûres.
- Perspective : Les transferts sur plusieurs chaînes sont courants maintenant, donc des messages copiés arrivant au mauvais endroit se produisent plus souvent qu'on ne le pense.
- Pertinence : Vous verrez ce terme lorsque vous transférez des fonds sur un réseau blockchain, lors de scissions de chaîne, ou quand vous signez des messages hors chaîne pour des applications.
Choisissez un wallet qui affiche clairement la chaîne active et définit correctement les ID de chaîne. En cas de doute, envoyez d'abord un petit test, puis le reste.
Caractéristiques principales de Replay Attack
Repérez le schéma rapidement grâce à ces signes :
- Copie : Elle réutilise exactement le même message signé, octet par octet.
- Validité : La signature est réelle, donc les nœuds l'acceptent sauf s'il existe des protections anti replay.
- Moment : Le plus fréquent lors de scissions de chaînes, de ponts ou quand des applications omettent les contrôles de nonce.
Variantes
Même scénario, terrains différents :
- Fork : Replays entre deux chaînes qui se sont séparées et qui acceptent toujours les mêmes signatures.
- Crosschain : Replays entre chaînes qui partagent des paramètres ou acceptent les mêmes formats de message.
- Contract : Replays d'autorisations signées ou de méta transactions dans des applications qui ont oublié un nonce à usage unique.
Après des mises à jour importantes ou des scissions, vérifiez votre historique des transactions sur les deux chaînes. Si quelque chose semble doublé, faites une pause avant d'envoyer davantage.
Exemple
Après le fork du DAO, certains retraits signés sur Ethereum ont été acceptés de nouveau sur Ethereum Classic jusqu'à l'introduction de protections anti replay renforcées.
Fait amusant
Ethereum a ajouté des ID de chaîne en 2016 via l'EIP155 spécifiquement pour empêcher les astuces de Replay Attack, et ce choix de conception a influencé la manière dont les portefeuilles modernes vous demandent de choisir une chaîne dès le départ.
Conclusion
Replay Attack en une ligne : une signature réelle réutilisée là ou quand elle ne devrait pas l'être. Traitez-la comme une double facturation et vous la repérerez plus vite.
