Mi az a Replay Attack?
Replay Attackről akkor beszélünk, amikor valaki rögzít egy érvényes kriptotranzakciót, majd újra elküldi, hogy a hálózat újként kezelje. Az aláírás valódi, az időzítés alattomos. Olyan, mintha valaki újra felhasználná az aláírt csekkedet egy másik pénztárnál, ahol még mindig ugyanazok a szabályok érvényesek.
A Replay Attack azt jelenti, hogy ellopták a privát kulcsodat. Nem egészen. A támadó újra felhasználhatja a már aláírt üzenetedet, ha két hely ugyanúgy elfogadja, még akkor is, ha nem ismeri a kulcsodat.
Hogyan működik a Replay Attack?
Íme a gyors áttekintés, hogy könnyen megjegyezhető legyen.
- 1. lépés: Közzéteszel egy aláírt tranzakciót.
- 2. lépés: A támadó lemásolja az aláírt adatokat.
- 3. lépés: Újra elküldi oda, ahol még érvényesnek bizonyulnak, például egy hard fork után, vagy egy olyan láncon, amely ugyanazokat az aláírási szabályokat fogadja el.
- 4. lépés: A hálózat érvényesnek látja az aláírást, és ismét feldolgozza a tranzakciót, így az érték kétszer mozdul el.
- 5. lépés: Ezt csak az ismételt végrehajtás elleni ellenőrzések akadályozzák meg, például a láncazonosítók, a nonce-ok vagy az alkalmazásszintű, egyszer használatos engedélyek.
Ennyi az egész trükk. Bosszantó, de nagyon is megelőzhető.
Miért fontos a Replay Attack?
Miért érdemes odafigyelni a Replay Attackre? Mert megkettőzhet egy valódi műveletet, amelyet egyszer akartál végrehajtani, így végül kétszer történik meg.
- Előny: A kockázat ismerete pénzt és idegeskedést takaríthat meg azzal, hogy segít biztonságosabb tranzakciókat végrehajtani.
- Nézőpont: A több láncon való részvétel ma már megszokott, így a másolt üzenetek nem a megfelelő helyen történő megjelenése gyakrabban fordul elő, mint sokan gondolnák.
- Jelentőség: Ezzel a kifejezéssel akkor találkozhatsz, amikor pénzt mozgatsz egy blokklánc-hálózaton, láncszétválások idején, vagy amikor alkalmazások számára láncon kívüli üzeneteket írsz alá.
Olyan walletet használj, amely egyértelműen jelzi az aktív láncot, és helyesen állítja be a láncazonosítókat. Ha bizonytalan vagy, először küldj egy apró tesztösszeget, aztán a többit.
A Replay Attack fő jellemzői
Ezekről az ismertetőjelekről gyorsan felismerheted a mintázatot:
- Másolat: Pontosan ugyanazt az aláírt üzenetet használja fel újra, bájtról bájtra.
- Érvényesség: Az aláírás valódi, ezért a csomópontok elfogadják, hacsak nincsenek ismételt végrehajtás elleni védelmi mechanizmusok.
- Időzítés: Leggyakrabban láncszétválások, hidak környékén, vagy akkor fordul elő, ha az alkalmazások nem ellenőrzik a nonce-okat.
Változatok
Ugyanaz a forgatókönyv, más terepen:
- Fork: Újrajátszás két szétvált lánc között, amelyek továbbra is elfogadják ugyanazokat az aláírásokat.
- Láncok közötti: Újrajátszás olyan láncok között, amelyek megosztják a paramétereiket, vagy ugyanazokat az üzenetformátumokat fogadják el.
- Okosszerződés: Aláírt engedélyek vagy meta-tranzakciók újrajátszása olyan alkalmazásokban, amelyekből kimaradt az egyszer használatos nonce.
Nagyobb frissítések vagy láncszétválások után ellenőrizd a tranzakciós előzményeidet mindkét láncon. Ha bármi duplázódottnak tűnik, várj, mielőtt újabb összeget küldenél.
Példa
A DAO-fork után egyes, Ethereumon aláírt kiutalásokat az Ethereum Classic is elfogadott, amíg be nem vezették az erősebb védelmet az ismételt végrehajtás ellen.
Érdekesség
Az Ethereum 2016-ban, az EIP155 révén vezette be a láncazonosítókat kifejezetten a Replay Attack trükkök megakadályozására. Ez a tervezési döntés azt is befolyásolta, hogy a modern wallettárcák induláskor a lánc kiválasztására kérik a felhasználót.
Összefoglalás
A Replay Attack dióhéjban: valódi aláírás, amelyet ott vagy akkor használnak fel újra, ahol vagy amikor nem kellene. Gondolj rá úgy, mint egy dupla terhelésre, így gyorsabban felismered.