簡體   English   中英

C#connectionString加密問題

[英]C# connectionString encryption questions

我正在學習如何為我們的C#(3.5)應用程序加密ConnectionString。 我閱讀了關於保護連接字符串的.Net Framwork開發人員指南( http://msdn.microsoft.com/en-us/library/89211k9b(VS.80).aspx )。 但不完全了解內容。

  1. 它說“ The connection string can only be decrypted on the computer on which it was encrypted." 我們有一個發布機器,它將構建我們的應用程序,它將生成OurApp.exe.config,然后將其安裝到許多產品機器上。 是不是我們必須將這個加密過程與我們的應用程序分開並在單獨的產品機器上運行?

  2. 我們可以使用“ RSAProtectedConfigurationProvider ”。 它提到我們需要該提供商的encryption key 何時以及如何提供加密密鑰?

謝謝,

您只需運行一次加密過程。 但是,在生成計算機密鑰后,您需要在目標計算機的所有machine.config文件中傳播該密鑰。 machine.config應該位於:

%FRAMEWORKDIR%\%FRAMEWORKVERSION%\CONFIG

如何:在ASP.NET 2.0中配置MachineKey :此鏈接包含有關配置配置密鑰<machineKey validationKey="[generated value here]"
decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" decryption="Auto" />
<machineKey validationKey="[generated value here]"
decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" decryption="Auto" />
<machineKey validationKey="[generated value here]"
decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" decryption="Auto" />
以及如何在機器之間共享。

1)是的,如果您使用此方法,您將按照安裝它的機器對其進行加密。 如果你每台機器都有不同的配置,這將是我的exp的正常方法。 如果您嘗試發送“秘密”連接字符串,這不是一個好方法。

2)如果您還沒有看到它,我認為本文將回答有關RSA提供商的問題... http://msdn.microsoft.com/en-us/library/ff650304.aspx

如果這是客戶使用的應用程序,則需要提供連接信息:

注意事項:不要認為通過加密配置,您真正保護自己免受運行應用程序的用戶的影響。 在某些時候,該字符串需要由應用程序解密以用於連接到服務器。 可以利用該應用程序來提供與其他應用程序的連接。 簡而言之,您不應該依賴此作為使用戶遠離數據庫的唯一策略。 良好的安全性始終是一項多方面的努力。

有兩種固定鑰匙的方法(實際上是一種,但是在工具的初始點火之后它們朝向不同的方向)。

  1. 使用DPAPI和機器的實際密鑰。 在某些方面,這是更安全的,因為沒有人知道密鑰。 導出密鑰也很痛苦,因此您可以將其放在服務器場中的其他計算機上。 唯一的另一種方法是必須為服務器場中的每個服務器維護單獨的連接字符串。 這可以做到,但它是非常kludgy。 如果你走這條路線,從配置文件中分離出連接字符串,這樣你仍然可以在所有服務器上更新配置,但不能敲擊連接字符串。 想想看,無論如何這是一個好主意。
  2. 設置一個自定義的機器密鑰(谷歌,因為那里有可以創建密鑰的生成器),然后在配置文件中提供。 然后,您可以輕松共享密鑰。

希望這可以幫助。

  1. 配置使用機器密鑰加密。 這意味着只有具有該密鑰的計算機才能解密它。 最簡單的方法是使用未加密的配置部署它,然后在軟件運行時加密它,或使用單獨的進程加密配置。 您可以使用上面的code4life的答案分發原始機器密鑰,以便在其他機器上使用

  2. 而不是逐步轉錄如何使用RSA加密密鑰,請參閱此MSDN指南 - http://msdn.microsoft.com/en-us/library/dtkwfdky.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM