什麼是重放攻擊?

分享
什麼是重放攻擊?

重放攻擊又稱重播攻擊,在該種網路攻擊的情況下惡意實體將會攔截有效資料,並將其在網路中重複傳輸。由於原始資料(通常來自已授權使用者)的有效性,所以網路的安全協定通常會將此種攻擊視為正常的資料傳輸。同時,由於進行重放攻擊的駭客會將原始資訊攔截並原樣重傳,所以駭客通常不需要對這些資料進行破解。


駭客可以使用重放攻擊進行怎樣的破壞?

重放攻擊可以通過傳輸看似有效的憑證來訪問其他存儲在受保護網路中資訊。它們還可以欺騙金融機構進行重複交易,並以此來允許攻擊者直接從受害者帳戶中提取資金。某些情況下,駭客還會將不同的加密資訊的不同部分進行組合,並將形成的密文上傳至網路,而這就是所謂的剪貼攻擊。駭客通常使用此種攻擊來獲取網路中更有價值的資訊,並利用這些資訊來進一步損害系統。

重放攻擊的確會引起一些顯而易見的風險,但僅使用它們的駭客可獲得成果卻很有限。攻擊者無法篡改正在傳輸且未被網路拒絕的資料,所以此種攻擊的有效性將被限制為重複傳輸之前的資料。而且這些攻擊通常也是容易進行防禦的。例如為資料傳輸添加時間戳記這樣的基本防禦措施就可以避免簡單的重放攻擊。伺服器還可以緩存重複的資訊,並在一定次數後切段與此類消息的連接,從而限制了攻擊者可以進行的連續重播次數。


為何重放攻擊在加密貨幣領域至關重要?

儘管此類攻擊並非加密貨幣世界所專有的,但它們與加密貨幣交易以及區塊鏈帳本的安全環境卻尤為相關。因為,區塊鏈帳本通常要進行被稱為“硬分叉”的協議更改或升級。當發生硬分叉時,現有的帳本要分為兩部分,一部分要運行軟體的遺留版本,另一部則運行更新後的版本。一些硬分叉僅是為了帳本升級,而有一些則是為了更有效的形成新的加密貨幣。後一種效用的最明顯例子就是2017年8月1日發生的硬分叉,這次更新之後允許了比特幣現金從比特幣帳本中分支出來。

當這些硬分叉發生時,攻擊者理論上是可以是對區塊鏈帳本進行重放攻擊的。在一條分類帳上處理的交易可能在硬分叉後在另一條鏈上也是有效的。所以,在一條分類帳上接受一定數量加密貨幣的人,可以在切換到另一條分類帳上並複製交易,並以此欺詐的方式來第二次獲得相同數量單位的加密貨幣。而因為錢包不並是帳本共用歷史的一部分,所以在硬分叉之後訪問區塊鏈的用戶將不會受到此類攻擊。

 

區塊鏈如何防範此類攻擊?

的確,已分叉區塊鏈帳本可能受到重放攻擊的漏洞值得我們關注,但大多數硬分叉中都包含了專門用於防止此類攻擊的安全協議。針對區塊鏈重放攻擊的有效措施分為兩類,一為強制性重放保護,另一種是選擇性重放保護。在強制性重放保護中,會在硬分叉產生的新帳本上添加特殊的標記,來確保在新帳本上進行的交易在舊帳本上無效,而反過來也是如此。此種方式是當時比特幣現金從比特幣中分叉出來所實施的保護。

此強制性重放保護會在發生硬分叉時立即自動執行。而選擇性重放保護則需要使用者手動的更改他們的交易,以確保這些交易不能被重放。當硬分叉是為了對加密貨幣主帳本進行更新而並非分離新帳本時,選擇性重放保護是有效措施。

除了這些主帳本解決方案外,個人用戶還可以自行採取措施來保護自己免受重放攻擊侵害。其中一種方法是鎖定正在傳輸的代幣,直到帳本具有了一定數量的區塊,從而阻止了那些擁有相同代幣數量的重放攻擊的網路驗證。但需要注意的是,並不是所有的錢包或者帳本都提供了此種功能。


總結

當重放攻擊成功實施時,的確會對網路安全造成威脅。不同於其他類型的攻擊,重放攻擊並不依賴於對資料的解密,而這就使得它們成為惡意參與者對抗日益健全的安全協議的有效“解決方案”。但同時也存在一些強有力的解決方案可以有效的防止區塊鏈系統不受它們的影響。特別是強制性重放保護的使用,可以有效的防止在發生硬分叉後攻擊者進行的交易複製。

Loading