我執行我的GWT應用程序的授權,並在它下面的方式進行的那一刻:GWT/JavaScript客戶端密碼加密
- 用戶註冊時,把他的證件的形式,和我將它們以明文形式發送給服務器。
- 服務器代碼使用BCrypt散列接收到的密碼並將散列放入數據庫中。
- 當用戶登錄時,他的密碼以明文方式發送到服務器,該服務器會根據存儲的散列進行檢查。
現在。關於這一點困擾我的事情是,我將密碼以明文方式發送到服務器,我一直認爲,如果我使用的應用程序使用我的(use-for-所有類型的)密碼,但是在客戶端加密它並不能真正爲我贏得任何東西,因爲攻擊者可以像使用密碼那樣使用散列密碼。
我一直在爲這一整天googling,看來互聯網是非常一致的,當談到這一點 - 顯然沒有什麼可以從客戶端密碼加密獲得。 This,this和this僅僅是我所討論過的討論和網頁的幾個例子,但還有很多很多更多,都說同樣的事情。
這個問題,在這所有的光,似乎有點多餘,但我希望在某個地方,某個人,將有另一個答案對我來說。
我能做些什麼,如果SSL不是一個選項,在這一點上,以減輕我的主意呢?有什麼要做,或者將實施某種客戶端加密 - 服務器 - 解密方案只是耗時的虛弱的死馬踢?
感謝您的廣泛答案,在那裏有很多有用的鏈接。我很感激! – 2010-08-26 08:49:18
順便說一句:有CORS - 跨域請求...所以你應該真的能夠使用唯一的登錄SSL服務器解決方案。不幸的是,我不知道關於GWT請求構建器和Internet Explorer的一些不兼容性是否已經解決(意味着所有瀏覽器現在在使用「本機」GWT時不支持請求構建器的情況下支持它)。 – user1050755 2014-02-22 01:20:40