HTTPS 下 Web 前端密碼非對稱加密是否有意義?

時間 2021-05-05 17:02:35

1樓:

最近被這個問題折騰了好久。我來說說我的看法吧。

首先,前端非對稱加密幹的人不多。而且就算幹了的站點比如google我都不知道他的加密演算法是什麼。

然後,這個事情是有意義的,因為這樣可以證明服務端絕對不會拿到你的真實密碼,給客戶安全感。

最後,我也不知道我該用單次的sha256+鹽還是PBKDF2+sha256+鹽來做前端加密。。真找不到參考物件。

所以,這個事情很難選擇。。。要不加個sha256意思一下好了,反正主要靠https

2樓:undefined

不是非對稱加密密碼,而是以非對稱私鑰代替密碼,然後用驗證是否持有私鑰的方法鑑權。

這是目前最安全的方法,比密碼要安全很多。

這套流程其實可以不走HTTP鑑權,而是走TLS客戶端鑑權,私鑰和證書的生成都可以在客戶端,中間發給伺服器簽個名就好,匯入瀏覽器之後連登入那一步都可以免了。

但是這樣的壞處就是,在公共裝置上登入帳號就不方便了……當然這件事本來就比較危險。另外就是切換賬號要切換證書,也是比較麻煩。

這套基礎設施老得很,客戶端證書所有瀏覽器都支援的。

這麼做的好處是,私鑰/密碼不會以任何方式傳輸,伺服器也只需要持有公鑰,因此伺服器永遠不會看到私鑰,而密碼的話,伺服器每次鑑權都需要將密碼和金鑰做比對,這樣就一定需要密碼原文,而且是每次都需要。所以私鑰比密碼安全很多。

而且,實際上伺服器只需要持有CA公鑰,另外就是有可能需要記錄公鑰和賬號的關聯,不過這個關聯可以記錄到證書上。所以,伺服器並不需要持有每個使用者的公鑰:等於說伺服器幾乎什麼都不用儲存,相比密碼的話伺服器還需要儲存金鑰。

負責簽發證書的伺服器倒是需要持有CA私鑰,這個部分是系統的弱點,就像CA是https的弱點一樣嘛……這是沒辦法的。

3樓:「已登出」

意義在於前端把資料提交到服務端的過程中,還會經過很多層,比如 CDN 即便走的是 HTTPS 也可以完全獲得明文資料的,還有雲WAF 也是可以得到明文的。

4樓:Rix Tox

比如題目中給定的條件是 HTTPS,這個前提暗示了 MITM 的威脅模型,也就是說在使用了 HTTPS 的條件下,我們可以保證不受 MITM 的威脅,也就是不存在傳輸線路和介質上的監聽和篡改。

防止使用者本身作惡:網站運營商想向使用者展示一些內容,但是不希望使用者能隨意拷貝這些內容。也就是 DRM 技術。

這兩種威脅模型,目前只有第二種 DRM 技術有完善且有一定程度的安全保障的實現,因為涉及商業保密技術就不展開說了。(嘛,雖然也有一些人認為目前的 DRM 技術都是安慰劑,防君子不防小人,也是說得過去的,但是這個要分析的話可能涉及法律問題所以不好展開)

而第一種威脅模型,現有的實現都只是安慰劑,並沒有解決模型下的本質威脅,這裡可以簡單解釋一下。要時刻提醒的是,這個威脅模型要防範的是網站運營商作惡,然而目前普遍的解決方案,是網站運營商提供乙份 JS 程式,呼叫前端加密方法,對資料進行對稱或非對稱加密後,再傳給網站運營商進行儲存。這種方案雖然使用了加密,但是本質上你還是要信任這個網站運營商提供給你瀏覽器的是乙個善意且實現正確的 JS 程式,也就是它並沒有把網站運營商從你的信任鏈條中剔除掉。

進而,如果網站運營商有意作惡,他們完全可以給你乙份惡意的 JS 程式,竊取你前端加密之前的明文資料。當然,如果你每次使用這個網站的時候都手動審計一遍 JS 程式碼的話當然有可能避免這種攻擊,但是明顯這不現實。

總的來說,如果在 HTTPS 前提下,威脅模型是網站運營商作惡的話,當前的 Web 前端加密,無論對稱或非對稱,都是安慰劑,而沒有真正的意義。

5樓:李華棟

分三個層面來說吧

1、HTTPS是網路資訊傳輸中引入TLS安全層,傳輸過程中是加密的通道。這是公共的基礎設施。有一定的安全度。

2、 Web 前端密碼,這個算是業務層面的安全設計,如果這裡不做安全方面的設計。如果第一層的安全發生問題。這裡業務上還能一層安全防護。

3、非對稱加密,算是在業界使用比較多的一種加密方式。這種加密相對於對稱來說是有一定的犧牲效率的。對於密碼來說,使用者的密碼肯定不能用加密的方式存在服務端的,如果一破解也是問題很大。

更多的是只做Hash校驗。密碼只有使用者自己知道。祝好!

誰能介紹下web前端工程化?

hucheng91 第一聽 前端工程化 是在公司的 km 上看到的,有個列表很多同事寫一些想學的技能,其中最多的 前端工程化 然後我發現很多人的理解 前端工程化 是搞搞 webpack 啥的,我覺得這個太小,這個只能算工具化,一般聽到工程最多的是建築行業的,專案工程,從這個層面理解,工程化是包含最開...

web前端好學麼?

已重置 好不好學都是因人而異的。假如你非常想學,並且有吃苦耐勞的精神,我敢說,好學!假如你是一時興起,而不是真正的熱愛,我想說,不好學! 蘇夢苓 其實我們學習什麼都比較好學,相對來說一般的話開始的時候興趣會比較大一些。剛開始學習的時候也是比較有激情,入門方面的話簡單些,但是想要學好,那難度還是比較大...

web前端學習迷茫

weekbin 學會前端基礎,能熟練的進行業務開發,可以完善一下自己的專案 學會使用各種常用第三方工具 完善的過程中會遇到很多問題需要遞迴學習。如果專案之前沒有用 vue react 之類的框架,可以嘗試用框架整理重寫一下,中間有會遇到很多問題需要學習。開始思考專案用不用框架的區別,框架的原理,又一...