我想了解的是将连接字符串加密到配置文件中的明确方法。我的问题如下:
使用机器级别的加密,任何能访问我的服务器的人都可以编写一个小的.NET程序来读取连接字符串的内容,这是正确的吗?
如果我在企业环境中将我的应用程序部署到用户的计算机上,并且应用程序在配置文件中有连接字符串,如何确保只有我的应用程序才能解密它?这种情况在 ClickOnce 部署方案中尤其有趣。我已经听说过一些人将未经加密的配置存储在发布服务器上,并在应用程序第一次下载、安装和执行时在机器级别进行加密。但我觉得这样很有问题——连接字符串在网络上传输时没有受到保护,在下载和应用程序执行之间也没有受到保护。
我是否可以拥有公钥和私钥,签署我的应用程序,使用密钥加密配置文件,当用户执行它时,只有经过签名的应用程序才能解密?
由于我正在使用 ClickOnce,我可以在代码或嵌入式中包含加密的敏感信息,因为 ClickOnce 只有版本号发生更改才会检测到变化。所以,如果我需要重新编译以更改连接字符串,那么使用 app.config 的意义就不存在了。除了使用配置文件之外,我还可以采取哪些方法来保护服务器、客户端和它们之间的连接字符串?