重點整理
當惡意行為者攔截到一筆有效的資料傳輸,並將其重新送到網路中,騙使網路再次接受該資料時,就會發生重放攻擊。
重放攻擊不需要解密資料;它利用的是原始傳輸的合法性。
在加密貨幣領域,重放攻擊可能會在區塊鏈硬分叉之後發生,導致一條鏈上的交易被複製到另一條鏈上。
常見的防禦措施包括時間戳(timestamps)、nonce(一次性隨機數)以及一般網路使用的會話代幣(session tokens);至於區塊鏈,則是使用強重放保護或自願啟用的重放保護。
目前多數主要硬分叉都會內建強重放保護,以防止跨鏈交易被重複複製。
簡介
重放攻擊(replay attack),有時也稱為播放攻擊(playback attack),是一種網路資安攻擊:攻擊者截取到一筆有效的資料傳輸,然後再傳回網路。由於資料源自已授權的使用者,網路的安全協定可能會將其視為合法。這使攻擊者能在不需要偽造憑證或破解加密的情況下,執行未授權的行為。
重放攻擊可能影響許多類型的網路,包括金融系統、驗證平台以及加密貨幣帳本。在加密貨幣的脈絡中,這特別重要,因為當區塊鏈發生硬分叉時,兩條分叉後的鏈可能都會面臨跨鏈交易複製的脆弱性。
駭客能用重放攻擊做什麼?
重放攻擊可透過提交網路認定為有效的憑證,來取得對受保護網路的未授權存取。攻擊者也可能用它來複製金流交易,例如讓同一筆付款被觸發兩次。某些情況下,駭客會將不同加密訊息的片段組合起來,產生一個新的密文,這被稱為「剪下貼上(cut-and-paste)」攻擊。網路對這種被竄改訊息的回應,可能會暴露有用於進一步濫用的資訊。
儘管存在上述風險,重放攻擊也有明確限制。攻擊者無法在網路拒絕的情況下修改所送出的資料,因此他們通常只能重複過去的行為,而不是引入全新的行為。重放攻擊也相對可預測,這使得它比某些其他類型的網路威脅更容易被防禦。
為什麼重放攻擊在加密貨幣中很重要
區塊鏈帳本有時會經歷稱為「硬分叉」的協定變更。當發生硬分叉時,帳本會分裂成兩條鏈:一條運行原本的軟體,另一條運行更新後的版本。有些分叉是為了升級,而其他分叉可能會建立完全獨立的加密貨幣。知名的例子是比特幣現金(Bitcoin Cash),它在 2017 年 8 月從主比特幣區塊鏈分叉出去。
當區塊鏈分叉時,分叉後的兩條鏈會共享分裂前相同的交易歷史。在分叉之後,分叉前曾有效的一筆交易可能仍在兩條鏈上有效。這會形成重放攻擊的窗口:如果你在其中一條鏈上送出交易,攻擊者可能會在另一條鏈上重放它,在未經你允許的情況下,轉移等值的代幣。
在硬分叉發生之前就持有錢包(wallet)的使用者,最容易面臨此風險。分裂之後才加入任一條鏈的人通常不會受到影響,因為他們的錢包在共同的分叉前帳本上沒有交易歷史。
區塊鏈如何防禦重放攻擊
大多數主要的硬分叉都會包含針對重放攻擊的特定保護機制。這些機制可分為兩類。
強重放保護會自動在新鏈上的交易加入特殊標記,使其在原始鏈上變為無效,反之亦然。此保護在網路層級套用,且不需要使用者採取任何行動。比特幣現金(Bitcoin Cash)在從比特幣分叉的當下就實作了強重放保護。
自願啟用的重放保護要求使用者手動修改交易,以避免交易被重放到另一條鏈上。當硬分叉的目的更偏向「網路升級」而非完整分裂時,這種做法較常見:預期多數交易在兩條鏈上都應維持有效。
個別使用者也可以將自己的幣在帳本達到某個區塊高度(block height)之前鎖定,這會阻止這些代幣在鎖定到期之前被納入重放攻擊。並非所有錢包都支援此功能。
針對重放攻擊的一般網路防禦
在區塊鏈之外,也有多種已被驗證的做法可以保護網路免受重放攻擊:
時間戳(Timestamps):交易包含時間元件;在一段短時間窗之後,若未在期限內完成就會被拒絕。
Nonce:唯一的、一次性的值會綁定到每個會話;因此,若使用過的 nonce 的重放訊息會被系統自動拒絕。
會話代幣(Session tokens):伺服器端的代幣,使用一次後會過期,確保被攔截到的代幣無法再次重複使用。
訊息驗證碼(Message authentication codes,MACs):加密標籤,用於將訊息綁定到特定的會話,使跨會話的重放(replay)無法成立。
這些方法的原理是:確保每一個有效的傳輸都會綁定到特定的情境,且該情境無法被重複使用。即使攻擊者攔截到一則合法訊息,將其在不同的會話或時間窗中重放,也會因被拒絕而失敗。
常見問題
什麼是重放攻擊?
重放攻擊是指:攔截到一筆有效的資料傳輸後,將其重新送到網路中,目的是騙過系統讓它再次處理該請求。這個攻擊之所以有效,是因為資料本身是真實的,沒有額外保護措施的情況下,標準的資安系統往往更難將其判定為惡意。
重放攻擊能用來偷取加密貨幣嗎?
理論上可以。在區塊鏈進行硬分叉(hard fork)之後,可能會出現:在一條鏈上處理的交易被重放到另一條鏈上,從而在未獲得寄件者授權的情況下,重複一筆代幣轉帳。實務上,現代硬分叉內建的強重放保護機制,通常能阻止大多數主要網路發生此情況。
強重放保護與「自願啟用」(opt-in)重放保護有什麼差別?
強重放保護是自動且在網路層級套用的。它會標記交易,使其只能在特定的一條鏈上有效。自願啟用的重放保護則要求使用者手動為交易加上標記,以防止跨鏈複製。由於強保護不依賴使用者操作,因此被認為更可靠。
在 2026 年,重放攻擊有多常見?
在已啟用強重放保護的網路中,針對區塊鏈的重放攻擊並不常見。不過,一般性的網路重放攻擊在驗證系統中仍可能是風險,特別是在會話管理沒有妥善落實的情況下。使用多因素驗證(MFA)並保持軟體更新,可降低此風險的暴露程度。
重放攻擊和中間人攻擊(man-in-the-middle)是一樣的嗎?
兩者有重疊之處,但並不相同。中間人攻擊是指攻擊者在即時通訊過程中攔截,並可能修改通訊內容。重放攻擊則是特別指:在不一定改變內容的情況下,重新送出先前攔截到的合法訊息。兩者都利用網路通訊,但機制與目標可能不同。
結語
重放攻擊確實是一項資安風險,尤其在硬分叉期間與硬分叉之後,針對區塊鏈網路更是如此。由於它利用的是合法資料而非需要解密或偽造憑證,因此即使面對本來就很安全的系統也可能奏效。
在大多數主要硬分叉中如今已成標準的「強重放保護」,是網路層級最可靠的防禦手段。對個別使用者而言,了解某個區塊鏈已實作哪些保護措施,能幫助降低這類攻擊的風險曝露。
延伸閱讀
硬分叉與軟分叉:解釋
比特幣現金(Bitcoin Cash,BCH)是什麼?
什麼是 51% 攻擊?
什麼是釣魚(Phishing)?它如何運作?
賽博(Sybil)攻擊解析
聲明:此內容僅以「現狀」提供給您作為一般資訊與教育用途,並不包含任何形式的聲明或保證。不得被理解為財務、法律或其他專業建議,也不旨在推薦購買任何特定產品或服務。您應向合適的專業顧問尋求自己的建議。若內容由第三方貢獻者提供,請注意其中所表達的觀點屬於該第三方貢獻者,並不必然反映幣安學院(Binance Academy)的觀點。數位資產價格可能波動。您的投資價值可能上升或下跌,且您可能無法取回所投資的金額。您需自行承擔您的投資決策責任,幣安學院不對您可能遭受的任何損失負責。欲了解更多資訊,請參閱我們的使用條款(Terms of Use)、風險警示(Risk Warning)以及幣安學院條款(Binance Academy Terms)。
