2010-11-03 86 views
0

我不得不在本地機器上存儲用戶帳戶,最好的方法是什麼? (需要是可逆式加密,而不是哈希)在註冊表本地存儲憑據 - 加密方法?

我訪問UNC共享這裏提到: Accessing UNC Share from outside domain for file transfer

使用此建議的方法: http://www.codeproject.com/KB/IP/ConnectUNCPathCredentials.aspx

這將是一個自動化的過程,以便不人工輸入憑證的選項。 我目前加密的細節,並將它們存儲在使用註冊表了TripleDes:

http://www.devarticles.com/c/a/VB.Net/String-Encryption-With-Visual-Basic-.NET/4/

在應用程序中硬編碼的密鑰和初始化向量。

任何人都可以提出一個更好的方法或更改上述,以儘可能保證憑據?

alt text

回答

1

你從來沒有需要存儲用戶憑據。如果您的進程需要訪問網絡共享,則應使用runas或服務帳戶屬性在適當的憑據下運行它。如果網絡憑證不在本地/當前域中,則應使用runas /netonly。這就是它的全部,沒有任何藉口,也沒有例外。

作爲一個附註,Windows應用程序使用DPAPI在本地存儲祕密,在.Net中作爲ProtectedData類公開。該鏈接具有使用.Net中的DPAPI加密數據的完整功能示例。然而,重點仍然是將應用程序中的用戶憑據存儲在應用程序中,即使在DPAPI下,從根本上破壞了

+0

我的應用程序正在被FTP程序調用。上傳完成後,文件將被移入域中。我正在使用WNetUseConnection傳遞憑據(在域內的託管共享的服務器上本地創建的帳戶)。我無法通過runas \ a服務模擬用戶,因爲沒有DC需要進行身份驗證。唯一的選擇是通過憑證登錄到UNC共享。我的應用程序正在被FTP程序調用。上傳完成後,文件將被移入域中。我正在使用WNetUseConnection傳遞憑據(在託管共享的服務器上本地創建的帳戶)。 – madlan 2010-11-03 00:33:32

+0

我無法通過runas或作爲服務模擬用戶,因爲沒有DC需要進行身份驗證。唯一的選擇是通過憑證登錄到UNC共享。 – madlan 2010-11-03 00:34:29

+0

'runas/netonly'確實不**需要DC。 – 2010-11-03 00:40:34