【问题标题】:Secure configuration file in clients客户端中的安全配置文件
【发布时间】:2013-04-19 06:38:12
【问题描述】:

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

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

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

编辑: 当然,读取文件的速度与安全性一样重要

编辑2: 我不能用数据库服务器做到这一点,因为我的策略也必须在没有互联网连接的情况下也可以访问。服务器将在某些时期更新该文件或 sqlite 表。我正在使用 c++。

【问题讨论】:

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


    【解决方案1】:

    安全是一个相当广泛的问题。如果您的系统遭到入侵,会发生什么?有人亏钱吗?有人在游戏中获得加分吗?有人可以访问核导弹发射代码吗?某人的医疗数据是否会向公众公开?

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

    您要保护的“用户”类型也很重要。是国家级安全专家(例如 FBI、CIA、KGB 等)、爱好黑客,还是普通计算机用户?加密文件将阻止普通用户,也许还有业余黑客,但国家安全专家肯定不会因此而受挫。

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

    你当然可以让它变得更复杂,这意味着某人必须有更强烈的动机才能通过你复杂的方法来解决问题,但最终归结为“如果机器知道如何解密某事,有权访问机器的人可以解密内容”。

    这取决于您(很明显,您正在关注其数据的“客户”和/或“合作伙伴”),您是否认为这是您可以冒险的事情。

    【讨论】:

    • 实际上我并没有提到安全专家。例如,我认为“深度冻结”将一些配置信息保存在最终用户无法到达的某个地方。因为如果最终用户可以这样做,那么更改管理员设置的配置和深度冻结就不会成功。我想知道是否有保存这些信息的标准或最佳方法。我当然知道,世界上有人可以破解我的程序。
    • 当然,你可以使用一些需要管理员权限的地方来写入,然后只使用只读来读取配置。但这远非安全,除非您还可以控制谁拥有对机器的管理员访问权限。当然,如果这是一家大公司的 IT 部门,大多数用户可能没有管理员权限,就是这样。另一方面,如果您要分发到大量不同的站点,您永远不会真正知道用户拥有哪些访问权限。我曾为所有人都拥有管理员权限以及“只有 IT 人员拥有管理员权限”的公司工作过。
    【解决方案2】:

    很抱歉打碎了你的希望和梦想,但如果你的安全性是基于客户端上的配置文件,那你就完蛋了。

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

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

    【讨论】:

    • .NET?我正在使用 C++。我无法理解。
    • @Yavuz:对不起,我没注意,但实际上你使用哪种技术并不重要,如果你的安全性被嵌入客户端,它们都会受到影响软件而不是服务器(尽管 .NET 和 Java 等托管平台使其更容易受到攻击)。
    猜你喜欢
    • 2020-06-19
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 2021-05-08
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    相关资源
    最近更新 更多