2

I am testing a USB security dongle that is for licensing a software. I found that it is possible to share a USB dongle via these ways:
1)over network(via many free and commercial softwares)
2)using VMWare sessions
3)Using a USB HUB hardware

so that an end user can buy one dongle and use it for many computers.(however as I found there is no way to share and use dongle simultaneously, and he must switch between computers.please tell me if I am wrong )
The main question is:

Is there any solution to prevent a USB dongle from sharing over network,VmWare or HUB switches?
assume that we are the producer and we can change the hardware,software and the driver of usb dongle

4

1 回答 1

1

我认为至少从理论上讲,可以创建一个保持状态的 USB 设备,插入时重置它并保持它,直到断开连接为止。还会涉及一些密码学以使其相当安全(状态需要不可预测以防止共享),但通过驱动程序支持,您可以实现无法由多台计算机同时使用的 USB 加密狗。

谈到非同时使用,我相当有信心这是不可能的。您的设备从计算机接收或检索到的任何标识符都可能是伪造的,如果不是,那么您的驱动程序的修改版本可能会被伪造。USB加密狗和计算机将共享的任何秘密都可以被用户访问并复制到另一台计算机等。

但问题不是我想的这个。

您已经投入了大量资源(金钱)来使您的应用程序依赖于 USB 加密狗(顺便说一句,这也会影响用户体验,但这是完全不同的故事)。您试图保护的价值真的如此之多以至于值得付出努力吗?

任何防御都应与风险相称。如果您可以让攻击者难以绕过您的保护措施,那可能已经足够好了。因此,您必须回答的问题是当前保护与某些用户能够在多台计算机上使用您的应用程序的风险有何关联,即使您的许可证不允许这样做。大多数企业不会这样做。

另请记住,您所保护的只是软件。您可以生产 USB 设备,投入大量资金并使其尽可能安全,但在您的应用程序中发送到设备的支票只是提供给最终用户的代码。使用相当好的加密狗,从应用程序中删除检查会容易得多。回顾一下游戏行业或商业应用程序的先前尝试 - 最终总会有一个裂缝,是基于保护硬件的还是其他的。

因此,底线是,您无法保护提供给最终用户的任何东西。

于 2016-11-15T00:27:19.697 回答