2012-08-14 54 views
2

我們正在開發一個需要安全用戶身份驗證的GWT網絡應用程序。我們有可能通過傳真向用戶提供憑據。所以我們可以使用預先分享的祕密。我們不可能在這個應用程序中使用ssl或https。使用預共享密鑰進行身份驗證

我想知道什麼是更安全的方式來存儲傳遞到服務器上並驗證用戶;我懷疑是否應該兩次散列密碼?

+0

爲什麼SSL和HTTPS是一個禁忌? – Kimvais 2012-08-14 18:27:31

+0

這只是因爲我們認爲它在應用程序設計上需要一些改變;不是嗎? – Ehsan 2012-08-15 14:54:29

回答

3

如果無法進行加密,則應在客戶端散列密碼(與服務器提供的隨機鹽一起醃製)並比較得到的散列值。

這種方法具有兩個優點:

  1. 散列值是不同的每個登錄
  2. 密碼明文永遠不會發送。

然而,沒有加密和適當的認證,會話劫持和此類攻擊是微不足道的。

請注意,有沒有辦法讓這個安全性足以襯托出有能力的惡意方的任何攻擊企圖沒有某種形式在HTTP之上的加密/ authentiaction層,所以它可能是最好的不要給用戶任何虛假的安全感,mmkay?

「讓我們只使登錄儘可能安全」中的最大問題是會話側面攻擊是沒有加密的微不足道的。 Sidejacking(如Wikipedia定義):

會議sidejacking,其中攻擊者使用數據包嗅探閱讀兩方之間的網絡流量竊取會話cookie。許多網站對登錄頁面使用SSL加密,以防止攻擊者看到密碼,但一旦通過身份驗證,就不會對網站的其他部分使用加密。這使攻擊者可以讀取網絡流量,攔截所有提交給服務器的數據或客戶端查看的網頁。由於這些數據包含會話cookie,因此即使密碼本身不受影響,它也允許他冒充受害者。[3]不安全的Wi-Fi熱點特別容易受到攻擊,因爲任何共享網絡的人通常都能讀取其他節點和接入點之間的大部分網絡流量。

+0

非常感謝您的有益迴應; 以這種方式,我應該在服務器上存儲普通密碼(不是散列版本)。這樣對嗎?它讓我擔心一點關於服務器上的通過安全性。 只是另一個;在用戶通過傳真傳送鹽的同時發送鹽是否更安全? – Ehsan 2012-08-15 15:05:07

+0

關於HTTPS,我認爲最終我們必須爲網絡應用啓用它,因爲缺乏安全性。 – Ehsan 2012-08-15 15:06:36

相關問題