在客户端安全configuration文件

在一个项目中,我们将为每个客户端创buildconfiguration文件(也可以是每个客户端的sqlite而不是configuration文件)。 该文件将包括像政策的重要信息。 因此,最终用户无法添加,删除,更改该configuration文件或文件中的某些内容。

我正在考虑使用活动目录来防止用户打开包含我的configuration文件的文件夹。

有一种使用安全configuration文件的非常规方法吗?

编辑:当然读取文件的速度是重要的安全

编辑2:我不能这样做与数据库服务器,因为我的政策必须是可访问的,而不是互联网连接。 服务器将在某些时段更新该文件或sqlite表。 我正在使用c ++。

我很抱歉摧毁你的期望和梦想,但是如果你的安全是基于客户端上的这个配置文件的话,那你就搞砸了。

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

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

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

所有这些都或多或少都是重要的安全问题,但是正如你所想象的那样,核导弹的发射要求比一些可以提高分数的游戏更高的要求,而金钱和健康明显地终结于某个地方这个范围,还有很多我们可以添加到列表中的其他东西。

这也很重要,你试图防止什么类型的“用户”。 是国家级的安全专家(如联邦调查局,中情局,克格勃等),爱好黑客还是普通的电脑用户? 加密文件将阻止一个普通用户,也许是一个爱好黑客,但国家安全专家当然不会被挫败。

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

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

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