Glossary
Rejeu de signature
Réutiliser un message signé dans un contexte différent — chaîne, contrat ou nonce — que celui prévu par le signataire, car le payload signé manquait de séparation de domaine.
Un message signé qui n'inclut pas le chain ID, l'adresse du contrat et le nonce dans son payload haché peut parfois être rejoué sur une autre chaîne (forks !), sur un autre contrat (avec la même clé signataire), ou après que l'action originale ait déjà été effectuée. Le signataire pensait autoriser une chose ; l'attaquant utilise la signature pour en autoriser une autre.
La signature de données typées EIP-712 ajoute des séparateurs de domaine explicites (name, version, chainId, verifyingContract) précisément pour empêcher le rejeu. Tout schéma de signature de message qui n'est pas EIP-712 est un candidat à auditer pour le risque de rejeu.