Skip to content

Glossary

Malléabilité des signatures

Une faille où une signature valide peut être transformée en une seconde tout aussi valide sans la clé privée, modifiant le hash de la transaction et permettant des bugs de replay.

Toute signature ECDSA a la forme (r, s) et, du fait de la symétrie de la courbe, la paire (r, n - s) est une signature tout aussi valide pour le même message et la même clé. Un attaquant incapable de forger une signature peut malgré tout inverser s en son complément, produisant une seconde signature d'apparence différente — et, dans les systèmes qui identifient une transaction par le hash de ses octets signés, un identifiant de transaction différent pour la même intention.

L'exposition précoce de Bitcoin à ce problème — fameusement invoquée comme excuse lors de l'effondrement de Mt. Gox — et la menace qu'elle faisait peser sur une protection anti-replay on-chain naïve ont conduit l'EIP-2 d'Ethereum à imposer la forme canonique low-s. Dans les smart contracts, ne traitez jamais une signature comme un identifiant unique : dédupliquez via un nonce explicite et vérifiez avec une bibliothèque auditée comme l'ECDSA d'OpenZeppelin, qui rejette la variante malléable high-s.