https://mp.weixin.qq.com/s/-Jb-_PpbEN5HYpueUqtxzA
網(wǎng)絡(luò)傳輸安全主要需要保證兩部分:
1.客戶端上傳信息即使被截獲也不能被別人知道:例如:登錄密碼巴帮。
2.服務(wù)端下發(fā)的信息亏娜,即使被截獲也不能被別人知道蚌斩。例如:用戶信息粟誓。
保證客戶端上傳信息的安全:
? ? ? 客戶端傳輸重要的信息插爹,例如銀行卡號(hào)僵芹,用戶名密碼給服務(wù)端時(shí)灰殴。為防止信息截獲后信息泄露塌西,可以使用RSA的加密算法谐宙。RSA加密算法是一種非對(duì)稱加密方式烫葬。因此我們只需要在客戶端把信息用公鑰加密后,傳遞給服務(wù)端即可凡蜻。這樣任何人都不會(huì)知道信息搭综,除非它知道私鑰。然而私鑰都保存在服務(wù)端划栓,比較安全兑巾。
? ? ?服務(wù)端收到請(qǐng)求后,利用私鑰對(duì)信息進(jìn)行解密即可茅姜。這樣就不會(huì)出現(xiàn)信息泄露闪朱。
保證服務(wù)端下發(fā)信息的安全:
? 當(dāng)用戶要進(jìn)行登錄的時(shí)候,服務(wù)端對(duì)用戶名和密碼進(jìn)行驗(yàn)證成功后钻洒。會(huì)下發(fā)一個(gè)token給客戶端奋姿。這個(gè)token肯定要進(jìn)行加密,如果我們采用對(duì)稱加密的話素标。那么客戶端也必須知道對(duì)稱秘鑰才可以進(jìn)行解密称诗。那么用戶怎樣才能拿到對(duì)稱秘鑰呢?為了傳輸安全头遭,我們可以用私鑰對(duì)對(duì)稱秘鑰進(jìn)行加密寓免。客戶端收到信息后计维,利用公鑰對(duì)信息進(jìn)行解密袜香,即可拿到對(duì)稱秘鑰,然后利用對(duì)稱秘鑰可以對(duì)token進(jìn)行解密鲫惶。然后把token保存起來(lái)就可以使用了蜈首。每次發(fā)起請(qǐng)求的時(shí)候,用token進(jìn)行對(duì)稱加密后欠母,再進(jìn)行訪問(wèn)欢策。
? ?服務(wù)端收到信息后利用對(duì)稱秘鑰對(duì)信息進(jìn)行比對(duì),符合的話就就進(jìn)行相應(yīng)的數(shù)據(jù)返回赏淌。
//注意:
1.RSA的解密速度約等于AES解密數(shù)據(jù)的100倍踩寇,因此不是核心的信息我們采用AES加密即可。這樣可以提高新能六水。
2.對(duì)稱秘鑰可以采取在客戶端隨機(jī)生成的方式俺孙,非對(duì)稱秘鑰可以采取固定的方式辣卒。
3.登錄時(shí)的用戶名和密碼可以采取非對(duì)稱秘鑰進(jìn)行數(shù)據(jù)庫(kù)驗(yàn)證,這樣沒有安全性問(wèn)題鼠冕。
4.普通的驗(yàn)證可以采用token加時(shí)間來(lái)進(jìn)行有效驗(yàn)證添寺。如果時(shí)間相隔太長(zhǎng)就讓重新登陸胯盯。