常用的软件保护技术

作者:张顺
日期:2010年12月26日
原创文章,转载请注明来自 [
http://www.justcodeit.info/ ]


软件保护是为了保护软件不被破解,不被盗版,充分保护开发者的利益。下边我尽量以浅显易懂的语言一一介绍目前流行的软件保护技术,并分析各自的特点。

1.   注册码技术

这是一般共享软件所常用的保护技术,当用户从网络上下载某个共享软件后,一般都有使用时间或功能上的限制,如果想使用正式版,你必须进行注册。注册过程一般是用户掏过钱且把自己的信息(例如用户名等)告诉给软件公司,软件公司会根据用户信息计算出一个注册码(或授权文件),在用户得到这个注册码后,按照注册需要的步骤在软件中输入注册信息和注册码,其注册信息的合法性由软件验证通过后,软件就会取消掉本身的各种限制。在互联网上的软件80%都是以这种方式来保护的,国内http://www.sharebank.com.cn/就是提供共享软件注册服务的一个平台。
      优点:实现起来简单,成本较低,用户购买非常方便
      缺点:
            1. 不能有效防止一号多用的情况 (除了根据机器ID计算注册码的情况)
            2. 安全系数一般, 因为理论上验证程序一旦被cracker解密,则可以很容易地做出注册机,或是直接修改汇编指令跳过验证程序。

2.   序列号技术

     这是很多光盘发行的软件所采用的保护技术,在发行光盘上会提供一个正版序列号,在安装过程中用户输入正确的序列号后才可安装成功。常见的MS-Office就是使用这种保护方式的。
      优点:实现起来简单,成本较低,销售模式简单
      缺点:
             1. 在安装时很难检测一号多用,想想到处盗版的Office就知道了。
             2. 采用这种方式的安装程序一般自身会携带一个密钥库,理论上是可以被破解的。

3.   加密狗

      加密狗是一种复杂的软硬件技术结合在一起的加密工具。软件在插入加密狗的机器上才能运行,例如我在使用建行网银交易时必须插入建行U盾,这个U盾实际上就是一个加密狗。真正有商业价值得软件一般都用加密狗来保护。
      优点:很安全,破解难度相当高
      缺点:
             1. 开发成本和硬件成本相当高,最普通的加密狗也要上百元
             2. 使用不方便,想使用时还必须插入一个加密狗

4.   联机验证
      这种技术是为了弥补序列号或注册码技术的不足而诞生的,例如为了防止一号多用,可在注册时或运行时不定时通过服务器端验证是否合法授权,是否存在一号多用的嫌疑。现在的授权管理的行业标准解决方案多数是基于此,例如RosettaStone、ProE、AutoCAD都是使用Flexnet Publisher的解决方案。
      优点: 较注册码和序列号方式安全,可灵活定制授权模式(浮动模式和命名用户模式等)
      缺点:
              1. 需要网络和服务端支持
              2. 和服务端通信的通道必须是加密的,例如采用SSL

5. 法律保护

      上边几条都是基于技术层面的,最后不得不提一下,法律保护的重要性,在软件里要写明版权声明,最好是申请软件著作权。据说MS在中国的主要收入来源是打击盗版,法律保护的重要性,你懂的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章