怎麼防止重放攻擊?

2021-01-09 雄飛小靜龍

第一種方法:

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

首先要明確一個事情,重放攻擊是二次請求,黑客通過抓包獲取到了請求的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,若超高該數量則清空。

相關焦點

  • 什麼是重放攻擊Replay attack
    打開APP 什麼是重放攻擊Replay attack 發表於 2019-03-21 10:45:25 重放(Replay)也稱為重播
  • 區塊鏈:重放攻擊是什麼?
    如果比特幣真的發生分叉,作為普通用戶,最大的風險就是重放攻擊。重放攻擊是什麼呢?如果比特幣分裂為一種或多種比特幣,如BTC1/BTC2/BTC3等,每個比特幣帳戶內將根據他的比特幣餘額,同時存在對應數量的所有分叉幣。
  • 如何理解區塊鏈網絡中的重放攻擊
    打開APP 如何理解區塊鏈網絡中的重放攻擊 發表於 2019-07-01 14:26:55 傳統計算機術語中,重放攻擊(Replay
  • 重放攻擊防禦方案有哪些?成都奧耶爾酒坊
    該方法優點是認證雙方不需要時間同步,雙方記住使用過的隨機數,如發現報文中有以前使用過的隨機數,就認為是重放攻擊。缺點是需要額外保存使用過的隨機數,若記錄的時間段較長,則保存和查詢的開銷較大。(2)加時間戳。該方法優點是不用額外保存其他信息。缺點是認證雙方需要準確的時間同步,同步越好,受攻擊的可能性就越小。但當系統很龐大,跨越的區域較廣時,要做到精確的時間同步並不是很容易。
  • 一文看懂比特幣重放攻擊 快來領取你的防範秘籍
    最重要的是,你得知道你有兩種幣,然後是你要注意別被一種叫「重放攻擊」的操作讓你的其中一幣莫名其妙發給別人了。首先講明白,重放攻擊其實根本就不是攻擊。目前幣圈流傳的各種關於重放攻擊的言論有點過於危言聳聽了。重放攻擊,這裡的「攻擊」根本就不是別人對你發起的某種侵略或偷盜行為。而是因為比特幣區塊鏈分裂後的兩個分支鏈,都有相同的地址、私鑰和交易格式。
  • 明日之後怎麼防止馬兒逃跑 防止馬兒逃跑方法
    明日之後手遊裡,新地圖增加了馬匹,我們可以通過馴服馬匹後讓它作為代步工具,玩家們都很好奇,那麼明日之後怎麼防止馬兒逃跑呢,接下來小編給大家帶來防止馬兒逃跑方法。 明日之後怎麼防止馬兒逃跑 成功馴服一匹馬 當然是值得高興的 但是這匹馬並不會永久地跟隨你,一不小心馬兒也會跑掉的哦 1、另外界面右側有快速「下馬」
  • 哥布林殺手:省經費重放這一幕?現在開始心疼奶牛妹,膝枕真棒
    哥布林殺手:省經費重放這一幕?現在開始心疼奶牛妹,真的好姑娘。確實,挺心疼的。《哥布林殺手》中始終不忘cp感的渲染,這一集明顯稍微又有點偏向於奶牛妹。開篇就重放了第二集開頭這一幕,不過這次是哥布林殺手的視角,而不是從奶牛妹的視角。
  • 張家口一景區回應麋鹿被割角:防止危險性攻擊,鹿角集中管理
    張家口一景區回應麋鹿被割角:防止危險性攻擊,鹿角集中管理 張香梅/北京頭條客戶端 2019-07-10 15:25
  • 如何防止被狗咬?五招教你輕鬆躲過惡犬的攻擊,趕緊收藏!
    在知道如何防止被狗咬之前,我們要了解狗的習性。狗是由於狼馴化而來的,狗雖然被馴化了幾萬年,但是它們繼承了部分狼的天性,比如領地意識。對闖入領地的人,膽大兇猛防狗會對你進行防禦攻擊,這個時候大家千萬不要去摸它,或者企圖逗它,這樣會讓狗可能咬你。狗在咬人之前,我們是可以通過它的眼神和表情判斷出來的。大多數正常的狗,在它們咬人之前是會對人發出警告。當狗咬人之前,會經歷三個階段。
  • 怎麼防止打呼嚕?
    打呼嚕一般是由於肥胖、過度疲勞或者過量飲酒等原因引起,打呼嚕會影響他人睡眠,怎麼預防打呼嚕呢?要預防打呼嚕,首先最重要的是要加強鍛鍊,身體健康才是治本之策。所以,日常堅持鍛鍊身體能有效預防打呼嚕。控制菸酒既能有效防止打呼嚕,更有利於身體健康。經常打呼嚕的人,一般來說伴有血壓偏高等症狀,所以要注意測量血壓,適當服用降壓藥來緩解症狀。睡前儘量不使用安眠藥等,這些藥物有抑制呼吸神經的作用,會加重打呼嚕等症狀。對於睡眠不好的人,要學會採用其他比較科學的方法來調節睡眠質量。睡眠的時候儘量保持側臥姿勢,保持氣道順暢,可緩解打呼嚕的症狀。
  • 支付寶螞蟻莊園怎麼防止別人偷吃飼料 螞蟻莊園防止偷吃方法
    支付寶螞蟻莊園是一款不錯的支付寶的內置小遊戲,很多朋友都被偷吃的好友搞得很煩,這裡小編來教教大家螞蟻莊園怎麼防止偷吃吧。  螞蟻莊園怎麼防止偷吃  1、如果進入螞蟻莊園看見有好友的小雞在偷吃,那麼我們肯定是進入遊戲裡面把小雞趕走;  2、因為經常都有小雞偷吃,所以我們就需要經常進入遊戲裡面
  • 泰拉瑞亞克蘇魯之腦怎麼打 攻擊克蘇魯之腦方法
    大家在尋找這一個神秘生物的攻擊方法。下面我們就為大家帶來泰拉瑞亞克蘇魯之腦怎麼打的詳細方法,幫助大家更加輕鬆的攻擊克蘇魯之腦。   泰拉瑞亞克蘇魯之腦怎麼打(應對策略):   1.在猩紅之地中間的空洞,建立多層平臺,周圍圍上物塊防止煩人的蜘蛛怪幹擾,第一階段使用穿透群攻武器,比如矛,惡魔之心,或手劍,小丑箭和手雷效果也相當不錯。
  • 支付寶螞蟻莊園怎麼防止別人偷吃飼料
    支付寶螞蟻莊園怎麼防止別人偷吃飼料時間:2018-02-08 22:29   來源:今日頭條   責任編輯:毛青青 川北在線核心提示:原標題:支付寶螞蟻莊園怎麼防止別人偷吃飼料 支付寶螞蟻莊園是一款不錯的支付寶的內置小遊戲,很多朋友都被偷吃的好友搞得很煩,這裡小編來教教大家螞蟻莊園怎麼防止偷吃吧。
  • 《生存大世界》怎么喝水 怎麼防止渴死攻略
    導 讀 生存大世界中我們需要時刻注意自己的水量值,當水量值降低很多後,需要通過喝水來補充,那麼生存大世界怎么喝水
  • 怎麼防止黃鼠狼吃雞?老農:雞場養上它,黃鼠狼看到繞著走
    今天和大家分享的是:怎麼防止黃鼠狼吃雞?老農:雞場有了它,黃鼠狼看到繞著走俗話說的好,黃鼠狼給雞拜年沒安好心,黃鼠狼是一種雜食性動物,除了野外的老鼠,兔子為食以外,還會吃一些青蛙,小鳥,以及昆蟲等,偶爾也會潛入我們農村的雞棚偷食雞蛋,小雞,並且有嗜血性,不光吃還喜歡咬,因其極其狡猾,反應迅速,警覺性很高,嗅覺十分的靈敏,很難捕捉到,所以農村養雞的對黃鼠狼這種動物可以說是恨之入骨!
  • 怎麼隱藏wifi防止別人搜索到wifi
    原來wifi無線路由可以隱藏起來的,在朋友家本來一直可以連接的,今天發現連不上了,一問才知道這是為了防止別人搜索到wifi,那麼我們怎麼隱藏wifi呢首先我們需要登陸到wifi無線路由裡去設置一下,那麼我們根據路由器說明書上的地址添加到瀏覽器的地址欄裡在彈出的框裡需要我們輸入該登陸該路由器的帳號和密碼
  • 什麼紗窗最擋灰塵 怎麼防止從窗戶進灰塵
    怎麼防止從窗戶進灰塵?接下來小編就給大家介紹一下。什麼紗窗最擋灰塵防塵紗窗最擋灰塵。面對日益加重的空氣汙染,防塵紗窗變得越來越重要,尤其是對於北方的霧霾天來說。防塵紗窗能防止塵土進入室內,維持空氣的清潔。防塵紗窗不僅美觀,透光性和封閉性很好,具有外觀新穎、防塵效果佳等優點。好看的防塵紗窗不僅能美化居室,還能與整體裝修融為一體,溫馨十足。
  • 花盆的土壤板結要怎麼處理?如何防止?
    花盆的土壤板結要怎麼處理?如何防止?如何防止盆土板結呢? 自來水慎用(鮮的自來水中含有一定量的漂臼粉及氯氣,這些物質僅會使盆土板結,還會導致盆士的鹽鹼化)常鬆土(大雨後,在盆地表面幹時就要行松士,然後再澆水)少用化肥,多用經腐熟和消毒處理的有機肥 鬆土很重要,澆水需仔細!
  • 常見的網絡攻擊類型
    然而,隨著越來越流行,風險增加,並且像其他協議一樣,HTTP容易受到攻擊。 World Data描述了源自HTTP伺服器的常見DDoS攻擊。首先,HTTP在TCP上運行。因此,Web伺服器可能會面臨許多與TCP相關的攻擊。規劃HTTP服務保護時,請務必記住目標區域比HTTP協議更寬。今天的DDoS攻擊使用多個向量來導致拒絕服務。你必須能夠保護所有這些職業以防止它。
  • 怎麼才能有效防止跟賣?被跟賣了怎麼趕走跟賣?
    怎麼才能有效防止跟賣?被跟賣了怎麼趕走跟賣?