什麼是重放攻擊保護?

來源:趣味百科館 5.24K
什麼是重放攻擊保護?

重放攻擊(Replay Attacks)又被稱為重播攻擊,也被叫做回放攻擊,不僅存在於區塊鏈的世界中,在傳統網絡中也有這種攻擊方式。如果在傳統網絡中,重放攻擊指的是攻擊者發送一個接收者已接收過的數據包,這種數據包用於迷惑接收者。攻擊者可能是最初的發送者,也可能是攔截並重發數據的第三者。在區塊鏈網絡中,尤其是在兩條分叉鏈上,會非常容易出現這種問題。就像當時在以太坊和以太經典分叉時就出現過這樣的問題。由於以太坊和以太經典在剛剛分叉時,除了ETH回滾了在The DAO事件被盜的token之外,沒有任何系統差別。因此發佈在ETH上的廣播可以被拿到ETC網絡上立即重播一次。在分叉過程中,同一個私鑰對應的地址內既存着ETH,又存着ETC。因此在分叉後,攻擊者就可以發出重放攻擊了。説個例子,黑客Alice從B交易所提現100個ETH時,交易所B必須先向ETH礦工網絡廣播交易信息,這條交易信息中有交易所的私鑰簽名。這時候如果Alice想要作惡,她可以立刻將此廣播在ETC網絡中再廣播一次。由於廣播中包含交易所B的私鑰簽名信息,而且交易所地址中既有100個ETH,又有100個ETC,那麼黑客Alice可以不經交易所同意(因為ETC礦工也看到了交易所的私鑰簽名),把交易所B地址中的100個ETC也劃給自己。這時雖然Alice只提現了ETH,但是她同時把交易所B的ETH和ETC都取走了。但是後期的分叉中,各分叉鏈和持有者都對重放攻擊有所準備,比如客户端有重放攻擊保護,交易所暫停重提幣等。再比如説在比特幣和比特幣現金分叉時,比特幣現金交易廣播必須使用SIGHASH_FORKID,這樣比特幣和比特幣現金相互之間就沒有重放攻擊的干擾了。但是在本次分叉中,和過去分叉不同得是,由於SV版本主動移除了“重放攻擊保護”,這就意味着兩條鏈面臨着巨大的重放攻擊風險。作為持有者,在分叉競爭結束之前,如果擔心風險,最好不要使用任何版本的BCH客户端發送交易給其他人,除非收發地址都是自己。不發送交易是沒有被盜走的風險的,一旦發送廣播就會面臨着被惡意攻擊者偷走兩種資產中的一種的風險。

熱門標籤