2008-12-10 43 views
0

我正在開發一個連接到SQL Server 2005數據庫的.NET(2.0)WinForms實用程序。我找到了參考資料,如Avoiding Plaintext Passwords用於處理連接字符串數據的實際加密。我現在需要在安裝過程中實施加密,以便管理員可以將該實用程序安裝在用戶的桌面上,但不能向用戶提供數據庫連接信息。配置數據可以從安裝過程加密嗎?

示例代碼似乎都適用於在主應用程序內執行加密。所以應用程序需要執行一次加密操作。如果應用程序已安裝但未執行,則配置文件中的配置信息將以純文本格式顯示。

任何人都可以提供信息顯示如何從設置應用程序執行加密。其他解決此問題的方法也是受歡迎的(但是,由於業務需求,我無法爲數據庫連接要求Windows身份驗證 - 我僅限於SQL Server身份驗證)。

編輯: 我的描述可能過於簡單。我們已經進行了風險評估,並確定使用內置的.NET框架功能來加密連接信息可爲應用程序提供足夠的安全性。

我們知道,一個真正確定的個人最終可能會獲得連接信息,我們很樂意接受這種風險。加密連接數據的目的是簡單地提高工作量並幫助「保持誠實的人誠實」。

已經研究出了執行加密的方法,現在我正試圖找出一種在安裝過程中執行加密的方法。任何幫助沿着這些線woul被讚賞。謝謝!

回答

1

如何在安裝過程中讓安裝程序運行postscript進程?

這樣它將在安裝過程中運行,因此在管理監視下,encritpion的代碼將會是你喜歡的任何東西。

+0

這是我可能會去的路線。我可以在主應用程序中添加Encryption代碼,然後讓安裝程序使用指示加密應該發生的命令行參數啓動應用程序。謝謝。 – JeremyDWill 2008-12-11 03:29:47

2

加密配置的主要問題是保護用於解密配置設置的密鑰。

對於服務器應用程序,您可以通過限制對服務器的訪問來完成此操作。客戶端WinForms應用程序需要在以當前用戶身份運行時訪問密鑰,因此如果他足夠聰明,用戶將能夠找到密鑰。

如果您不能使用Windows身份驗證進行數據庫連接,或在服務器上使用帶數據訪問代碼的n層體系結構,那麼您將不安全。

+0

正如我在提供的鏈接中指出的那樣,.NET爲我提供了在配置文件中加密數據的方法。我只需要在安裝應用程序時執行加密的方法。管理加密密鑰由.NET框架處理。儘管謝謝你的迴應! – JeremyDWill 2008-12-10 19:48:17

相關問題