应用程序许可和激活的思考

8
我最近开发了一个应用程序,计划将其销售给小企业。由于我没有大量的现金支持,因此不愿购买商业应用程序来保护我的软件免受盗窃。
我的当前计划如下:
  • 我在应用程序中包含公钥(pgp)或文字代码。
  • 用户从提供某些信息的网站购买软件。
  • 该网站调用一个函数创建产品密钥。购买后,该密钥将通过电子邮件/显示给用户。
  • 用户下载产品后,他们将必须输入一些信息以及提供的产品密钥来进行激活尝试。
  • 应用程序联系我们托管位置的Web服务。它使用加密以及其他信息创建激活代码,该代码发送回应用程序。
  • 将来,应用程序将定期与Web服务检查以确定是否已获得授权。
  • 我希望在软件更新期间以某种方式更新pgp /代码,因此可能需要一个函数来解密信息,更新许可证,重新加密,然后更新服务数据库。
所以我想知道:
  1. 这是正确的方法还是现在已经过时了?
  2. 生成独特产品密钥的最佳方法是什么?
  3. 有没有办法完全将公钥/私钥保留在客户端计算机之外?
  4. 有没有好的方法检测非法许可证?我打算只提供站点许可证,因此只需要检测那些使用BitTorrent / IRC的人。
感谢您的帮助。非常感激。

注意:我已经看到了如何离线激活Adobe软件,所以我知道即使最好的软件也可能被破解。我想找到一个容易的解决方案,你可以称之为介于10美元软件和像Adobe这样的东西之间的中间产品。我的问题是,我不确定一些大型应用程序如何进行激活。甚至微软的操作系统也是我正在研究的一个例子。 - ThaKidd KG5ORD
3个回答

7
不要费心了——你无法阻止盗版,但你会让真正的客户望而却步。
即使最好的也可能犯这样的错误。我拥有Macromedia Studio MX2004和Adobe Creative Suite CS2。最近我不得不擦除并重新安装我的系统。第一件值得注意的事情是——上次(几年前)我在这个问题上遇到了足够多的激活问题,这是我一直没有清理我的系统的主要原因。从那时起,我只从已完成激活的硬盘镜像中恢复——直到现在。
当我试图激活时,两个软件都无法通过网络激活,尽管我似乎没有其他与互联网通信的问题。对于Creative Suite来说,电话激活还不错,但Macromedia当然是几年前被Adobe收购的。所有旧的Macromedia电话激活内容都不存在了。当然,在网站上可以找到Adobe的激活号码,但他们不支持Macromedia软件的激活。
有趣的是,Adobe似乎采用“让他们等一下,然后挂断电话”的电话支持系统。
最终,我解决了一个防火墙问题,并设法使网络激活正常工作——但这是在浪费了几个小时和相当多的通话费用后。
这里的重点在于——如果像Adobe这样规模的公司都不能确保轻松激活,而像Macromedia这样规模的公司也可以被接管——那么你有多少机会声称这不会给付费客户带来问题?
当你购买需要激活的软件时,你正在购买一个时间炸弹。总有一天你无法使用它,因为你无法激活它——除非通过下载一些盗版破解软件。
潜在客户当然知道这一点,除非他们有极具说服力的理由购买你的特定产品,否则他们很可能会转向其他地方。或者,由于他们将来需要那个盗版破解软件,当然没有比现在更好的时候了。
为什么要关心那些不经常升级的客户?更好的问法是——为什么我应该被迫升级我不需要任何新功能的东西。即使是停止支持激活的想法“可能”被用来这种方式也足以让我和其他人对需要激活的软件三思而后行。
不入虎穴焉得虎子——如果你不愿意冒险,你永远不会获利。虽然大多数盗版者无论你做什么都无法变成付费客户,但将付费客户变成盗版者是完全可能的。你所要做的就是确保他们在盗版软件的使用上获得比付费更好的体验,这正是激活、DRM等的目的。
另外,我不反对每个人都得到一个独特的“水印”下载的想法,以便如果你看到大规模盗版,你可以追溯到其来源。有二进制水印系统可以确保即使某人拥有多个副本进行比较时也能追踪它,尽管我不知道它们是如何工作的。

水印可以防止人们泄露您的软件,但即使如此,它也不可能完全阻止盗版。只需要一个人使用无法追踪的虚假身份购买您的产品。


作为一名软件用户,我完全同意您的观点。您能告诉我更多关于下载水印或者在哪里可以找到更多信息吗? - ThaKidd KG5ORD
@ThaKidd - 抱歉,不行 - 我曾经读过一点理论,但我只知道这是可能的。对于现有的软件,我相信你的谷歌搜索技巧和我的一样好。 - user180247

5
如果您的应用程序是有用的,无论您是否使用数字版权管理技术,它都将被破解并发布。只需销售未激活的应用程序,并像以前一样追踪盗版者。

虽然你说得很有道理(我也意识到事情就是这样),但这并没有回答我的问题。 - ThaKidd KG5ORD

3

我现在正在考虑要求客户使用原始购买的用户/密码登录应用程序(如Skype/Foxmarks)。由于我正在进行全站许可证,因此可以检测IP和其他信息以查看客户是否超出许可证。例如,客户注册并表示他有15个人在为他工作,到年底可能还会再雇用5个人。如果使用了这5个人并且需要更多,我的公司将被通知进行调查。如果情况变得糟糕,我将撤销涉及的用户/密码。也可以托管DB / 要求所有用户具有用户/密码才能登录。 - ThaKidd KG5ORD
底线是,我希望这对用户来说是完美的,但也能让新手黑客望而却步。如果我能让用户使用电子邮件和密码登录,我知道我的应用程序将更像大多数Web应用程序。账户所有者将能够为他/她的员工创建用户名和密码。如果这不是一个好选择,我将把它移到托管服务中。我还在研究Silverlight等技术......只是还不太了解。 - ThaKidd KG5ORD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接