【網絡安全】重放攻擊(Replay Attacks)

重放攻擊(Replay Attacks)又稱重播攻擊、回放攻擊,是指攻擊者發送一個目的主機已接收過的包,來達到欺騙系統的目的,主要用於身份認證過程,破壞認證的正確性。重放攻擊可以由發起者,也可以由攔截並重發該數據的敵方進行。攻擊者利用網絡監聽或者其他方式盜取認證憑據,之後再把它重新發給認證服務器。重放攻擊在任何網絡通過程中都可能發生,是計算機世界黑客常用的攻擊方式之一。

原理

重放攻擊的基本原理就是把以前竊聽到的數據原封不動地重新發送給接收方。很多時候,網絡上傳輸的數據是加密過的,此時竊聽者無法得到數據的準確意義。但如果他知道這些數據的作用,就可以在不知道數據內容的情況下通過再次發送這些數據達到愚弄接收端的目的。例如,有的系統會將鑑別信息進行簡單加密後進行傳輸,這時攻擊者雖然無法竊聽密碼,但他們卻可以首先截取加密後的口令然後將其重放,從而利用這種方式進行有效的攻擊。再比如,假設網上存款系統中,一條消息表示用戶支取了一筆存款,攻擊者完全可以多次發送這條消息而偷竊存款。

防禦方案
  1. 加隨機數。該方法優點是認證雙方不需要時間同步,雙方記住使用過的隨機數,如發現報文中有以前使用過的隨機數,就認爲是重放攻擊。缺點是需要額外保存使用過的隨機數,若記錄的時間段較長,則保存和查詢的開銷較大。
  2. 加時間戳。該方法優點是不用額外保存其他信息。缺點是認證雙方需要準確的時間同步,同步越好,受攻擊的可能性就越小。但當系統很龐大,跨越的區域較廣時,要做到精確的時間同步並不是很容易。
  3. 加流水號。就是雙方在報文中添加一個逐步遞增的整數,只要接收到一個不連續的流水號報文(太大或太小),就認定有重放威脅。該方法優點是不需要時間同步,保存的信息量比隨機數方式小。缺點是一旦攻擊者對報文解密成功,就可以獲得流水號,從而每次將流水號遞增欺騙認證端。

在實際中,常將方法(1)和方法(2)組合使用,這樣就只需保存某個很短時間段內的所有隨機數,而且時間戳的同步也不需要太精確。

對付重放攻擊除了使用本以上方法外,還可以使用挑戰一應答機制和一次性口令機制,而且似乎後面兩種方法在實際中使用得更廣泛。

作用

重放攻擊的主要作用如下:

  • 巧妙實現了信息注入,不需要了解、分析通信協議;
  • 實現了流量攻擊,即通過額外增加的數據流影響正常數據流的傳輸時延,耗用通信鏈路的帶寬;
  • 實現了可能的差錯攻擊,一般的鏈路通信協議都實現流量控制功能,通過數據流重放,很可能會干擾正常的流量控制窗口和數據幀的發送(應答)序列號,導致數據重傳或誤收。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章