2010-09-03 109 views
1

我有一個Silverlight業務應用程序。我想存儲用戶在登錄系統時輸入的用戶名和密碼。在Silverlight中存儲敏感數據

有沒有人有任何指針,技巧等如何我可以安全地存儲這些數據?我想將其加密存儲,但我不確定在哪裏存儲密碼/ salt,將它存儲在客戶端代碼中是否安全?我猜這不會是因爲這是發送給客戶端。

我通常會用Windows Data Protection API (DPAPI)機器對數據進行加密,這可能在Silverlight?

應用程序將在瀏覽器中使用Silverlight 4

更新

我驗證在服務器端的用戶運行。目前我存儲在服務器端加密的用戶名和密碼。我在客戶端需要它們的原因是,在使用Perpetuum Report Viewer時,如果報告包含子報告或具有追溯,那麼會從其憑據中提示用戶。我不希望用戶需要再次輸入他們的憑證,唯一的方法是在客戶端提供它們。

+0

你能解釋一下你的用例嗎?在客戶端存儲密碼永遠不會有很好的理由 – 2010-09-03 10:19:41

+0

用例 - 我使用Perpetuum Report Viewer for Silverlight。在追溯或子報告的情況下,用戶被提示輸入憑證。爲了提供更好的用戶體驗,我希望在這些實例中自動提供憑據,因爲用戶在登錄時已經提供了憑據。足夠好的原因? – Fermin 2010-09-03 10:41:19

回答

1

存儲該信息在客戶端永遠不會安全。 Silverlight總是可以顛倒過來,你可以很難爲用戶/黑客獲取它,但它絕不是100%安全的。

下面是關於使用AES算法來加密/ Silverlight中的數據進行解密好的文章: http://www.davidezordan.net/blog/?p=202

+0

我意識到這絕不是100%安全的,查看Davide Zordan的文章看起來很有希望。 – Fermin 2010-09-03 10:50:33

0

爲什麼你不懂事的東西存儲在服務器端?

Silverlight組件可以被反向設計或/和修改。

讓用戶輸入密碼並將其加密發送到服務器端。在服務器端,如果密碼正確,則檢查密碼。

沒有必要在silverlight控件中存儲密碼。

+0

查看問題更新,我在服務器端進行驗證並將其存儲在那裏,但需要客戶端與第三方控件配合使用。 – Fermin 2010-09-03 10:56:19

0

存儲的替代方案可能是使用LocalMessageSenderLocalMessageReceiver(某種形式的加密可能是謹慎的)在從同一個域運行的Silverlight應用程序實例之間傳遞憑據。

+0

你是否建議讓第二個Silverlight應用程序運行來存儲數據並傳遞給它? – Fermin 2010-09-03 13:54:41