【问题标题】:How to limit usage of a tool to users within your company network?如何限制公司网络内的用户使用工具?
【发布时间】:2023-03-11 10:26:01
【问题描述】:

我们有一个开发人员调试工具来帮助操作我们产品所依赖的数据库的安全部分。该工具的目的是将状态注入数据库以减少创建测试场景的时间。该数据库不是可以使用 sql 操作的典型数据库。相反,它是一个只有我们的工具才能操作的二进制文件。这是一个 C# 应用程序。

如果此工具超出我们公司的范围(例如有人通过电子邮件将其发送给在公共场所共享该工具的客户),则可能会引发很多安全问题。 我们喜欢在这个工具中构建智能,以便它可以在公司内部或与我们共享该工具的合作伙伴网络中使用。我们不了解合作伙伴的网络。

我想知道建议的实施方式是什么?
喜欢:

  1. Ping 公司活动目录服务器或交换服务器。如果您可以访问其中一台服务器,则允许使用该工具。

  2. 使用自构建日期起一个月到期的工具打包证书。在允许使用该工具之前,请务必检查证书是否过期。

  3. (2) 的修改。让每个用户在特定日期后请求解锁工具的密钥。

在我们实施解决方案之前,我想知道是否已经有一个库可以做到这一点。

谢谢

【问题讨论】:

  • 如果该工具所做的只是操作数据库,那么没有什么可以阻止您的任何保护措施被击败。真正的问题是:为什么你的数据库可以被这种操作访问?
  • 这不是典型的数据库,您可以使用 sql 访问。更好的描述是它是一个只有我们的工具知道如何读写的二进制文件。
  • 听起来您需要身份验证...对于此工具以及正常使用。
  • ...直到有人掌握了该工具并对其进行逆向工程,从而禁用您在此处提出的任何弱保护。

标签: c# dll restrict license-key


【解决方案1】:

假设您在组织内部托管“文件”,而各方只是以某种方式访问​​它。如果您将数据和修改数据的工具都提供给外部合作伙伴,则没有什么能真正阻止他们随意修改数据(缺少法律/行政行为,但这超出了 SO 范围)。

对于在用户机器上运行的代码,无论是 C# 还是本机编译代码,您都无能为力。 .Net 代码更容易修改/绕过保护,但如果您担心对文件的访问安全,则需要保护文件/服务器而不是担心客户端代码。

此类问题的通常解决方案 - 身份验证和授权:只允许经过身份验证的用户访问文件,并且只接受来自授权用户的更改。

如果您使用基于文件的存储,那么在您的组织内部,常规 Windows 域帐户将用于身份验证,而常规文件系统权限将用于授权。

对于外部合作伙伴,您可能需要服务器来执行文件修改和身份验证/授权,可能使用 ADFS 或 Oauth。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 2011-02-28
    相关资源
    最近更新 更多