重放攻擊又稱回放攻擊,在該種網絡攻擊的情況下惡意實體將會攔截有效數據,並將其在網絡中重複傳輸。由於原始數據(通常來自已授權用戶)的有效性,所以網絡的安全協議通常會將此種攻擊視爲正常的數據傳輸。同時,由於進行重放攻擊的黑客會將原始信息攔截並原樣重傳,所以黑客通常不需要對這些數據進行破解。
黑客可以使用重放攻擊進行怎樣的破壞?
重放攻擊可以通過傳輸看似有效的憑證來訪問其他存儲在受保護網絡中信息。它們還可以欺騙金融機構進行重複交易,並以此來允許攻擊者直接從受害者賬戶中提取資金。某些情況下,黑客還會將不同的加密信息的不同部分進行組合,並將形成的密文上傳至網絡,而這就是所謂的剪貼攻擊。黑客通常使用此種攻擊來獲取網絡中更有價值的信息,並利用這些信息來進一步損害系統。
重放攻擊的確會引起一些顯而易見的風險,但僅使用它們的黑客可獲得成果卻很有限。攻擊者無法篡改正在傳輸且未被網絡拒絕的數據,所以此種攻擊的有效性將被限制爲重複傳輸之前的數據。而且這些攻擊通常也是容易進行防禦的。例如爲數據傳輸添加時間戳這樣的基本防禦措施就可以避免簡單的重放攻擊。服務器還可以緩存重複的信息,並在一定次數後切段與此類消息的連接,從而限制了攻擊者可以進行的連續重播次數。
爲何重放攻擊在加密貨幣領域至關重要?
儘管此類攻擊並非加密貨幣世界所專有的,但它們與加密貨幣交易以及區塊鏈賬本的安全環境卻尤爲相關。因爲,區塊鏈賬本通常要進行被稱爲“硬分叉”的協議更改或升級。當發生硬分叉時,現有的賬本要分爲兩部分,一部分要運行軟件的遺留版本,另一部則運行更新後的版本。一些硬分叉僅是爲了賬本升級,而有一些則是爲了更有效的形成新的加密貨幣。後一種效用的最明顯例子就是2017年8月1日發生的硬分叉,這次更新之後允許了比特幣現金從比特幣賬本中分支出來。
當這些硬分叉發生時,攻擊者理論上是可以是對區塊鏈賬本進行重放攻擊的。在一條分類賬上處理的交易可能在硬分叉後在另一條鏈上也是有效的。所以,在一條分類賬上接受一定數量加密貨幣的人,可以在切換到另一條分類賬上並複製交易,並以此欺詐的方式來第二次獲得相同數量單位的加密貨幣。而因爲錢包不併是賬本共享歷史的一部分,所以在硬分叉之後訪問區塊鏈的用戶將不會受到此類攻擊。
區塊鏈如何防範此類攻擊?
的確,已分叉區塊鏈賬本可能受到重放攻擊的漏洞值得我們關注,但大多數硬分叉中都包含了專門用於防止此類攻擊的安全協議。針對區塊鏈重放攻擊的有效措施分爲兩類,一爲強制性重放保護,另一種是選擇性重放保護。在強制性重放保護中,會在硬分叉產生的新賬本上添加特殊的標記,來確保在新賬本上進行的交易在舊賬本上無效,而反過來也是如此。此種方式是當時比特幣現金從比特幣中分叉出來所實施的保護。
此強制性重放保護會在發生硬分叉時立即自動執行。而選擇性重放保護則需要用戶手動的更改他們的交易,以確保這些交易不能被重放。當硬分叉是爲了對加密貨幣主賬本進行更新而並非分離新賬本時,選擇性重放保護是有效措施。
除了這些主賬本解決方案外,個人用戶還可以自行採取措施來保護自己免受重放攻擊侵害。其中一種方法是鎖定正在傳輸的代幣,直到賬本具有了一定數量的區塊,從而阻止了那些擁有相同代幣數量的重放攻擊的網絡驗證。但需要注意的是,並不是所有的錢包或者賬本都提供了此種功能。
總結
當重放攻擊成功實施時,的確會對網絡安全造成威脅。不同於其他類型的攻擊,重放攻擊並不依賴於對數據的解密,而這就使得它們成爲惡意參與者對抗日益健全的安全協議的有效“解決方案”。但同時也存在一些強有力的解決方案可以有效的防止區塊鏈系統不受它們的影響。特別是強制性重放保護的使用,可以有效的防止在發生硬分叉後攻擊者進行的交易複製。