在客户端中保护配置文件

时间:2013-04-25 11:28:09

标签: c++ windows sqlite security configuration-files

在项目中,我们将为每个客户端创建配置文件(也可以在每个客户端中使用sqlite而不是配置文件)。该文件将包括政策等关键信息。因此,最终用户不能添加,删除,更改配置文件或文件中的某些内容。

我正在考虑使用Active Directory来阻止用户打开包含我的配置文件的文件夹。

是否有一种使用安全配置文件的标准方法?

编辑: 当然,读取文件的速度作为安全性非常重要

EDIT2: 我无法使用数据库服务器执行此操作,因为我的策略也必须可以在没有互联网连接的情况下访问。服务器将在某些时段更新该文件或sqlite表。我正在使用c ++。

2 个答案:

答案 0 :(得分:0)

我很抱歉粉碎你的希望和梦想,但如果你的安全性基于客户端上的配置文件,你就会被搞砸了。

配置文件由应用程序加载和解密,这意味着在应用程序运行时可以使用特殊工具更改值。

如果安全性很重要,请在服务器上进行检查,而不是客户端。

答案 1 :(得分:0)

安全是一个相当广泛的问题。如果您的系统遭到入侵会发生什么?有人赔钱吗?有人在游戏中获得额外积分吗?有人获得核导弹发射编码吗?有人的医疗数据是否会暴露给公众?

所有这些都或多或少都是重要的安全问题,但正如你可以想象的那样,核导弹发射的要求比一些有人可能提高分数的游戏要完全安全,金钱和健康显然最终会在在该范围的中间,我们可以添加到列表中的许多其他东西。

您尝试防范的“用户”类型也很重要。是国家级安全专家(例如FBI,CIA,KGB等),业余爱好黑客,还是普通计算机用户?加密文件将阻止普通用户,也许是一个业余爱好黑客,但国家安全专家肯定不会被挫败。

最终,如果持有数据的机器也知道如何读取数据,那么你就无法拥有一个完全安全的系统。可以通过读取代码中的密钥并重新实现作为“安全性”一部分的任何解密/加密等来绕过系统。一旦数据以纯文本形式显示,就可以对其进行修改,然后重新加密并存储回来。

你当然可以让它更复杂,这意味着某人必须有一个更强大的动机来通过你复杂的方法工作,但最终,它归结为“如果机器知道如何解密某些东西,有权访问该机器的人可以解密内容“。

这取决于您(显然您的“客户”和/或“合作伙伴”您正在关注的数据),无论您认为这是否可能存在风险。