登錄接口密碼加密傳輸?shù)脑O(shè)計(jì)

對(duì)于帳號(hào)來(lái)說(shuō),密碼安全非常重要?,F(xiàn)在很多C端采用短信驗(yàn)證/聯(lián)合登錄等方式弱化了固定密碼的作用,無(wú)疑對(duì)登錄安全性提供了很大的保障。但對(duì)于后臺(tái)系統(tǒng)來(lái)說(shuō),基本還是采用傳統(tǒng)帳號(hào)密碼登錄。密碼安全分為存儲(chǔ)安全和傳輸安全,本文主要講述解決傳輸安全。

常規(guī)增強(qiáng)帳號(hào)密碼登錄安全性的方案:

  • 加密密碼本身 不傳輸明文密碼,但被抓包可以直接重放請(qǐng)求,有無(wú)明文都無(wú)所謂
  • HTTPS 提升抓包解包的難度

其實(shí)對(duì)于數(shù)據(jù)安全的考慮都是加密數(shù)據(jù),但如果加密后的數(shù)據(jù)也有價(jià)值可被利用,同樣是不安全的。我們可以發(fā)現(xiàn)不管你如何加密數(shù)據(jù),只要?jiǎng)e人抓到你的請(qǐng)求數(shù)據(jù)包,再發(fā)一份,一樣可以實(shí)現(xiàn)目的。

那我們?nèi)绾蝸?lái)防止重放請(qǐng)求

  • 簡(jiǎn)單一點(diǎn)對(duì)請(qǐng)求數(shù)據(jù)做一個(gè)標(biāo)識(shí)存起來(lái),重發(fā)的時(shí)候檢查一遍,已經(jīng)處理過(guò)就不處理??尚?,但我們的緩存是有限的,不可能一直存著。
  • 那反著來(lái),由后端頒發(fā)唯一標(biāo)識(shí)并短期緩存,前端請(qǐng)求帶過(guò)來(lái),檢查標(biāo)識(shí)存在則通過(guò),之后再給標(biāo)識(shí)刪掉。
  • 可攻擊的人也可能去請(qǐng)求標(biāo)識(shí),并篡改到抓包的重放請(qǐng)求里。所以我們要把標(biāo)識(shí)和他一定不知道的密碼放在一起加密,這樣便無(wú)法替換。

上面的設(shè)想說(shuō)完了,下面開(kāi)始介紹我的方案

  • 前端點(diǎn)擊登錄時(shí)向后端請(qǐng)求獲取種子(標(biāo)識(shí))
    • 種子由3個(gè)部分構(gòu)成:
      • 時(shí)間戳 可對(duì)種子校驗(yàn)設(shè)定有效期,過(guò)期請(qǐng)求直接拒絕
      • 隨機(jī)字符
      • 校驗(yàn)位 由前兩個(gè)元素計(jì)算得出
  • 前端將種子與密碼打包加密
  • 調(diào)用后端登錄
    • 解密
    • 校驗(yàn)種子校驗(yàn)位
    • 校驗(yàn)種子是否過(guò)期
    • 校驗(yàn)請(qǐng)求是否存在緩存
    • 將請(qǐng)求緩存
    • 業(yè)務(wù)邏輯。。。

說(shuō)明

  • 沒(méi)有與設(shè)想中的一致,是不希望過(guò)期請(qǐng)求也要走緩存查詢才知道。
  • 緩存有效期與種子有效期一致。請(qǐng)求重放時(shí),若在種子有效期內(nèi)緩存校驗(yàn)會(huì)不通過(guò),反之種子有效期校驗(yàn)就過(guò)不了。
  • 種子最重要的就是時(shí)間戳,但前端的時(shí)間無(wú)意義,所以走后端獲取。

邏輯流程圖

登錄密碼加密.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容