如果開發加密自己的機器上使用RSAProtectedConfigurationProvider連接字符串的app.config部分,而這隨後被部署到用戶的工作站上,可以將該用戶的工作站(或服務器,用於那件事),自動解密連接字符串?部署的連接字符串
會某種重要的出口/安裝的需要?這個怎麼用? 我意識到它不是防彈的。我在尋找關於部署是否容易和/或使用這種加密連接字符串的建議。
如果開發加密自己的機器上使用RSAProtectedConfigurationProvider連接字符串的app.config部分,而這隨後被部署到用戶的工作站上,可以將該用戶的工作站(或服務器,用於那件事),自動解密連接字符串?部署的連接字符串
會某種重要的出口/安裝的需要?這個怎麼用? 我意識到它不是防彈的。我在尋找關於部署是否容易和/或使用這種加密連接字符串的建議。
這是可能的。有API來做到這一點(看System.Security.Cryptography
命名空間),或在命令行中,你可以使用ASPNET_REGIIS:
aspnet_regiis -pc -exp : create an exportable key pair
aspnet_regiis -px : export an RSA key pair to an XML file
aspnet_regiis -pi : import an RSA key pair from an XML file
aspnet_regiis -pa : add access for an account to a key container
當然,使用加密時,你只是代保護數據的問題(你的連接字符串)由保護密鑰的問題。
在你的榜樣,因爲你,因爲你說你知道這不是防彈的都知道,用戶將需要訪問密鑰容器,以便將能夠解密加密的連接字符串。
此外,人誰得到包含導出密鑰對XML文件的保持就可以這樣做。
UPDATE
部署過程會是這樣的:
使用受保護的配置提供程序(如RSAProtectedConfigurationProvider
)加密的節將自動解密,前提是運行該應用程序的Windows標識具有對RSA密鑰容器的讀取權限。
謝謝。你能否詳細說明這個關鍵容器?這是我需要知道的 - 這是如何從開發人員工作站部署到目標機器的?目標機器如何自動解密? – 2012-02-23 16:13:44
@PittsburghDBA - 查看更新。 – Joe 2012-02-23 18:58:00
太棒了。謝謝。 – 2012-02-23 21:19:19