2010-04-19 96 views
3

我正在用C#編寫運行Windows Mobile 6.1的智能設備的應用程序。這很基本。只需查詢數據庫並獲取結果。沒什麼太花哨。.NET精簡框架連接字符串加密/保護

這個程序只會在內部部署,但我們仍然想要保護我們的SQL連接信息。

我應該在程序中加密/保護連接字符串的最佳方式是什麼?我已經看到使用AppSettings的.NET程序的例子,但我沒有看到我的Solution屬性中的設置刺。

這是我第一次在C#/ Visual Studio 2008中開發應用程序,因此可能會出現某種我錯過的設置。

感謝您的幫助。

回答

3

請注意,如果它在您的程序中,那麼它本質上是不安全的。無論你做什麼,如果應用程序能夠與其包含的信息建立安全連接,那麼這些信息可以被有經驗的黑客隨時隨地抽出。

但是你是否擔心這種威脅程度?顯然,將它引入app.config文件的安全性與您獲得的安全性差不多。所有必須發生的事情是,有人用文本閱讀器和ta-da打開文件,他們有你的憑據。

也許你會想要在配置文件中存儲一個加密版本並在你的應用中保存一個私鑰。至少文本閱讀器不能「打破」它。當然,有人可能會使用反射器並反編譯您的應用程序以獲取私鑰。

那麼你可以混淆應用程序。這會使找到私鑰更難。是的,不是不可能的。

也許你想要通過Web服務或其他東西從服務器上取下私鑰。然後,如果有人擁有應用程序,他們就無法獲得它 - 儘管他們總是可以反向設計Web服務調用的方式。或者做一箇中間人,看看網絡上的關鍵。

也許你可以使用SSL來保護傳輸。也許會對服務進行MAC過濾,以使未經授權的設備更難獲得密鑰。

你可以在這裏看到進展。每個安全級別都需要越來越多的工作。越來越多的維護。您必須決定您的方案的投資回報是什麼,並選擇您願意花費在其上的努力量來滿足您的安全水平。

0

不知道這是否有幫助,但我在VS2005之前的Windows Mobile 5項目中使用了OpenNETCF.AppSettings

您可以免費下載OpenNETCF智能設備框架的社區版www.opennetcf.com和瀏覽documentation

雖然我不確定它是否適用於VS2008/CF3.5。

+0

是的,它適用於CF 3.5和VS '08。 – ctacke 2010-04-20 13:17:08