2008-12-10 104 views
0

我正在开发一个连接到SQL Server 2005数据库的.NET(2.0)WinForms实用程序。我找到了参考资料,如Avoiding Plaintext Passwords用于处理连接字符串数据的实际加密。我现在需要在安装过程中实施加密,以便管理员可以将该实用程序安装在用户的桌面上,但不能向用户提供数据库连接信息。配置数据可以从安装过程加密吗?

示例代码似乎都适用于在主应用程序内执行加密。所以应用程序需要执行一次加密操作。如果应用程序已安装但未执行,则配置文件中的配置信息将以纯文本格式显示。

任何人都可以提供信息显示如何从设置应用程序执行加密。其他解决此问题的方法也是受欢迎的(但是,由于业务需求,我无法为数据库连接要求Windows身份验证 - 我仅限于SQL Server身份验证)。

编辑: 我的描述可能过于简单。我们已经进行了风险评估,并确定使用内置的.NET框架功能来加密连接信息可为应用程序提供足够的安全性。

我们知道,一个真正确定的个人最终可能会获得连接信息,我们很乐意接受这种风险。加密连接数据的目的是简单地提高工作量并帮助“保持诚实的人诚实”。

已经研究出了执行加密的方法,现在我正试图找出一种在安装过程中执行加密的方法。任何帮助沿着这些线woul被赞赏。谢谢!

回答

1

如何在安装过程中让安装程序运行postscript进程?

这样它将在安装过程中运行,因此在管理监视下,encritpion的代码将会是你喜欢的任何东西。

+0

这是我可能会去的路线。我可以在主应用程序中添加Encryption代码,然后让安装程序使用指示加密应该发生的命令行参数启动应用程序。谢谢。 – JeremyDWill 2008-12-11 03:29:47

2

加密配置的主要问题是保护用于解密配置设置的密钥。

对于服务器应用程序,您可以通过限制对服务器的访问来完成此操作。客户端WinForms应用程序需要在以当前用户身份运行时访问密钥,因此如果他足够聪明,用户将能够找到密钥。

如果您不能使用Windows身份验证进行数据库连接,或在服务器上使用带数据访问代码的n层体系结构,那么您将不安全。

+0

正如我在提供的链接中指出的那样,.NET为我提供了在配置文件中加密数据的方法。我只需要在安装应用程序时执行加密的方法。管理加密密钥由.NET框架处理。尽管谢谢你的回应! – JeremyDWill 2008-12-10 19:48:17

相关问题