Vad är Replay Attack?
En Replay Attack är när någon fångar upp en giltig kryptohandling och skickar den igen så att ett nätverk behandlar den som ny. Signaturen är äkta, tidpunkten är listig. Tänk på det som att någon återanvänder din signerade check i en annan kassa som fortfarande följer samma regler.
En Replay Attack betyder att din privata nyckel blivit stulen. Inte riktigt. Angriparen kan återanvända ditt redan signerade meddelande om två platser accepterar det på samma sätt, även utan att känna till din nyckel.
Hur Replay Attack fungerar
Kort genomgång så det fastnar.
- Steg 1: Du sänder en signerad transaktion.
- Steg 2: En angripare kopierar exakt samma signerade data.
- Steg 3: De skickar om den där den fortfarande verifieras, till exempel efter en hard fork eller på en kedja som accepterar samma signaturregler.
- Steg 4: Nätverket ser en giltig signatur och behandlar den igen, så värde flyttas två gånger.
- Steg 5: Endast kontroller mot Replay Attack stoppar det, till exempel chain IDs, nonces eller engångstillstånd på applikationsnivå.
Det är hela knepet. Irriterande och mycket förebyggbart.
Varför Replay Attack spelar roll
Varför bör du bry dig om en Replay Attack? För att den kan duplicera en verklig åtgärd du tänkt göra en gång och få den att utföras två gånger.
- Fördel: Att känna till risken sparar pengar och stress genom att hjälpa dig lägga upp tryggare åtgärder.
- Perspektiv: Att använda flera kedjor är vanligt nu, så kopierade meddelanden som hamnar på fel plats sker oftare än man tror.
- Relevans: Du kommer stöta på denna term när du flyttar medel över ett blockkedjenätverk, vid kedjesplitter eller när du signerar meddelanden utanför kedjan för appar.
Använd en plånbok som tydligt visar vilken kedja som är aktiv och ställer in chain IDs korrekt. Vid tvekan, skicka först en liten testtransaktion, sedan resten.
Viktiga kännetecken för Replay Attack
Känn igen mönstret snabbt med dessa tecken:
- Kopiering: Den återanvänder exakt samma signerade meddelande, byte för byte.
- Giltighet: Signaturen är äkta, så noder accepterar den om det inte finns skydd mot Replay Attack.
- Tidpunkt: Vanligast vid kedjesplitter, broar eller när appar hoppar över noncekontroller.
Variationer
Samma upplägg, olika miljöer:
- Fork: Replays mellan två kedjor som delat sig och fortfarande godkänner samma signaturer.
- Crosschain: Replays mellan kedjor som delar parametrar eller accepterar samma meddelandeformat.
- Contract: Replays av signerade tillstånd eller meta transaktioner i appar som glömt en engångsnonce.
Efter större uppgraderingar eller kedjesplitter, kontrollera din transaktionshistorik på båda kedjorna. Om något ser ut att vara dubblat, avvakta innan du skickar mer.
Exempel
Efter DAO fork accepterades vissa uttag som signerats på Ethereum igen på Ethereum Classic tills starkare skydd mot Replay Attack infördes.
Roligt faktum
Ethereum införde chain IDs 2016 via EIP155 för att förhindra Replay Attack, och det valet påverkade hur moderna plånböcker kräver att du väljer en kedja i förväg.
Sammanfattning
Replay Attack i ett nötskal: en äkta signatur som återanvänds där eller när den inte borde. Se det som en dubbeldebitering så upptäcker du det snabbare.
