WangBooth's Logbook

王布斯的网络日志

0%

软件License设计

我们公司研发的软件在交付给客户之前,需要通过客户服务器上的MAC地址来生成对应的license,以防止客户将软件复制给其他人使用,但其实在虚拟化环境中,服务器的MAC地址是可以轻易修改的,单单通过MAC地址这一项标识物不足以防止软件被复制传播。

今天看到这篇文章里在确定服务器的唯一标识时,用到了硬件CPU、主板、Bios、MAC地址、显卡、声卡等ID,我觉得在ToC领域防止软件被复制传播已经足够了,修改CPUID掩码稍微有些门槛;但在ToB领域,还不足够,因为花10w块去破解100w的软件,成本是划得来的,有些企业是愿意干的。

所以我觉得在ToB领域,防止软件被恶意复制使用的方式,可以配合有下面这几种方式来加强许可策略:

  1. 软件本身定期联网向厂商的中心服务器上报信息,如果长期收不到中心服务器的回应,软件可以限制运行。当然,上报和回应的信息需要作加密,同时需要有法务部门配合,促使非授权客户购买license。
  2. 对于不具备联外网的客户环境,一开始可以不开具无限期的license,每年派维护人员线下更换新的license,可以放在每年的定期巡检工作中执行掉;
  3. 写出一个经常出BUG的软件,让客户不得不主动找你(玩笑,但也是现状)

不过,道高一尺魔高一丈,只要成本允许,license被破解是不可避免的事情,ToB的产品可以尽可能保持产品的功能迭代速度,即便老版本被人破解掉了,新版本的新特性也很可能会让客户心动付费的。