怎麼防止重放攻擊?

2020-12-16 雄飛小靜龍

第一種方法:

重放攻擊是計算機世界黑客常用的攻擊方式之一,所謂重放攻擊就是攻擊者發送一個目的主機已接收過的包,來達到欺騙系統的目的,主要用於身份認證過程。

首先要明確一個事情,重放攻擊是二次請求,黑客通過抓包獲取到了請求的HTTP報文,然後黑客自己編寫了一個類似的HTTP請求,發送給伺服器。也就是說伺服器處理了兩個請求,先處理了正常的HTTP請求,然後又處理了黑客發送的篡改過的HTTP請求。每次HTTP請求,都需要加上timestamp參數,然後把timestamp和其他參數一起進行數字籤名。因為一次正常的HTTP請求,從發出到達伺服器一般都不會超過60s,所以伺服器收到HTTP請求之後,首先判斷時間戳參數與當前時間相比較,是否超過了60s,如果超過了則認為是非法的請求。假如黑客通過抓包得到了我們前臺的請求url:網址?uid=110&stime=1520862753&sign=80b886d71449cb33355d017893720666 其中$sign=md5($uid.$token.$stime); // 伺服器通過uid從資料庫中可讀出token後端開始解析,一般情況下,黑客從抓包重放請求耗時遠遠超過了60s,所以此時請求中的stime參數已經失效了。 如果黑客修改stime參數為當前的時間戳,則sign參數對應的數字籤名就會失效,因為黑客不知道token值,沒有辦法生成新的數字籤名。

1、先判斷stime 與當前伺服器時間差值是否大於60s如果大於那麼可以拒絕響應該請求

2、驗證$sign 根據約定的規則判斷後端生成的sign與前臺傳過來的sign是否一致

3、如果驗證通過則根據uid查詢用戶信息

但這種方式的漏洞也是存在的,如果在60s之內進行重放攻擊,那就沒辦法了,所以這種方式不能完全保證請求僅一次有效。

第二種方法:

我們在timestamp方案的基礎上,加上隨機字符串nonce參數,因為timstamp參數對於超過60s的請求,都認為非法請求,所以我們只需要在服務端存儲60s的nonce參數的「集合」即可。假如黑客通過抓包得到了我們的請求url:網址?uid=110&stime=1520862753&sign=80b886d71449cb33355d017893720666&nonce=HNJDHJNHHJ323其中$sign=md5($uid.$token.$stime.$nonce); // 伺服器通過uid從資料庫中可讀出token如果在60s內,重放該HTTP請求,因為nonce參數已經在首次請求的時候被記錄在伺服器的nonce參數「集合」中,所以會被判斷為非法請求。超過60s之後,stime參數就會失效,此時因為黑客不清楚token的值,所以無法重新生成籤名。

綜上,我們認為一次正常的HTTP請求發送不會超過60s,在60s之內的重放攻擊可以由nonce參數保證,超過60s的重放攻擊可以由stime參數保證。因為nonce參數只會在60s之內起作用,所以只需要保存60s之內的nonce參數即可我們並不一定要每個60s去清理該nonce參數的集合,只需要在新的nonce到來時,判斷nonce集合最後一次修改時間,超過60s的話,就清空該集合,存放新的nonce參數集合。其實nonce參數集合可以存放的時間更久一些,但是最少是60s。隨機數集合可以根據業務場景採用定期清理或根據大小自動清理的方案,例如該接口每秒的請求數最高為1000,則60s內的請求數量最多為1500*60=90000,則我們在每次請求後檢查集合大小是否超過90000,若超高該數量則清空。

相關焦點

  • IBM提出了防止重放攻擊的專利 專利數量與阿里不相上下
    該專利的標題是在一個被許可和保護隱私的區塊鏈網絡中有效地抵禦重放攻擊。這項安全技術即可以維護有效用戶權限和隱私,同時又能抵禦重放攻擊。一般意義上說,重放攻擊是惡意或欺騙性地重複或延遲有效的數據傳輸。IBM在介紹專利背景時解釋了這種區塊鏈重放攻擊的危害。
  • 如何利用重放攻擊一夜暴富
    最近在英國埃塞克斯郡的艾平森林區,一位Model S車主被偷車賊利用重放攻擊盜取愛車,這個看上去像是動畫片裡面主角大招的名字,其實是電子安全領域破解身份識別程序非常基礎的一項技術。重放攻擊的基本原理就是把竊聽到的數據原封不動地重新發送給接收方。
  • 什麼是重放攻擊Replay attack
    重放攻擊主要是在有區塊鏈發生分叉之後,因為分叉後之兩方都共同還保有分叉之前的數據,因此分叉之後在兩邊都可以做一樣的交易。例如有一間蛋糕店A但是因為理念不同而分家成蛋糕店B和蛋糕店C,分家之後兩家共同擁有之前客戶資料與交易信息且用的系統還是一樣的包含驗證付款信息系統,接著各自經營客戶與交易並不會互相交換信息。
  • 如何理解區塊鏈網絡中的重放攻擊
    打開APP 如何理解區塊鏈網絡中的重放攻擊 發表於 2019-07-01 14:26:55 傳統計算機術語中,重放攻擊(Replay Attacks)又稱重播攻擊、回放攻擊,是指攻擊者發送一個目的主機已接收過的數據包,來達到欺騙系統的目的。
  • 注意防範重放攻擊!PoC2+硬分叉升級的風險提示
    什麼是重放攻擊?重放攻擊(Replay Attack)是計算機網絡中常見而古老的攻擊手段。在區塊鏈中,重放攻擊特指在硬分叉中,攻擊者將一條鏈上的交易拿到另一條鏈上「重放(Replay,即重新播放之意)」,從而獲取不正當利益的攻擊手段。
  • 使用DNSCrypt 解決DNS攻擊問題
    DNSCrypt是OpenDNS發布的加密DNS工具,可加密DNS流量,阻止常見的DNS攻擊,如重放攻擊、觀察攻擊、時序攻擊、中間人攻擊和解析偽造攻擊。DNSCrypt支持Mac OS和Windows,是防止DNS汙染的絕佳工具。
  • 記憶介導的決策受快速重放機制的支持
    記憶介導的決策受快速重放機制的支持 作者:小柯機器人 發布時間:2020/6/11 10:04:06 英國倫敦大學學院G. Elliott Wimmer研究團隊取得最新進展。
  • 新系統能讓你不頻繁暫停倒帶重放 安心做瑜伽
    新系統能讓你不頻繁暫停倒帶重放 安心做瑜伽2020-12-12 13:59出處/作者:cnBeta.COM整合編輯:佚名責任編輯:zhaoyongyu1然後,視頻會自動放慢速度,以防止視頻過快。  英國蘭開斯特大學的克里斯多福·克拉克博士(Christopher Clarke)表示:「對於某些人來說,保持步調可能是一件棘手的事情-尤其是對老年人或行動不便的人學習新事物的時候。此外,不斷地讓遙控器暫停,倒帶和重放,可能會令人沮喪並破壞沉浸感。
  • Kali Linux Web滲透測試手冊(第二版) - 3.8 - 使用Burp Suite的重放功能
    尋找敏感文件和目錄3.2、使用ZAP尋找敏感文件和目錄3.3、使用Burp Suite查看和修改請求3.4、使用Burp Suite的Intruder模塊發現敏感目錄3.5、使用ZAP代理查看和修改請求3.6、使用ZAP的爬蟲功能3.7、使用burp爬取網站頁面3.8、使用Burp Suite的重放功能
  • 【永不消逝的電波(二)】HackRF入門:家用無線門鈴信號重放
    0x00 前言在
  • 針對口令的暴力破解攻擊方式
    在身份識別一文中,我們介紹了幾種常用的針對口令驗證的攻擊和防範技術。今天這篇著重講一下其中的暴力破解。暴力破解暴力破解的基本思想很樸素:通過不斷重試來猜測口令。不過現在的系統都有防止自動化登錄的機制,如驗證碼、多次輸入錯誤口令後用戶受限等;同時系統基本都是採用存儲和對比口令摘要的方式進行驗證。
  • Double spend attack雙花攻擊是什麼 | 金色百科
    雙花攻擊(double spend attack),在介紹51%攻擊的時候出現過這個詞語。光看中文名可能會因為漢語的多重含義而理解錯,但英文名就很明顯的表達出意思了。雙花攻擊就是一筆錢花了兩次,也可以稱之為雙重支付攻擊。
  • 今明兩天中考開考 英語科目遲到聽力題不重放
    在9:15之前遲到者,進入英語備用考場考試,但之前的聽力題不重放。  中考英語科目考試由聽力和筆試兩部分組成,兩部分的試題連續進行。考生在規定的時間先完成聽力,後筆試。英語考試時間為周日9:00至10:45,其中9:00至9:05為試音時間。英語考試時,8:30考生開始進入考場;9:05聽力考試正式開始。9:00-9:15到達考點的考生將進入備用考場考試。但之前聽力試題不重放。
  • 谷歌發布2019 年政府黑客攻擊報告 零日漏洞攻擊目標更為明顯
    8 個月前,微軟曾表示,在過去 12 個月裡,它曾警告過 1 萬名客戶受到國家支持的攻擊。 Google 特地舉了俄羅斯黑客組織 Sandworm 的例子。Sandworm 是一個為俄羅斯聯邦工作的攻擊組織,被認為發動了至今影響最嚴重的攻擊,包括攻擊烏克蘭的電力設施,導致了兩次嚴重斷電事故。
  • Hardcore|以太坊中智能合約攻擊和漏洞百科全書
    作為一種新興的、實驗性的技術,智能合約當然也受到了相當多的攻擊。為了防止進一步的攻擊,我列出了幾乎所有已知的攻擊和漏洞的列表。儘管此列表可能包含已知的攻擊,但新的漏洞仍在定期發現,因此,這應該只是您作為工程師研究智能合約安全性的開始。攻擊在本節中,我們將介紹可用於利用智能合約漏洞的已知攻擊。
  • 谷歌發布 2019 年政府黑客攻擊報告:近 4 萬次警告,黑客攻擊對象更...
    8 個月前,微軟曾表示,在過去 12 個月裡,它曾警告過 1 萬名客戶受到國家支持的攻擊。Google 特地舉了俄羅斯黑客組織 Sandworm 的例子。Sandworm 是一個為俄羅斯聯邦工作的攻擊組織,被認為發動了至今影響最嚴重的攻擊,包括攻擊烏克蘭的電力設施,導致了兩次嚴重斷電事故。
  • 如何防止家庭安全攝像頭被黑客攻擊
    黑客如何發生安全攝像頭易受攻擊的一種方法是通過一種稱為「憑證填充」的技術。黑客使用來自其他數據洩露的用戶名和密碼(其他黑客在線共享)來獲取帳戶訪問權限。大數據洩露的組合,例如Equifax和Target的消息,以及消費者重新使用相同的密碼--52%的網際網路用戶重複使用或修改相同的密碼 - 使工作變得簡單。
  • Hardcore | 以太坊中智能合約攻擊和漏洞百科全書
    作為一種新興的、實驗性的技術,智能合約當然也受到了相當多的攻擊。為了防止進一步的攻擊,我列出了幾乎所有已知的攻擊和漏洞的列表。儘管此列表可能包含已知的攻擊,但新的漏洞仍在定期發現,因此,這應該只是您作為工程師研究智能合約安全性的開始。攻擊在本節中,我們將介紹可用於利用智能合約漏洞的已知攻擊。