软件许可的设计与实现

   我们的产品马上又有2个用户了,并且是外部的客户,说明我们的花已经在墙外香了,高兴中~~~~~
        但是马上面临的问题是,如何对软件的许可进行相应的限制,虽说是合作伙伴,但是防人之心不可无啊,并且许可问题是产品商业化的必由之路。

         但是许可也是很难做的,从理论上说,没有软件是可以被安全保护的,都可以被破解,只是破解的难度而已,何况我不是专业人士。特别是对国内的用户,还对盗版破解的软件有天生的好感,所以做软件许可保护的时候要尽量简单易用。

       制定软件许可方案主要分为四个部分:

1.  许可信息的设置;

2.  许可信息的读取;

3.  许可信息的修改。

4.  许可保护方式泄密后的补救。

1.1.1        许可信息的设置

用户安装平台的相关产品之后,需要在安装目录中运行相应的注册机程序,注册机会要求用户提供相关的许可文件,如果用户选择试用,那么注册机会在注册表和应用程序的Config中写入注册信息,并标明截至日期。

系统用例图如下所示:

试用:可以设置120天的试用期限,系统只有注册了之后才能使用,否则不能使用。注册之后,试用期满,系统将不能继续使用,除非用户申请延长试用或者购买正式许可,否则不能使用。

延长试用期限:用户在延长试用期限时必须先申请,通过注册机的申请功能可以申请试用,注册机会生成一个申请文件,用户需把该文件通过邮件或者其他方式发送到许可管理员,通过审核后,许可管理员会生成一个许可文件,发送给用户,用户使用此许可文件再注册可以延长软件的使用。

正式使用:用户通过注册机生成申请文件并发送到我们,我们根据双方签订的协议生成许可文件,用户用此许可文件再进行注册即可。

注意:该许可文件只能为一台服务器使用。

21设置许可信息的用例图

1.1.2        许可信息的读取

我们会有一个专门的组件负责许可信息读取,系统的所有所有关键组件都处于该许可组件的保护之下。当这些关键组件第一次被使用的时候,许可处理组件会读取配置信息中的许可信息,并判断系统是否被许可。许可信息被处理后就被缓存到内存中,以提高性能。当系统许可不被允许的时候,系统会终止对关键组件的调用,用户将不能使用系统,直到许可期限被延长或者被正式许可文件许可。

1.1.3        许可信息的变更

许可信息发生变更的时候,用户必须提出申请,原有的许可将不被提供服务,也不负担相应的责任。

当许可信息发生变更的时候,原有的系统必须卸载,才能在其他的地方安装相应的许可。用户必须按照新系统的硬件环境重新申请许可,并进行许可注册。

1.1.4        许可保护方式发生泄密后的补救

许可保护方式发生泄密之后,应及时的修改系统加密方式,并制定原有加密Key向新加密方式迁移的算法。新的注册机和Key值迁移可以通过系统升级工具一并进行,让用户在不觉察的情况下实现许可保护的升级。

这个还需要有很好的用户许可管理制度,每个用户的许可信息在公司内部必须有很好的保存。

posted @ 2005-11-03 17:30  navyliu  阅读(943)  评论(2编辑  收藏  举报