2013-07-22 73 views
0

我正在寻找检测任何唯一约束,如果和当一个虚拟机映像从一个位置复制到另一个。实际上,我将此作为产品许可服务修改的一部分,以防止许可证被篡改。许可服务使用MAC ID来唯一标识许可证。这在物理机器上工作良好,但是如果复制的VM许可服务无法将操作系统标识为单独的操作系统并调用许可证阻止。我只需要在VM复制/复制时更改的任何独特元素。 (我省略了过度简化的细节)。 任何想法赞赏。检测虚拟机复制/复制

+0

你可能创始人在错误的假定你的发牌制度,作为一个MAC地址是不是一成不变的,可以在一台物理机器来改变......对于虚拟化检测,有大量的文章在网上解决的地步。 – Seki

回答

0

我知道要解决这个问题的唯一方法是拥有一个授权服务器。当您将许可证代码输入到客户端(在VM上)时,它会联系服务器并向其发送许可证代码和其他信息。它重复地联系它(你定义了间隔 - 也许每隔几个小时一次)询问'我还有效'吗?随着这个请求,它发送一个唯一的ID。服务器回答'是的,你是有效的',并发送一个唯一的ID返回给客户端,客户端如果VM复制其下一个请求发送到服务器这一独特的ID后面。

,下一次就要求服务器“我是有效的吗?”时,如果服务器出现故障或网络出现故障,您将需要确定如何处理,以便客户端(例如,客户端或服务器)停止服务。无法与服务器通信您是否立即禁用了您的软件?糟糕的主意!不要做你的顾客很生气。你会想给他们一个宽限期。这应该多久?几天?周?

比方说,你给他们1个月的宽限期。理论上,他们可以在输入许可证密钥后克隆父虚拟机,然后在其宽限期耗尽之前将其他虚拟机还原到该克隆,禁用网络访问权限。这对您的客户来说会很麻烦,只是为了盗版软件的额外副本。您必须确定哪种宽限期不会妨碍您的合法客户,同时希望为您提供所需的保护。

额外的保护可以通过验证虚拟机的时钟是否正确设置来实现。这将阻止上述方法进行盗版。

另外一个考虑是一个精明的用户可以编写自己的授权服务器与虚拟机实例进行通信,并告诉他们“你很棒” - 使加密通信可以帮助阻止这一点。你想在这里走多远真的取决于你认为盗版确实可能是你的客户的问题。最后,你将无法阻止真正有时间的海盗,但你可以保持诚实的用户诚实。

相关问题