加密appsettings app.config windows服务

时间:2011-10-28 17:56:44

标签: .net encryption windows-services app-config

我有一个在多个生产实例中运行的Windows服务。

此Windows服务的配置文件包含一些需要加密的安全数据。

好东西 - 我们只有属于appsettings部分的值才能加密。

糟糕的事情 - 有第三方黑匣子组件消耗了一些安全的appsettings键。这意味着我们无法切换到不同的配置管理器。

所以,这是我们问题的局限性部分,

  1. 多个制作服务器,所以没有基于机器的加密(我不喜欢用户个人资料,因为这不会对服务施加限制)
  2. 应用程序设置应该像往常一样使用ConfigurationManager.AppSettings [“Key1”]进行消耗。这样现有的代码和黑盒子组件仍然可以使用它们。
  3. 任何想法/建议/解决方案?

1 个答案:

答案 0 :(得分:1)

您可以按照RsaProtectedConfigurationProvider中的说明使用this article linked from the first part of Davide Piras's answer。不知道为什么他删除了答案,因为第一部分似乎完全符合你的要求。

本文介绍了如何在多个服务器之间共享密钥,以便您可以在所有服务器上使用相同的加密配置文件。虽然这会让您遇到难以解决的密钥管理问题。

您确定需要在所有生产服务器之间共享相同的加密配置文件,因此使用共享密钥吗?另一种方法是在每个生产服务器上创建一个具有相同名称的密钥容器,并在每个服务器上单独加密该文件。这是一项更多的工作,但在解决密钥管理问题方面还有很长的路要走。