Co je Replay Attack?
Replay Attack nastane, když někdo zachytí platnou kryptografickou akci a pošle ji znovu, takže ji síť považuje za novou. Podpis je legitimní, načasování klamné. Představte si to jako kdyby někdo znovu použil váš podepsaný šek na jiné přepážce, která stále uplatňuje stejná pravidla.
Replay Attack neznamená, že byl ukraden váš soukromý klíč. Ne zcela. Útočník může znovu použít již vámi podepsanou zprávu, pokud ji dvě místa přijmou stejným způsobem, i bez znalosti vašeho klíče.
Jak Replay Attack funguje
Krátké shrnutí, aby to zůstalo v paměti.
- Krok 1: Odešlete podepsanou transakci.
- Krok 2: Útočník zkopíruje přesně tato podepsaná data.
- Krok 3: Znovu je odešlou tam, kde stále projde ověřením, například po hard forku nebo na řetězci, který přijímá stejná pravidla pro podpisy.
- Krok 4: Síť uvidí platný podpis a zpracuje ho znovu, takže prostředky se přesunou dvakrát.
- Krok 5: Zastaví to pouze ochranné kontroly proti replay útokům, jako jsou chain ID, nonce nebo jednorázová povolení v aplikaci.
To je celé. Otravné, a snadno zabránitelné.
Proč je Replay Attack důležitý
Proč by vás Replay Attack měl zajímat? Protože může duplikovat skutečnou akci, kterou jste chtěli provést jednou, a udělat z ní dvakrát.
- Přínos: Znát riziko vám ušetří peníze a stres tím, že vám pomůže plánovat bezpečnější kroky.
- Pohled: Život na více sítích je běžný, takže kopírování zpráv do nesprávného místa se stává častěji, než si lidé myslí.
- Význam: S tímto pojmem se setkáte při přesunu prostředků napříč blockchainovou sítí, během rozdělení řetězců nebo při podepisování off-chain zpráv pro aplikace.
Použijte peněženku, která jasně zobrazuje aktivní síť a správně nastavuje chain ID. Když si nejste jisti, nejprve pošlete malý testovací převod, potom zbytek.
Hlavní rysy Replay Attack
Rozpoznejte vzor rychle podle těchto příznaků:
- Kopie: Znovu používá přesně stejnou podepsanou zprávu, byte po bytu.
- Platnost: Podpis je platný, takže uzly jej akceptují, pokud neexistují ochrany proti replay útokům.
- Načasování: Nejčastější při rozdělení řetězce, mostech nebo když aplikace vynechají kontrolu nonce.
Varianty
Stejný postup, jiné prostředí:
- Fork: Replay útoky napříč dvěma řetězci, které se rozdělily a stále uznávají stejné podpisy.
- Crosschain: Replay mezi řetězci, které sdílejí parametry nebo přijímají stejné formáty zpráv.
- Contract: Replay podepsaných povolení nebo meta transakcí v aplikacích, které zapomněly na jednorázový nonce.
Po větších aktualizacích nebo rozděleních si zkontrolujte svou historii transakcí na obou řetězcích. Pokud se něco zdá zdvojené, zastavte se dříve, než pošlete další transakce.
Příklad
Po DAO forku byly některé výběry podepsané na Ethereum opět akceptovány na Ethereum Classic, dokud nebyla zavedena silnější ochrana proti replay.
Zajímavost
Ethereum zavedlo chain ID v roce 2016 prostřednictvím EIP155 právě proto, aby zastavilo triky Replay Attack. Toto rozhodnutí ovlivnilo, jak moderní peněženky vyžadují volbu sítě hned na začátku.
Shrnutí
Replay Attack jednou větou: skutečný podpis znovu použit tam nebo tehdy, kde by neměl být. Považujte to za dvojí účtování a rozpoznáte to rychleji.
