前端密碼加密有沒有用?

    很多人都認爲https是安全的,他加密了http所有的字段,那他就一定是安全的嗎,現在的HTTPS通信不實端到端的,是夾着一層層的代理,有客戶端的代理,還有服務端的代理。本來比較安全的HTTPS,因爲代理所以存在安全隱患。

客戶端代理

    通常用戶是不知道代理的存在,比如企業爲了監控員工https流量,一定會在員工電腦上下手腳,這樣企業的網管完全可以看到員工的https明文流量,其中也包含用戶的明文密碼(我們單位就有類似情況...)。

 

服務端代理

    通常有服務器的數字證書私鑰,可以與客戶端建立https加密通信,自然就可以看到用戶的https明文流量,其中也包含用戶的明文密碼。

以上兩種情況,用戶的明文密碼都有泄漏的風險。

一旦前端加密了用戶密碼,即使有代理的存在,依然無法獲得用戶的明文密碼。

 

前端加密用戶密碼

不加鹽的MD5加密密碼

儘管中間代理無法獲得明文密碼,但依然可以拿着截獲的MD5密碼實現登錄,這依然是一個安全隱患。

 

加鹽的一次性密碼OTP

如果每次加密用戶密碼時,同時添加隨機碼Nonce,隨機碼只使用一次,那麼每次產生的密碼就是一次性的、動態變化的。

即使被中間代理截獲,也無法第二次登錄用戶賬戶。

即使沒有中間代理的存在,目前很多https依然使用RSA算法來實現認證環節、密鑰交換(Key Exchange)環節。一旦服務器的私鑰泄露,歷史上被截獲的https加密流量,將會被輕鬆破解,其中包括用戶的明文密碼。

這就是爲何TLS 1.3會完全拋棄RSA算法,做爲密鑰分發算法的原因,因爲它不滿足PFS要求。

 

PFS

PFS,Perfect Forward Secrecy,任何一個安全要素的破解,都不能破解全部數據。如果滿足這個條件,則爲滿足PFS要求,否則爲不滿足。

綜上所述,前端加密用戶密碼,是爲了更好滴保護安全、隱私,即使在https被完全破解的情況下,同樣也可以!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章