重放攻擊(英語:replay attack,或稱為回放攻擊)是一種惡意或欺詐的重複或延遲有效數據的網絡攻擊形式。 這可以由發起者或由攔截數據並重新傳輸數據的對手英語Adversary (cryptography)來執行。這是「中間人攻擊」的一個較低階別版本。

這種攻擊的另一種描述是: 「從不同上下文將訊息重播到安全協定的預期(或原始和預期)上下文,從而欺騙其他參與者,致使他們誤以為已經成功完成了協定執行。」[1]

重放攻擊工作原理

編輯
 
重播攻擊的範例圖。Alice(A)將她的雜湊密碼傳送給Bob(B)。Eve(E)嗅探並重新播放雜湊。

假設Alice 想向Bob 證明自己的身份。 Bob 要求她的密碼作為身份證明,愛麗絲應盡全力提供(可能是在經過諸如雜湊函數的轉換之後); 與此同時,Eve竊聽了對話並保留了密碼(或雜湊)。交換結束後,Eve(冒充Alice)連接到Bob。當被要求提供身份證明時,Eve傳送從Bob接受的最後一個對談中讀取的Alice的密碼(或雜湊),從而授予Eve訪問權限。[1]

預防與對策

編輯

所有重放攻擊的一般對策

編輯

通過使用對談ID和組件編號標記每個加密的組件,可以防止重放攻擊。之所以可行,是因為為程式的每次執行建立了唯一的隨機對談ID,因此先前的結果更加難以複製。 由於每個對談的ID不同,攻擊者無法執行重放。[1]

關於交談識別碼符

編輯

交談識別碼符(也稱為對談ID、對談權杖)是一種可用來幫助避免重放攻擊的機制。 生成對談ID的方式如下。

  1. Bob將一次性權杖傳送給Alice,Alice使用該權杖來轉換密碼並將結果傳送給Bob。例如,她將使用權杖來計算對談權杖的雜湊,並將其附加到要使用的密碼上。
  2. Bob使用對談權杖執行相同的計算。
  3. 若且唯若Alice和Bob的值都匹配時,登入成功。
  4. 現在,假設攻擊者Eve已經擷取了該值,並試圖在另一個對談中使用它。Bob將傳送一個不同的對談權杖,當Eve用她擷取的值進行答覆時,它將不同於Bob的計算,因此他將知道這不是Alice。

對談權杖應通過隨機函數選擇(通常使用偽隨機函數)。 否則,Eve可能可以冒充Bob,提出一些預測的未來權杖,並說服Alice在她的轉換中使用該權杖。 然後,Eve可以在稍後的時間重播她的答覆(當Bob實際上提供了先前預測的權杖時),Bob將接受身份驗證

一次性密碼

編輯

一次性密碼與對談權杖類似,因為一次性密碼在使用後(或在很短的時間內)就會過期。 除對談外,它們還可用於驗證單個交易,也可以在身份驗證過程中使用,以幫助在彼此通訊的兩方之間建立信任。

亂數和MAC

編輯

Bob還可以傳送亂數,但訊息鑑別碼(MAC)應隨其後傳送,Alice應檢查該訊息。

時間戳

編輯

添加時間戳是防止重放攻擊的另一種方法。 同步應使用安全協定來實現。例如,Bob 定期廣播他的時間和MAC。當Alice要向Bob傳送訊息時,她會在訊息中包含最佳的估計時間,這也是經過身份驗證的。 Bob僅接受時間戳在合理範圍內的訊息。這種方案的優點是Bob不需要生成(偽)亂數,而Alice不需要向Bob詢問亂數。在單向或接近單向的網絡中,這可能是一個優勢。但是,如果重放攻擊執行得足夠快(即在該「合理」範圍內),則可以成功。

特定情況下的對策

編輯

Kerberos協定防護

編輯

Kerberos身份驗證協定包括一些對策。在重放攻擊的經典情況下,對手擷取一條訊息,然後在稍後的日期重放該訊息以產生效果。例如,如果一個銀行計劃容易受到這種攻擊,那麼導致資金轉移的資訊可以一遍又一遍地重放,以轉移比最初預期更多的資金。 但是,在Microsoft Windows Active Directory中實現的Kerberos協定包括使用涉及時間戳的方案來嚴重限制重放攻擊的有效性。 超過「生存時間(TTL)」的訊息將被視為舊訊息並被丟棄。[2]

已經提出了改進措施,包括使用三重密碼方案。這三個密碼與身份驗證伺服器,票證授予伺服器和TGS一起使用。這些伺服器使用密碼在不同伺服器之間使用秘密金鑰加密訊息。這三個金鑰提供的加密有助於防止重放攻擊。[3]

Ad hoc網絡中的安全路由

編輯

無線隨意網絡也容易受到重放攻擊。在這種情況下,可以通過擴充AODV協定來改進身份驗證系統並使其更強大。這種改善Ad Hoc網絡安全性的方法以少量開銷增加了網絡的安全性。[4] 如果存在大量開銷英語Overhead (computing),則網絡將面臨變慢的風險,並且其效能將下降。因此,通過保持相對較低的開銷,網絡可以保持更好的效能,同時仍可以提高安全性。

質詢握手身份驗證協定

編輯

當使用密碼驗證協定(PAP)驗證其身份時,使用對等協定(PPP)的客戶端進行的驗證和登入很容易受到重放攻擊,因為進行身份驗證的客戶端會「明文」傳送其用戶名和密碼, 然後,認證伺服器響應此請求傳送其確認;因此,攔截客戶端可以自由地讀取傳輸的數據,並將客戶端和伺服器中的每一個模擬為彼此,以及隨後可以儲存客戶端憑據以供稍後模擬到伺服器。 詢問握手認證協定(CHAP)通過使用來自身份驗證器的「質詢」訊息代替客戶端使用基於共用機密(例如,客戶端密碼)的雜湊計算值來響應,從而在身份驗證階段防止此類重播攻擊 ),身份驗證者將其與自己對挑戰和共用機密的計算進行比較,以對客戶端進行身份驗證。通過依靠自身尚未傳送的共用機密以及其他功能(例如,身份驗證器控制的挑戰的重複以及更改識別碼和挑戰值),CHAP提供了針對重放攻擊的有限保護。[5]

重放攻擊敏感性的真實範例

編輯

有幾個真實的例子,說明如何使用重放攻擊以及如何檢測和修復問題以防止進一步的攻擊。

車輛遠端無鑰匙進入系統

編輯

為了方便用戶,道路上的許多車輛使用遠端無鑰匙系統或金鑰卡。 現代系統已針對簡單的重放攻擊進行了加固,但容易受到緩衝重放攻擊的影響。 通過在目標車輛的範圍內放置可以接收和傳送無線電波的裝置來執行此攻擊。 傳送器將嘗試阻塞傳送給它的任何RF車輛解鎖訊號,同時將其放置在緩衝區中以備後用。 在進一步嘗試解鎖車輛時,發射器將阻塞新訊號,將其快取並播放舊訊號,從而建立一個捲動緩衝,該緩衝比車輛領先一步。 稍後,攻擊者可能會使用此緩衝的代碼來解鎖車輛。[6][7]

文字相關的說話人驗證

編輯

各種裝置使用說話者辨識來驗證說話者的身份。 在依賴於文字的系統中,攻擊者可以記錄系統正確驗證的目標個人的語音,然後再次播放錄音以供系統驗證。 使用頻譜點陣圖從已驗證用戶的儲存語音中設計了一種對策。 在這種情況下,重放的語音具有不同的模式,然後將被系統拒絕。[8]

相關條目

編輯

參考文獻

編輯
  1. ^ 1.0 1.1 1.2 Malladi, Sreekanth. 关于防止对安全协议的重放攻击(英文). oai.dtic.mil. [2020-06-13]. (原始內容存檔於2016-12-20). 
  2. ^ Olsen, Geir. Kerberos身份验证101:了解Kerberos安全协议的要点(英文). Redmond Magazine. 1 February 2012 [2017-06-13]. (原始內容存檔於2019-03-31) (英語). 
  3. ^ Dua, Gagan. 使用三重密码在Kerberos身份验证协议中重播攻击防护(英文). International Journal of Computer Networks & Communications. 2013, 5 (2): 59–70. arXiv:1304.3550 . doi:10.5121/ijcnc.2013.5205. 
  4. ^ Zhen, Jane. Preventing Replay Attacks for Secure Routing in Ad Hoc Networks. 防止Ad Hoc网络中安全路由的重放攻击(英文). Lecture Notes in Computer Science 2865. 2003: 140–150. ISBN 978-3-540-20260-8. doi:10.1007/978-3-540-39611-6_13. 
  5. ^ Simpson, William Allen. RFC 1994 – PPP质询握手身份验证协议(CHAP)(英文). tools.ietf.org. [2018-09-12]. (原始內容存檔於2021-03-08) (英語). 
  6. ^ Beek, S. van de; Leferink, F. 远程无钥匙进入系统针对脉冲电磁干扰的脆弱性和可能的改进(英文). IEEE Transactions on Electromagnetic Compatibility. 1 August 2016, 58 (4): 1259–1265. doi:10.1109/TEMC.2016.2570303. 
  7. ^ Francillon, Aurelien. 现代汽车被动无钥匙进入和启动系统的攻击(英文) (PDF). eprint.iacr.org/. [8 December 2016]. (原始內容存檔 (PDF)於2019-04-12). 
  8. ^ Wu, Z.; Gao, S.; Cling, E. S.; Li, H. 信号和信息处理协会年度峰会和会议(APSIPA),2014年亚太地区(英文). 1 December 2014: 1–5. ISBN 978-6-1636-1823-8. doi:10.1109/APSIPA.2014.7041636.