【问题标题】:Encrypting App.config file when app is installed in Program Files当应用程序安装在 Program Files 中时加密 App.config 文件
【发布时间】:2012-09-10 20:25:51
【问题描述】:

如果 app.config 中的连接字符串已加密并且应用程序安装在 Program Files 中,我的应用程序将无法运行。连接字符串部分被加密为构建后事件,因此它已被加密部署。我知道应用程序安装在 Program Files 中时可以执行的操作有一些限制,但我不明白为什么这是限制之一。

【问题讨论】:

  • 您是否使用内置配置加密?这使用当前用户或当前机器密钥,使其无法部署。您必须在目标机器上对其进行加密。
  • @JulienLebosquain 不错。我误读了 OP 的帖子,以推断他加密为后 install 事件,而不是后 build 事件。
  • @JulienLebosquain 啊,好的,谢谢。

标签: .net encryption connection-string app-config


【解决方案1】:

我怀疑它更多地与与执行应用程序的进程相关联的身份所隐含的权限有关,例如对密钥存储的权限或 app.config 文件本身。

根据@JulienLebosquain 的观察,如果您已将加密配置为后build 事件,则将使用特定于机器的密钥来执行加密,从而使其在任何 上都无法恢复>其他机器。要在 app.config 文件上完成安装后加密,您必须考虑构建一个安装项目并向您的应用程序添加一个安装程序类,该类定义一个基于主机密钥执行加密的安装后事件。

【讨论】:

  • +1 问题在那种情况下,他们不能破解安装文件或停止安装以访问连接字符串吗?
  • 磁盘上肯定存在未加密的配置文件的时间间隔。这创造了一个机会,无论多么短暂,都可以捕获未加密的数据。如果机器密钥被泄露,数据也可能被黑客入侵,甚至如果有人使用调试器连接到应用程序并在解密后检查实时内存(除非字符串使用 SecureString 存储)。
猜你喜欢
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 2019-03-15
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多