配置数据是否可以从安装过程加密?

时间:2008-12-10 19:27:47

标签: c# .net sql-server

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

示例代码似乎都适合在主应用程序中执行加密。因此,应用程序需要执行一次才能进行加密。如果应用程序已安装但未执行,则配置信息将以纯文本形式显示在配置文件中。

任何人都可以提供信息,说明如何从安装应用程序执行加密。其他方法也受到欢迎(但是,由于业务需求,我无法对数据库连接要求Windows身份验证 - 我仅限于SQL Server身份验证)。

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

我们理解一个真正坚定的个人最终可以获得连接信息,我们很乐意接受这种风险。加密连接数据的目的只是提高工作量,并帮助“保持诚实的人诚实”。

我已经找到了执行加密的方法,我现在正在尝试找出一种在安装过程中执行加密的方法。任何帮助都会受到赞赏。谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

如果您无法对数据库连接使用Windows身份验证,或者在服务器上使用带有数据访问代码的n层体系结构,则您将无法保证安全。

答案 1 :(得分:1)

让安装程序在安装过程中运行postscript进程怎么样?

这样它就会在安装期间运行,因此在管理监督下运行,并且编码的代码将是你喜欢的任何代码。