如何限制公司网络中用户使用工具?

时间:2015-06-18 03:00:01

标签: c# dll restrict license-key

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

如果这个工具不在我们公司之外(比如有人通过电子邮件发送给在公共场所共享它的客户),那可能会导致许多安全问题。 我们希望在此工具中构建智能,以便在公司或与我们共享该工具的合作伙伴网络中使用它。我们不了解合作伙伴的网络。

我想知道实施它的建议方法是什么? 像:

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

  2. 使用从生成日期开始一个月到期的工具打包证书。在允许使用该工具之前,请务必检查证书是否已过期。

  3. (2)的修改。让每个用户在特定日期之后请求密钥以解锁工具。
  4. 在我们实施解决方案之前,我想知道是否已经有一个库来执行此操作。

    由于

1 个答案:

答案 0 :(得分:0)

假设您在组织内部托管“文件”,并且所有各方都以某种方式访问​​它。如果您同时提供数据和工具来将其修改为外部合作伙伴,那么就没有什么可以阻止他们按照他们的意愿修改数据(缺少法律/行政行为,但这超出了SO范围)。

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

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

如果使用基于文件的存储而不是组织内部,则常规Windows域帐户可用于身份验证,常规文件系统权限可用于授权。

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