Hvad er Replay Attack?
En Replay Attack er, når nogen opsnapper en gyldig kryptohandling og sender den igen, så et netværk behandler den som ny. Signaturen er legitim, timingen er snedig. Tænk på det som hvis en person genbruger din underskrevne check ved en anden skranke der stadig følger de samme regler.
En Replay Attack betyder, at din private nøgle er blevet stjålet. Ikke helt. Angriberen kan genbruge din allerede underskrevne besked, hvis to steder accepterer den på samme måde, selv uden at kende din nøgle.
Hvordan Replay Attack fungerer
Kort gennemgang for at gøre det klart.
- Trin 1: Du udsender en underskrevet transaktion.
- Trin 2: En angriber kopierer præcis de samme underskrevne data.
- Trin 3: De sender den igen der hvor den stadig verificeres, for eksempel efter en hard fork eller på en kæde der accepterer de samme signaturregler.
- Trin 4: Netværket ser en gyldig signatur og behandler den igen, så værdi flyttes to gange.
- Trin 5: Kun kontroller mod replay stopper det, såsom chain IDs, nonces eller applikationsniveau engangstilladelser.
Det er hele tricket. Irriterende, og samtidig let at forhindre.
Hvorfor Replay Attack betyder noget
Hvorfor skulle du bekymre dig om en Replay Attack? Fordi den kan duplikere en ægte handling, du mente kun skulle ske én gang, og få den til at ske to gange.
- Fordel: At kende risikoen sparer penge og bekymringer ved at hjælpe dig til at udføre mere sikre handlinger.
- Perspektiv: At bruge flere kæder er almindeligt nu, så kopierede beskeder der ender det forkerte sted sker oftere end mange tror.
- Relevans: Du vil se dette begreb, når du flytter midler på tværs af et blockchain netværk, under kædesplit eller når du underskriver off chain beskeder til apps.
Brug en wallet der tydeligt viser den aktive kæde og sætter chain IDs korrekt. Hvis du er i tvivl, send først en lille test, og send så resten.
Vigtige kendetegn ved Replay Attack
Genkend mønsteret hurtigt med disse tegn:
- Kopi: Den genbruger præcis den samme underskrevne besked, byte for byte.
- Gyldighed: Signaturen er ægte, så noder accepterer den medmindre der findes kontroller mod replay.
- Timing: Mest almindeligt ved kædesplit, broer eller når apps springer kontrol af noncer over.
Variationer
Samme fremgangsmåde, forskellige situationer:
- Fork: Replays på tværs af to kæder der splitter og stadig accepterer de samme signaturer.
- Crosschain: Replays mellem kæder der deler parametre eller accepterer de samme beskedformater.
- Kontrakt: Replays af underskrevne tilladelser eller meta transaktioner i apps der glemte en engangsnonce.
Efter store opgraderinger eller splits, tjek din transaktionshistorik på begge kæder. Hvis noget ser dobbelt ud, hold pause før du sender mere.
Eksempel
Efter DAO fork blev nogle udbetalinger underskrevet på Ethereum accepteret igen på Ethereum Classic indtil stærkere beskyttelse mod replay blev indført.
Sjov kendsgerning
Ethereum indførte chain IDs i 2016 via EIP155 specifikt for at stoppe Replay Attack tricks, og det designvalg påvirkede hvordan moderne wallets får dig til at vælge en kæde på forhånd.
Opsummering
Replay Attack i en sætning: en ægte signatur genbrugt hvor eller når den ikke burde være det. Betragt det som en dobbeltopkrævning og du vil opdage det hurtigere.
