为了不让别人随便复制许可证到别的电脑上用,一般会用Obsidium硬件锁定这个功能,主要是让许可证跟某一台具体的电脑死死地绑定在一起;这种方法在单机版授权、公司给指定电脑授权、或者是试用版限制时间等情况里经常用到。Obsidium本身算是一个Windows系统下的程序保护和许可系统,它自带的安装包里其实就包括了保护SDK、一些例子还有说明文档,不过我们在实际操作配置的时候,还是建议大家去对照自己项目版本对应的文档来看。
一、Obsidium硬件锁定怎么设置
其实硬件锁定的原理听起来不复杂,首先得从客户的电脑上面把硬件ID给获取出来,接着需要将这个硬件ID放到许可证的规则里面去,最后在受保护的程序运行的时候,让程序去读取这个许可证,并且检查一下当前的设备和它是不是一样的。
1、先确定硬件绑定策略
我们在刚开始做的时候,千万不要一股脑把所有的硬件信息全都绑上去;比较保险的办法是,先去看看这个软件到底是怎么卖、怎么交付的。
如果是卖给个人的单机版本,那就可以把设备绑得稍微紧一点;但如果是卖给企业客户的,尤其是那种经常要换电脑、经常重装系统的公司环境,就得把规则放得宽松一些,比如允许一部分硬件发生变动;要不然的话,虽然授权看起来确实变稳固了,但是后面找过来的售后麻烦事也会跟着变多。
2、让程序生成或显示硬件ID
搞硬件锁定的时候,通常要在客户的电脑里先跑一个工具,或者直接让被保护的软件自己把硬件ID显示出来;等客户把这个硬件ID发给我们之后,做软件的供应商才能根据这串ID把许可证做出来。
在这个过程当中,我们最好在软件的界面上做一个【复制硬件ID】的按钮,这样就能省得让客户自己去截图或者手打输入了;因为硬件ID只要少抄了一位,或者不小心多打了一个空格,后面做出来的License可能就没办法用了。
3、在许可证生成时写入硬件ID
把硬件ID拿到手之后,在生成许可证的工具里面,我们得把它当作一个授权的字段给填进去;Obsidium Licensing SDK这个东西,它也支持把硬件ID、快到期的时间、还有开启的功能这些数据都安全地存在许可证密钥里,而且它还提供了一个可以选的硬件锁定库;这个SDK跟Obsidium Software Protection System其实是两个不一样的产品,比较适合那种需要跨平台、或者是不需要完整的二进制保护的授权情况。
二、Obsidium硬件锁定换设备后怎么处理
当客户把设备换了之后,他们原来的硬件ID一般都会发生改变;只要许可证是和以前的旧硬件ID绑在一起的,那么在新电脑上面自然就会弹出来提示说许可证没有效果了;这其实不是什么系统异常,而是硬件锁定机制本来就会产生的自然结果。
1、先判断是“换设备”还是“硬件变化”
在接到客户反映的这个问题之后,我们先不要急着去把许可证重新生成一遍;可以先去把原因问清楚:到底是把整台电脑都换掉了,还是只是把系统重装了、或者是换了硬盘、换了主板、换了网卡。
2、收集旧许可证信息和新硬件ID
在办理换设备的时候,我们至少要让客户把旧的许可证编号、客户的名字、原来的软件版本、新设备的硬件ID以及换电脑的原因都提供过来;千万不能只听到客户说一句“我换电脑了”,就直接把新的证书发过去。
3、停用或归档旧设备授权
如果按照合同的规定只允许在一台设备上使用,那么在把新的许可证重新生成出来之前,应该先把旧设备的授权在系统里标记成停用或者是归档;就算我们没有那种在线的授权服务器,也得在内部的记录里面把“旧的硬件ID已经废弃,新的硬件ID已经启用”给写清楚。
4、重新生成绑定新硬件ID的许可证
把换机的信息都核对确认好之后,就可以用新的硬件ID去把许可证文件重新做出来了;在这里需要注意一下,许可证里写着的其他授权条件千万不要随随便便去改,像是有效的时间、授权的模块、客户的名字、还有软件版本的范围这些,都应该跟原来的合同保持一模一样。
三、硬件锁定管理中容易忽略的问题
硬件锁定这个事情表面上看起来好像只是一个技术上的配置问题,但其实真正让人感到头疼的地方,往往是在后期的交付和售后的管理上面;我们在配置的时候要是能多往前想一步,后面就能少去处理很多重复的麻烦事。
1、不要把硬件规则设得过死
要是把绑定的对象定得太多了,软件确实是不容易被别人随便迁移了,但客户在正常保养维护电脑的时候也很容易被误伤到;比方说换个硬盘、把主板升级一下、把网卡禁用了、或者是在虚拟机里做迁移,这些操作都有可能让硬件ID发生改变。
2、许可证文件和软件版本要对应
有时候硬件锁定失败了,其实并不是设备本身出了问题,而是软件的版本和许可证的版本对不上了;比如客户把新版本的程序升级了,但是手里的License还是用的旧版本,又或者是我们在内部做许可证的时候把产品的版本给选错了。
3、错误提示要能区分原因
很多软件一遇到授权的问题,通通都只提示一个“License Error”,这不仅对客户不好懂,对我们做技术支持的人也很不方便;所以建议大家至少把提示分成好几类:找不到许可证、许可证的格式不对、许可证过期了、硬件ID对不上、还有功能模块没有被授权。
总结
总的来说,要把Obsidium硬件锁定给设置好,关键的地方是在于把采集硬件ID、做出许可证、程序进行检查以及交付的记录这些环节全部串联在一起,而不是光在软件里勾选一个绑定的选项就完事了;当客户换了设备之后,我们也千万别随随便便就把旧的许可证继续发过去,而是应当把新的硬件ID收上来,把换电脑的原因确认好,把旧的授权归档掉,然后再去做出一个绑定了新设备的新许可证;这样搞的话,既把正版的授权给保护好了,也能让客户在正常换电脑、重装系统和维护设备的时候,有一套清清楚楚的处理流程可以跟着走。