通过加密保护软件

Enr*_*ico 12 .net protection

对于我们的软件,我们使用硬件加密狗来保护软件.没有保护是完美的,但这种商业解决方案是负担得起的,并保持诚实的人诚实(如另一个线程中所述).优点是128位密钥在硬件加密狗上存储"不可读".

我们想要删除此硬件加密狗并开始使用软件保护.基本上我们可以使用商业产品,但另一方面也不会破坏.我对加密知之甚少,这就是我发布这个的原因.如何在Windows计算机上存储无法使用Reflector或其他内容读取的密钥?但是,我应该能够访问用于测试许可证代码的密钥.

我只想要一个简单的解决方案,只需使用Reflector就无法攻击.

或者我问一个非常愚蠢的问题?


谢谢大家的快速和有用的回复.我不想在互联网上使用许可,因为应用程序并不总是在连接的计算机上运行.然后我会得到更多问题然后解决它们.我们现在很可能会寻求商业解决方案.似乎保护不是那么微不足道.

非常感谢!!

Ign*_*ams 17

没有办法完全保护密钥.如果您的程序可以读取它,那么它可以被另一个程序读取.


Mar*_*ham 13

我经营一家处理这个问题近20年的软件公司.作为开发人员和企业主,我想首先鼓励您稍微扩大您的目标.例如,将您的问题定义为"防止盗版"只是一个错误.您的目标应该是实现收入最大化.

话虽如此,有些人根本不会购买你的软件,但可能会做出相当大的努力来免费获得它.他们获得免费副本并将大量资源投入到防止它的努力中并非"公平",这在很大程度上是浪费时间.事实上,这些人通常最终"合法"只是为了获得我们的更新列表,获得支持,或者因为他们的业务发展到他们现在可以负担我们的许可证的程度.在这些情况下,最初的盗版最终会增加我们的收入.

那么,我们如何许可?

我们为每次新安装生成一个随机许可证号码(10K到99K之间的数字很好).然后,我们有一个生成匹配数字的算法(任何非平凡的事情都可以).顺便说一下,我们使用随机数,这样任何在另一台计算机上重新安装的尝试都会产生不同的许可证/匹配号码.

接下来,我们要求用户通过电话与我们联系以获取其许可证的匹配号码(这很重要).软件会查看输入的匹配数字,并将其与用户侧生成的匹配值进行比较.如果匹配,则软件完全激活.

我说让他们给我们打电话很重要,因为我们以此为契机与他们讨论他们的设置,回答任何问题,让他们知道他们正在与真人打交道.很少有人有勇气尝试打电话和冒充另一家公司(我们查看并将他们的信息与我们的购买数据库进行比较).请注意,我们的套餐运行近2千美元,因此电话合理.如果您的套餐成本较低且数量较多,您可以通过电子邮件进行此操作.最后,我们使用call-in告诉用户如何使用新许可获得升级和技术支持.

最后,我们将密钥存储在应用程序的数据库(本地安装的MSDE/SQL Express数据库)中,这样任何复制应用程序的尝试都将是非常重要的,并且B)带来了大量特定于组织的数据.首先购买合法版本(使他们不太可能分享).许可密钥被加密并"分割"成两个不同的密钥,这两个密钥保存在两个不同的表中.因此,简单的"找到密钥并将其输入盗版版本"将无法正常工作.

底线?当您创建整个软件包而不仅仅是软件,构建一些基本的保护机制,并介绍人为因素时,您应该看到您不需要加密狗的费用和麻烦来最大化收入.

  • 您认为我的用户可以"轻松反编译"我的软件吗?VAST大多数计算机用户几乎不能使用*软件.确实,99.99%的人甚至不会理解"反编译软件"的含义.在其他0.01%中,也许百分之一的人会非常关心尝试.其中,可能有一半会成功.我*不*会给我的用户带来99.99995%的不便,以防止最后一小撮人破解应用程序 - 这将是一个可怕的商业决策. (5认同)
  • @Mark 我大体上同意你的观点,但必须反对你的“99.99% 不是黑客”的论点。开发人员错误地认为,由于他们的大多数用户无法进行黑客攻击,因此可以防止被盗。然而,问题不在于您的用户破坏了软件,而是黑客破坏了软件,然后将其分发给所有人使用。这是一个更常见的场景。即使是不倾向于窃取自己的用户也可能会在无数免费下载站点之一中偶然发现被黑的版本,甚至没有意识到他们正在使用被黑的版本。 (2认同)

Vin*_*vic 10

当然,绝对的答案是,坚定而有技巧的攻击者可以打破任何保护,但是,特别是对于没有高度需求或名望的软件,熟练和坚定的攻击者是罕见的,因此采取保护措施是有道理的.

要验证许可证,将密钥发送到中央位置是最安全的方法,因为他们必须破解您的服务器(或协议,注意)以便能够验证.这需要连接才能使用可能或可能不可行的软件.您还可以将"许可证服务器"与软件一起分发,以进行仅需要本地网络访问的大型安装.如果您不能并且必须仅在本地验证,那么您可以在本机代码中编写一个dll,这会使逆向工程变得更难.

为了保护代码本身,并使其保护更难绕过,混淆:

总而言之,您可以从打包的解决方案中获得更好的价值.