2012-07-19 43 views
1

我正在研究一個內部使用的Web應用程序,該應用程序由許多Web服務請求驅動到另一個遠程服務器。內部站點維護自己的會話,通過自身由Web服務支持的用戶名/密碼憑證進行驗證(即,我們進行遠程驗證呼叫以驗證登錄到內部站點)。 Web服務請求還需要使用這些相同的憑據進行身份驗證。安全地存儲用於重複Web服務調用的憑證

我們希望這些Web服務請求可以保持無狀態,這意味着將憑據傳遞給每個請求進行身份驗證。問題在於記住要使用的憑證(在初始登錄期間輸入的憑證)是否安全。我不知道有任何真正安全的方式來存儲密碼供以後重新使用 - 哈希會犧牲我們再次使用它的能力。我們可以做的最好的做法是將其編碼在會話範圍內,並希望沒有惡意的開發人員會嘗試在線程轉儲或其他東西中捕獲它。

有沒有更好的解決方案,我錯過了?我對編碼密碼存儲在內存中的風險過於偏執,或者我們對這個項目的做法有缺陷?

+0

我願意打賭security.stackexchange.com可以幫助這個 – Wug 2012-07-19 18:08:42

+0

如果你確實在security.stackexchange上跟進它,我可以要求你在此後發佈摘要嗎?謝謝! – 2012-07-19 18:20:09

回答

0

最終,我們的結論是:不,這是可重複使用以任何方式在服務器上存儲用戶憑據是不是安全,所以我們可以」對每個Web服務請求都進行真正的無狀態重新認證。我們只需妥協並保留在用戶初始登錄期間啓動和存儲的有狀態連接。

0

我會建議使用基於令牌的身份驗證,令牌傳遞給用戶在飛行中便宜的用戶驗證。一個這樣做的實現是生成一個傳遞給用戶進行會話管理的cookie。

我沒用過,但你應該看看oauth可能example