如何在远程电脑上保护App.config的安全?

问题描述 投票:0回答:1

在我的app.config中,我保存了我的应用程序的所有重要的东西(密码,连接字符串),我用RSA密钥容器加密了这些东西。

当设置被安装在远程电脑上时,设置也会导入RSA密钥容器(*.xml)。像这样,我的应用程序能够解密文件。

Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

问题是:我也能用这个指令解密app.config文件。

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -pdf "connectionStrings" "\myAppPath"

能否保护RSA密钥容器,使其只能被应用程序访问?

你有其他办法解决我的问题吗?

顺便说一下:我使用Wix作为安装程序,所有的远程电脑都不能上网。所以,网络服务器不是一个解决方案(我想)。

c# wix rsa
1个回答
0
投票

你需要一个受信任的第三方来建立新安装的A和现有安装的B之间的连接,A需要从B中获取一个令牌,这将允许解密配置。这可以在安装时完成。一旦收到令牌,就在整个应用程序的生命周期中存储和重用它。

可信的第三方可以是服务器(检查Kerberos)或安装软件的人。无论哪种方式,甲乙双方都要约定一个秘钥来解密配置。

如果事先没有安装,那就把它设置成主控,由它来生成这样的密钥。要加密配置可以用DES或RSA,由你决定。只是要以安全的方式分配密钥。参见 钥匙协议书.

© www.soinside.com 2019 - 2024. All rights reserved.