【问题标题】:How to prevent USB dongles from sharing如何防止 USB 加密狗共享
【发布时间】:2017-03-26 10:19:20
【问题描述】:

我正在测试一个用于许可软件的 USB 安全加密狗。 我发现可以通过以下方式共享 USB 加密狗:
1)通过网络(通过许多免费和商业软件)
2) 使用 VMWare 会话
3)使用USB HUB硬件

以便最终用户可以购买一个加密狗并将其用于多台计算机。(但是我发现没有办法同时共享和使用加密狗,他必须在计算机之间切换。如果我错了,请告诉我)
主要问题是:

是否有任何解决方案可以防止 USB 加密狗通过网络、VmWare 或 HUB 交换机共享?
假设我们是生产商,我们可以更改usb dongle的硬件、软件和驱动程序

【问题讨论】:

  • 您写道:“但是我发现没有办法同时共享和使用加密狗,他必须在计算机之间切换”。允许非同时使用不是加密狗的真正任务吗?

标签: security usb licensing penetration-testing dongle


【解决方案1】:

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

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

但问题并不是我想的那样。

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

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

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

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

【讨论】:

    猜你喜欢
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2016-10-16
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    相关资源
    最近更新 更多