4

我们有一个打包为 Linux VMWare 映像的应用程序。现在我们必须找到一种方法来保护它免受非法复制和安装。我们研究了几种基于 USB 加密狗的解决方案,但它们都需要在源代码级别修改应用程序(简单的检测仅限于 Windows EXE)。有没有办法保护 VMWare 映像不运行并执行定期检查?

编辑:此应用程序是专业解决方案的一部分,并非按原样分发。VMWare 打包用于虚拟化目的,而不是用于分发。我们以 10,000 美元至 100 万美元的价格出售完整的电信公司解决方案,包括硬件和支持。但是,由于客户可以访问这些平台,我们必须确保他们无法获取图像并在其他地方运行它们或违反许可政策。因此,以下质疑保护必要性的评论虽然在一般情况下完全有效,但不适用于那里。

4

6 回答 6

11

我知道每次都这么说,但值得重复:

请不要。以代表其价值的价格出售您的软件,如果您必须让诚实的人保持诚实,请使用基本的关键方案,然后就这样吧。海盗总是会偷走它,而硬件加密狗只会让您的诚实客户感到悲伤。

此外,您构建的任何方案都将被逆向工程击败;如果你让使用你的软件变得痛苦,你会激励其他诚实的人打败它,或者在互联网上搜索破解。只需让保护比寻找裂缝更痛苦。

软件猴子, 2009 年 1 月

于 2009-06-23T13:22:10.330 回答
1

使用 Cryptsetup/dm_crypt 加密映像的磁盘分区,然后在启动时使用一些特定于机器的(真正的 CPU-ID?)元素进行解密。但这意味着为每个客户滚动一个新图像......但你可以编写脚本。

尽管一旦启动,他们无论如何都可以撕开图像。GPL是否不要求您重新分发?

这会很棘手

于 2009-06-23T13:19:04.983 回答
0

你试过VMWare ACE吗?

http://www.vmware.com/products/ace/features.html

它似乎可以解决您的需求。

于 2009-09-15T14:25:45.140 回答
0

此外,为了进一步扩展 Aiden 所说的内容:您应该就是否可以在不违反以下任何一项的情况下执行此操作获得法律建议.

基本上,您尝试做的事情称为Tivoization,如果您使用的任何软件包都属于 GPL v3,那么您可能违反了它。

于 2009-06-23T13:26:52.520 回答
0

鉴于您客户的规模以及您提供的服务范围,让他们跳上篮球似乎没有意义。如果他们违反合同,只需谈判即可,如果您无法达成合适的妥协,请起诉他们。

如果加密狗是灵丹妙药,你认为微软或甲骨文不会需要它们吗?

对于拥有极少数大客户的软件产品,支持和持续开发通常对客户至关重要,并且构成了解决方案的大部分价值和成本。许可只是一个小插件。

老实说,如果您的产品非常简单以至于不需要持续的开发和支持,那么无论如何您都不太可能为许可收取大量费用 - 他们只会找到一个代码猴子来复制它并保留改变。

于 2009-06-23T13:59:43.250 回答
0

关于基于 USB 加密狗,每个市售的 USB 加密狗都已被破解,并且有一个解决方法。不管他们告诉你什么,USB 加密狗的原理在设计上存在缺陷。

更糟糕的是,一旦您将软件产品交付给客户,如果他们认为该应用程序的价值足以花时间破解它,它就会被破解。不管它受到的保护有多强,如果黑客可以访问二进制内容,它就会被黑客入侵。

此外,您的许多用户将是诚实的人,他们会对所有这些安全问题感到恼火。如果您选择一个非常强大的解决方案,您实际上是在邀请人们不要以正确、合法的方式使用您的软件。

如前所述,请注意您必须遵守 Linux 许可证。实际上,除非您能证明您已根据许可证工作,否则您可能被迫将您的应用程序的源代码作为开源提供。

但是,有一种合理的简单方法可以进行定期检查。每天至少使用 CRON 启动一次回拨应用程序。它会调用您的虚拟主机上的网络服务,提供有关其设置的附加信息。作为响应,您的服务会告诉它它是否仍然合法。如果是合法的,没问题。如果此检查失败,只需让应用程序报告一条消息。如果 call-home 连续五次失败或告诉它是非法版本,那么是时候惹恼用户了。(但在不破坏应用程序可用性的情况下,否则用户会变得非常不高兴。)现在,您想要保护的东西可能会继续运行而无需任何更改。或者您更改它们以检查回拨应用程序是否已经尝试联系。如果用户禁用了这个过程或以其他方式篡改了它,

或者,使用最简单的选项:创建一个具有几乎完全访问权限的特殊管理员帐户。不要让您的客户端以 Root 身份运行。

于 2009-06-23T15:07:47.793 回答