国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

API設(shè)計(jì)中防重放攻擊

vvpvvp / 3276人閱讀

摘要:數(shù)據(jù)加密是否可以防止重放攻擊否,加密可以有效防止明文數(shù)據(jù)被監(jiān)聽,但是卻防止不了重放攻擊。防重放機(jī)制我們在設(shè)計(jì)接口的時(shí)候,最怕一個接口被用戶截取用于重放攻擊。這樣,這個請求即使被截取了,你也只能在內(nèi)進(jìn)行重放攻擊。

HTTPS數(shù)據(jù)加密是否可以防止重放攻擊?

否,加密可以有效防止明文數(shù)據(jù)被監(jiān)聽,但是卻防止不了重放攻擊。

防重放機(jī)制

我們在設(shè)計(jì)接口的時(shí)候,最怕一個接口被用戶截取用于重放攻擊。重放攻擊是什么呢?就是把你的請求原封不動地再發(fā)送一次,兩次...n次,一般正常的請求都會通過驗(yàn)證進(jìn)入到正常邏輯中,如果這個正常邏輯是插入數(shù)據(jù)庫操作,那么一旦插入數(shù)據(jù)庫的語句寫的不好,就有可能出現(xiàn)多條重復(fù)的數(shù)據(jù)。一旦是比較慢的查詢操作,就可能導(dǎo)致數(shù)據(jù)庫堵住等情況。
付款接口,或者購買接口會造成損失
需要采用防重放的機(jī)制來做請求驗(yàn)證。

timestamp+nonce

我們常用的防止重放的機(jī)制是使用timestamp和nonce來做的重放機(jī)制。
timestamp用來表示請求的當(dāng)前時(shí)間戳,這個時(shí)間戳當(dāng)然要和服務(wù)器時(shí)間戳進(jìn)行校正過的。我們預(yù)期正常請求帶的timestamp參數(shù)會是不同的(預(yù)期是正常的人每秒至多只會做一個操作)。每個請求帶的時(shí)間戳不能和當(dāng)前時(shí)間超過一定規(guī)定的時(shí)間。比如60s。這樣,這個請求即使被截取了,你也只能在60s內(nèi)進(jìn)行重放攻擊。過期失效。
但是這樣也是不夠的,還有給攻擊者60s的時(shí)間。所以我們就需要使用一個nonce,隨機(jī)數(shù)。
nonce是由客戶端根據(jù)足夠隨機(jī)的情況生成的,比如 md5(timestamp+rand(0, 1000)); 也可以使用UUID, 它就有一個要求,正常情況下,在短時(shí)間內(nèi)(比如60s)連續(xù)生成兩個相同nonce的情況幾乎為0。

服務(wù)端

服務(wù)端第一次在接收到這個nonce的時(shí)候做下面行為:?1 去redis中查找是否有key為nonce:{nonce}的string?2 如果沒有,則創(chuàng)建這個key,把這個key失效的時(shí)間和驗(yàn)證timestamp失效的時(shí)間一致,比如是60s。?3 如果有,說明這個key在60s內(nèi)已經(jīng)被使用了,那么這個請求就可以判斷為重放請求。
示例
那么比如,下面這個請求:
http://a.com?uid=123×tam...
這個請求中的uid是我們真正需要傳遞的有意義的參數(shù)
timestamp,nonce,sign都是為了簽名和防重放使用。
timestamp是發(fā)送接口的時(shí)間,nonce是隨機(jī)串,sign是對uid,timestamp,nonce(對于一些rest風(fēng)格的api,我建議也把url放入sign簽名)。簽名的方法可以是md5({秘要}key1=val1&key2=val2&key3=val3...)
服務(wù)端接到這個請求:?1 先驗(yàn)證sign簽名是否合理,證明請求參數(shù)沒有被中途篡改?2 再驗(yàn)證timestamp是否過期,證明請求是在最近60s被發(fā)出的?3 最后驗(yàn)證nonce是否已經(jīng)有了,證明這個請求不是60s內(nèi)的重放請求

web層面也可以采用在頁面中加入token方式,手機(jī)驗(yàn)證碼,滑動驗(yàn)證碼等方式來防止攻擊

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69337.html

相關(guān)文章

  • ABC和BSV之爭-吃瓜群眾的你看懂了嗎

    摘要:此舉遭到團(tuán)隊(duì)和比特大陸等方面的反對,并對版本提出反對。分叉事件后交易所則宣布,由于的分叉已經(jīng)完成,原已不存在。故已將原有的兌換為和,兌換比例為今日,先后開放和提取和相關(guān)交易對交易。目前,的重放保護(hù)升級擬定計(jì)劃在年月日。 ??2018年8月,Bitcoin ABC提出了一種新的共識變更,以提高BCH節(jié)點(diǎn)的速度,并引入外鏈。該變更將在2018年11月15日上線。但Craig Wright拒...

    wemallshop 評論0 收藏0
  • Android 應(yīng)用安全開發(fā)之淺談加密算法的坑

    摘要:還有很多開發(fā)者沒有意識到的加密算法的問題。不要使用哈希函數(shù)做為對稱加密算法的簽名。開發(fā)者建議使用基于口令的加密算法時(shí),生成密鑰時(shí)要加鹽,鹽的取值最好來自,并指定迭代次數(shù)。不要使用沒有消息認(rèn)證的加密算法加密消息,無法防重放。 本文作者:阿里移動安全@伊樵,@舟海 Android開發(fā)中,難免會遇到需要加解密一些數(shù)據(jù)內(nèi)容存到本地文件、或者通過網(wǎng)絡(luò)傳輸?shù)狡渌?wù)器和設(shè)備的問題,但并不是使用了加...

    不知名網(wǎng)友 評論0 收藏0
  • 互聯(lián)網(wǎng)業(yè)務(wù)安全之通用安全風(fēng)險(xiǎn)模型

    摘要:驗(yàn)證碼安全參考信息重放登錄注冊找密等入口,可能通過短信驗(yàn)證碼郵箱驗(yàn)證碼之類的進(jìn)行確認(rèn)操作,如果末對操作進(jìn)行次數(shù)及頻率上的限制,則會產(chǎn)生大量的重放攻擊。高并發(fā)缺陷交易類重放攻擊,高并發(fā)的情況下末對用戶操作行為加鎖,導(dǎo)致購買限制的繞過。 showImg(https://segmentfault.com/img/bVBVVR); 業(yè)務(wù)安全從流程設(shè)計(jì)維度可劃分為賬戶體系安全、交易體系安全、支付...

    liaorio 評論0 收藏0
  • 我所理解的接口設(shè)計(jì)

    摘要:前言自己做接口開發(fā)的時(shí)間也算不短了三年,想寫這篇文章其實(shí)差不多已經(jīng)有一年多的時(shí)間了。 前言 自己做接口開發(fā)的時(shí)間也算不短了(三年),想寫這篇文章其實(shí)差不多已經(jīng)有一年多的時(shí)間了。我將從下面的方向來對我所理解的接口設(shè)計(jì)做個總結(jié): 接口參數(shù)定義 -> 接口版本化的問題 -> 接口的安全性 -> 接口的代碼設(shè)計(jì) -> 接口的可讀性 -> 接口文檔 -> 我遇到的坑 接口參數(shù)定義 接口設(shè)計(jì)中往可...

    taoszu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<