Was ist ein Replay-Angriff?

Während des Starts des Frontier-Netzwerks wurden Benutzer davor gewarnt, Schlüssel aus dem olympischen Testnetz wiederzuverwenden, um "Wiederholungsangriffe" zu verhindern. Was ist ein Replay-Angriff und warum würde die Wiederverwendung eines Schlüssels aus dem Testnetz jemanden anfällig für einen solchen machen?

Antworten (3)

Ein Replay-Angriff ist eine gültige Datenübertragung, die böswillig oder betrügerisch wiederholt oder verzögert wird.

Ausgedehnt auf Blockchains nimmt ein Replay-Angriff eine Transaktion auf einer Blockchain und wiederholt sie böswillig oder betrügerisch auf einer anderen Blockchain.

Zum Beispiel nimmt ein Angreifer die Testnet-Transaktion von jemandem und wiederholt sie auf der „echten“ Blockchain, um „echte“ Gelder zu stehlen.

Wie @libertylocked kommentierte, wurde EIP 155 Simple Replay Attack Protection implementiert.

Mehr Info

In Bitcoin verwenden Adressen im Testnetz ein anderes Präfix als Adressen im Hauptnetz: Daher sind die Schlüssel unterschiedlich.

In Ethereum gibt es derzeit keine „Präfixe“. (Wahrscheinlich, um die Erstellung neuer Adressen einfacher zu halten.) Eine Transaktion, die mit einem Schlüssel signiert ist, der in einem Ethereum-Netzwerk / einer Ethereum-Kette gültig ist, gilt für alle Ethereum-Ketten.

Dies bedeutet, dass, wenn beim „Testen“ Gelder von Konto B an Konto Test gesendet werden, dieselbe Transaktion an die öffentliche Ethereum-Blockchain wiederholt (gesendet) werden kann: ein Replay-Angriff. Der Replay-Angriff wird „erfolgreich“, wenn Konto B Geld in der öffentlichen Blockchain hat. Um vollständig erfolgreich zu sein, müsste ein Angreifer den privaten Schlüssel von accountTest kennen, um die Gelder zu stehlen, aber da accountTest zum Testen erstellt wurde, ist sein privater Schlüssel möglicherweise nicht sicher (vielleicht ist es nur eine „Brainwallet“ mit dem Passwort „test“. ).

Replay-Angriffe werden eliminiert, indem unterschiedliche Adressen/Schlüssel zwischen dem Frontier-Netzwerk und allen anderen Ethereum-Ketten verwendet werden. (Ein bisschen wie die Verwendung eines anderen Passworts für wertvolle Dinge von weniger wertvollen oder weniger vertrauenswürdigen Websites.) Siehe auch: Wie kann man einen Replay-Angriff zwischen zwei konkurrierenden Ketten verhindern? und wie im @libertylocked-Kommentar erwähnt, wurde EIP 155 Simple Replay Attack Protection implementiert.

Und um das zu bestätigen.. Beim Erstellen „neuer“ Konten auf jeder Kette, obwohl diese Kreationen auch wiedergegeben werden können, wäre dies sinnlos, da Sie immer noch den privaten Schlüssel zu diesen Konten kontrollieren. Ist das richtiges Verständnis?
Soweit ich weiß, verwendet die doppelte Übertragung auf der unbeabsichtigten Kette die bereits signierten Transaktionsdaten erneut, sodass für den Angriff kein privater Schlüssel benötigt wird. Es ist eine Art „Man-in-the-Middle“-Angriff, der den Datenfluss eines vermeintlich gesicherten Kanals kompromittiert.
@ThomasClowes Richtig, es wäre sinnlos, weil Sie immer noch den privaten Schlüssel zu diesen Konten kontrollieren.
@Sz Sie haben Recht mit dem "allgemeinen" Fall. Wenn Sie auf Thomas' Kommentar antworten, dann ist das Wiederholen einer Transaktion, die Gelder an Thomas' privaten Schlüssel sendet, kein "Angriff", da die Gelder immer noch von Thomas kontrolliert werden. Es wäre sicherlich anders, wenn Thomas Ihnen Gelder auf einer Kette schicken würde, und dann könnten Sie es in diesem Fall sicherlich wiederholen, um Thomas' Gelder auf der anderen Kette zu bekommen, und das wäre ein Angriff.
EIP155 wurde CHAIN_IDals Teil des Wiederherstellungsbytes bei der Überprüfung der Transaktionssignatur eingeführt. Daher haben Transaktionen, die in einem Netzwerk gesendet werden, nicht die richtige Signatur auf einer anderen Ketten-ID

Dies bedeutet, dass eine Transaktion, die im Olympic Testnet gültig war, auch für die nächste Version (Frontier) gültig war.

Wenn Sie in Olympic eine Transaktion T durchgeführt haben, die Ether von Adresse A nach B sendet, und dann den Schlüssel hinter Adresse A in der Frontier-Version wiederverwenden, könnte diese Transaktion T erneut gesendet (wiederholt) werden und die Übertragung von A nach B würde stattfinden Frontier, auch wenn Sie (Eigentümer von A) dies nicht beabsichtigten.

Deshalb wurden die Leute gebeten, Schlüssel nicht wiederzuverwenden.

Um Replay-Angriffe zu vermeiden, verwenden Sie EIP155- Transaktionstypen, die seit Block 2675000 verfügbar sind. Sie chainIDwerden in die Transaktionssignatur integriert. Stellen Sie sicher, dass Ihre Wallet-Software EIP155-fähig ist, und Sie sind sicher