我很好奇您如何保护您的软件免于破解,黑客攻击等。
您是否使用某种序列号检查?硬件按键?
您是否使用任何第三方解决方案?
您如何解决许可问题?(例如,管理浮动许可证)
编辑:我不是在谈论任何开源,而是严格的商业软件发行...
我很好奇您如何保护您的软件免于破解,黑客攻击等。
您是否使用某种序列号检查?硬件按键?
您是否使用任何第三方解决方案?
您如何解决许可问题?(例如,管理浮动许可证)
编辑:我不是在谈论任何开源,而是严格的商业软件发行...
Answers:
有很多很多保护可用。关键是:
没有什么是坚不可摧的,因此衡量这些东西并选择良好的保护比简单地掌控您能够承受的最佳(最差)保护更为重要。
以及以上的变化。
无论走什么路线,都要收取合理的价格,易于激活,免费提供较小的更新,并且永远不要停用其软件。如果您尊重用户,他们会为此奖励您。不过,无论您做什么,都会有人盗版。
别。
海盗会海盗。无论您想出什么解决方案,它都可能并且将被破解。
另一方面,您的实际付费客户是那些被废话困扰的客户。
购买比偷窃更容易。如果您放了很多复制保护,那么这只会使拥有真正交易的价值变得很低。
使用一个简单的激活密钥,并向客户保证他们可以始终一旦丢失获得激活密钥或重新下载软件。
您可以假设的任何版权保护(除了在线组件(如与您的银行连接的多人游戏和财务软件等)之外)都将被击败。您至少希望非法下载软件比购买软件要困难一些。
我有一个从未玩过的PC游戏,因为上面有太多的复制保护垃圾,实际上下载虚假版本更容易。
软件保护不值钱-如果您的软件需求旺盛,无论如何都将被击败。
也就是说,硬件保护可以很好地发挥作用。它可以正常工作的一个示例方法是:找到软件的(相当)简单但必要的组件,并在Verilog / VHDL中实现它。生成一个公共-私有密钥对,并制作一个接受挑战字符串并使用私有密钥对其进行加密的Web服务。然后制作一个包含您的公钥的USB软件狗,并生成随机的质询字符串。您的软件应向USB加密狗询问挑战字符串,并将其发送到服务器进行加密。然后,软件将其发送到加密狗。加密狗使用公钥验证加密的质询字符串,并进入“启用”模式。然后,只要需要执行在HDL中编写的操作,您的软件就会调用加密狗。
编辑:刚刚意识到一些验证工作是应该做的事,但是我很确定这个想法会出现。
对于小型企业而言,Microsoft软件许可计划的价格非常昂贵。如果您要自行设置,服务器成本约为12,000美元。我不建议这样做。
我们实际上只是实现了Intellilock在产品中。它使您可以决定所需许可证的严格程度,而且成本效益也很高。此外,它还可以进行混淆,防止编译器等。
我见过的小型/ 中型企业使用的另一个很好的解决方案是SoloServer。它更多地是一个电子商务和许可证控制系统。它是非常可配置的,可能有点太复杂了。但是从我所听到的来看,它做得很好。
过去,我也将Desaware许可证系统用于点网。与上述两个相比,这是一个非常轻巧的系统。就密码方面而言,这是一个非常好的许可证控制系统。但这是一个非常低级的API,您必须在其中实现应用程序实际使用的几乎所有功能。
数字“权利”管理是业内最大的软件蛇油产品。要从经典密码学中借用一个页面,典型的情况是Alice希望向Bob发送消息,而Charlie却无法读取它。DRM不起作用,因为在其应用程序中,Bob和Charlie是同一个人!
您最好提出反问题,即“如何让人们购买我的软件而不是窃取它?”。这是一个非常广泛的问题。但这通常是从进行研究开始的。您可以确定谁购买了您想出售的软件,然后生产出对那些人有吸引力的软件。
此操作的附加功能是将更新/附件限制为仅合法副本。这可以像在购买交易期间收到的订购代码一样简单。
看看Stardock软件,WindowBlinds的制造商以及诸如《太阳帝国》的《罪孽》之类的游戏,后者没有DRM,并且从200万美元的预算中获得了可观的利润。
给您一点时间,您的软件将永远被破解。您可以搜索任何知名软件的破解版本来确认。但是,仍然值得为您的软件添加某种形式的保护。
请记住,不诚实的人永远不会为您的软件付费,而总会找到/使用破解版。非常诚实的人即使没有许可计划,也总是会遵守规则,仅因为那是他们的身份。但是大多数人都处于这两个极端之间。
添加一些简单的保护方案是使大多数中间人以诚实的方式行事的好方法。这是一种让他们记住该软件不是免费的方法,他们应该为适当数量的许可证付费。实际上,许多人对此做出了回应。企业尤其擅长遵守规则,因为经理不会花费自己的钱。消费者不太可能遵守规则,因为这是他们自己的钱。
但是,最近从《Electronic Arts》的《孢子》等发行中获得的经验表明,您可以在许可方面走得更远。如果您甚至使合法的人因为不断受到验证而感觉像罪犯,那么他们就会开始叛逆。因此,添加一些简单的许可以提醒人们是否不诚实,但除此之外的其他事情不可能促进销售。
通常,有两个系统经常会混淆-
要获得许可,请使用商业软件包FlexLM许多公司在许可方面投入了大量资金,认为他们也可以获得安全性,这是常见的错误,因为这些商业软件包的密钥生成器数量众多。
如果您向将根据使用情况合法付款的公司出售产品,我只会建议您许可,否则,它的努力可能超过其价值。
请记住,随着您产品的成功,最终将违反所有许可和安全措施。因此,现在就决定是否值得付出努力。
几年前,我们实现了FlexLM的无尘克隆,我们还不得不增强应用程序以抵抗二进制攻击,因为二进制代码的过程很长,您必须在每个发行版中都对其进行重新访问。这实际上还取决于您也销售哪些全球市场,或者您主要的客户群在做什么。
请查看我有关保护DLL的其他答案。
正如已经指出的那样,永远不能保证软件保护是万无一失的。您打算使用的内容在很大程度上取决于目标受众。例如,游戏并不是您永远可以保护的东西。另一方面,由于多种原因,服务器软件不太可能在Internet上分发(想到产品渗透率和责任;大型公司不希望对盗版软件负责),以及海盗只会为需求量大的东西烦恼。老实说,对于一个引人注目的游戏,最好的解决方案可能是自己(对种子进行种子加密)(以秘密方式!)并以某种方式对其进行修改(例如,这样,在玩了两周后会弹出一条消息,提示您:请考虑通过购买合法副本来支持开发人员)。
如果您设置保护措施,请牢记两点。首先,较低的价格将使人们更倾向于支付购买价格,从而补充了任何版权保护。其次,保护绝不能妨碍用户-有关最新示例,请参见Spore。
这就是DRM,DRM即是-迫使DRM进行其项目的发布商之所以这样做,是因为它有利可图。他们的经济学家正在我们从未见过的数据上得出结论。“ DRM是邪恶的”巨魔走得太远了。
对于可见度较低的产品,简单的Internet激活将停止随意复制。其他任何复制都可以忽略不计。
非法分发实际上是不可能防止的;只是问RIAA。数字内容只能被复制;模拟内容可以数字化,然后复制。
您应该集中精力防止未经授权的执行。永远不可能完全阻止在别人的机器上执行代码,但是您可以采取某些步骤将门槛提高到足够高的水平,以使购买软件比盗版软件容易。
查看文章“ 开发软件保护和许可”,该文章解释了如何在考虑许可的情况下最好地开发应用程序。
强制性免责声明和插件:我与人共同创立的公司为.NET生产OffByZero Cobalt软件许可解决方案。
只让海盗使用它的想法给他们带来了麻烦,他们无论如何也不会购买它,并向可能会购买它的朋友展示他们的想法,这是双重的。
借助使用第三方服务的软件,盗版副本占用了宝贵的带宽/资源,这给合法用户带来了更糟糕的体验,使我的软件看上去比以前更受欢迎,并且第三方服务要求我为他们的服务支付更多费用,因为使用的带宽的百分比。
许多随便的人都不会梦想自己破解瑞士法郎,但是如果在piratebay这样的网站上存在容易评估的漏洞,他们会使用它,如果没有,他们可能会购买。
这种一旦发现就不会禁用盗版软件的概念似乎也很疯狂,我不明白为什么要让某人继续使用他们不应该使用的软件,我想这只是盗版者的看法/希望。
另外,值得注意的是,使程序难以破解是一回事,但是您还需要防止共享合法副本,否则,有人可以简单地购买一个副本,然后
通过torrent网站与成千上万的其他人共享它。在许可证中嵌入其名称/电子邮件地址这一事实不足以劝阻每个人这样做,而实际上只需要一个就可以解决问题。
我看到的防止这种情况的唯一方法是:
每次启动时都要让服务器检查并锁定许可证,并在程序退出时释放许可证。如果另一个客户端以相同的许可证启动而第一个客户端具有许可证,则该客户端将被拒绝。这种方式不会阻止许可证被多个用户使用,但会阻止许可证被多个用户同时使用-这已经足够了。它还允许合法用户在其任何计算机上转移许可证,从而提供更好的体验。
在第一次启动客户端时,客户端会向服务器发送许可证,服务器会对其进行验证,从而导致在客户端软件中设置一些标志。来自其他具有相同许可证的客户的进一步请求将被拒绝。这种方法的问题在于,如果原始客户端重新安装软件或想要使用其他计算机,则原始客户端将出现问题。
即使您使用某种生物指纹识别,也有人会找到破解它的方法。真的没有解决的办法。与其尝试使您的软件不受黑客攻击,不如考虑通过添加额外的复制保护来带来多少额外的收入,以及实现它所花费的时间和金钱。在某个时候,采用不太严格的复制保护方案会变得更便宜。
这取决于您的软件产品究竟是什么,但是一种可能性是将程序的“有价值”部分移出软件,并由您独占控制。您需要为该软件收取适度的费用(主要用于支付打印和发行成本),并且可以从外部组件获得收入。例如,以低价出售(或与其他产品免费捆绑在一起)但出售其病毒定义更新服务的订阅的反病毒程序。使用该模型,预订您的更新服务的盗版副本不会造成太大的财务损失。随着“云”中应用程序的日益普及,此方法变得更易于实现;将应用托管在您的云上,并向用户收取云访问费用。这不
几乎所有的复制保护都是无效的,也是可用性的噩梦。其中的一些,例如将root-kit放在客户的计算机上,这是完全不道德的
我同意许多发布者的观点,即没有基于软件的复制保护方案会阻止熟练的软件盗版者。对于基于商业.NET的软件,Microsoft软件许可保护(SLP)是价格非常合理的解决方案。它支持限时和浮动许可证。它们的起价为10美元/月+每次激活5美元,而且保护组件似乎按广告中的说明工作。不过,这是一项相当新的产品,因此请买家当心。
我建议使用简单的激活密钥(即使您知道它可能会被破坏),您确实不希望软件妨碍用户的使用,否则他们只会将其推开。
确保他们可以重新下载软件,我建议创建一个网页,让他们可以在付款后登录并下载软件(是的,他们应该能够直接按期望的次数进行多次下载,而不会出现单个问题)关于您的原因)。
最重要的是,如果您是付费用户,那么只要您是合法用户(DVD的反盗版警告任何人),您就会被指控为犯罪分子,这无非是激怒您的付费用户。
您可以添加一项服务,该服务可以在联机时针对服务器检查密钥,并且如果两个不同的IP使用相同的密钥,则弹出建议购买另一个许可证。
但是请不要停用它,它可能是一个乐于助人的用户,向朋友展示您的软件!!!
如果您是软件开发人员,则可能的解决方案之一是将元数据直接嵌入到您的产品中。从redsunrise中检出实例Destruction Security工具。