[英]C# connectionString encryption questions
我正在學習如何為我們的C#(3.5)應用程序加密ConnectionString。 我閱讀了關於保護連接字符串的.Net Framwork開發人員指南( http://msdn.microsoft.com/en-us/library/89211k9b(VS.80).aspx )。 但不完全了解內容。
它說“ The connection string can only be decrypted on the computer on which it was encrypted."
我們有一個發布機器,它將構建我們的應用程序,它將生成OurApp.exe.config,然后將其安裝到許多產品機器上。 是不是我們必須將這個加密過程與我們的應用程序分開並在單獨的產品機器上運行?
我們可以使用“ 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
如果這是客戶使用的應用程序,則需要提供連接信息:
注意事項:不要認為通過加密配置,您真正保護自己免受運行應用程序的用戶的影響。 在某些時候,該字符串需要由應用程序解密以用於連接到服務器。 可以利用該應用程序來提供與其他應用程序的連接。 簡而言之,您不應該依賴此作為使用戶遠離數據庫的唯一策略。 良好的安全性始終是一項多方面的努力。
有兩種固定鑰匙的方法(實際上是一種,但是在工具的初始點火之后它們朝向不同的方向)。
希望這可以幫助。
配置使用機器密鑰加密。 這意味着只有具有該密鑰的計算機才能解密它。 最簡單的方法是使用未加密的配置部署它,然后在軟件運行時加密它,或使用單獨的進程加密配置。 您可以使用上面的code4life的答案分發原始機器密鑰,以便在其他機器上使用
而不是逐步轉錄如何使用RSA加密密鑰,請參閱此MSDN指南 - http://msdn.microsoft.com/en-us/library/dtkwfdky.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.