【发布时间】:2011-06-03 10:21:00
【问题描述】:
我正在编写一个要在终端服务器上运行的小型客户端程序。我正在寻找一种方法来确保它只能在指定的服务器上运行,并且如果它从服务器中删除,它将停止运行。
我知道没有任何方法可以使其 100% 安全,但我想让大多数高级用户难以做到这一点。
我正在查看不同的唯一标识符,例如处理器 ID、Windows 产品 ID、计算机 GUID 和其他 UI。因为终端服务器是一个虚拟机,所以我找不到这台机器完全独特的任何东西。
关于我应该研究什么以使其最安全的任何想法。我没有时间也没有必要让它尽可能安全,因为它会破坏应用程序本身的目的。
我不想使用 MAC 地址。尽管它对每台机器都是独一无二的,但可以按照互联网上的说明进行欺骗。
就 Microsoft 产品 ID 而言,因为我们的系统团队克隆了 VM 服务器并且我们使用公司卷密钥,所以我发现我已经可以访问两台具有相同产品 ID 号的服务器。我不知道有多少其他人具有相同的产品 ID
另外,与其尝试识别机器,不如识别用户并创建通过 AD 处理的基于组的权限以访问该软件。
【问题讨论】:
-
即使在VM中MAC地址也应该是唯一的? - stackoverflow.com/questions/3443093/…
-
每个人都如何获得如此精确的数据,以了解可以欺骗 MAC 地址的人数?显然是 5%……我不知道。
-
我不想做MAC地址,任何可以google的高级用户都可以欺骗它。 mydigitallife.info/2008/06/30/…
-
我相信只有不到 1% 的人会解决这个问题。
标签: c# .net security macos vmware