为实现销售利润的最大化,软件开发商需要通过软件加密来实现软件的按购买内容授权,另外软件开发商还使用某种加密技术来保护其软件,以防止非法使用。
软件加密技术根据是否使用专用的硬件设备分为基于硬件的加密方式和基于软件的加密方式。基于硬件的加密方式是指加密需要与一个专用的硬件设备绑定,目前主要的硬件加密方式是加密锁,俗称加密狗。基于软件的加密方式是指不需要专用硬件设备的加密方式,一般采用与终端设备软硬件信息绑定的数字许可证,也称电子授权形式。
单纯认为基于硬件的加密方式比基于软件的加密方式安全是不正确的,因为软件的安全性涉及的内容比较多,包括加密产品的安全性、加密策略的设计、应用软件本身、操作系统、驱动、硬件、数据通讯等等,是一个综合的技术范畴,不能够简单地由某个方面来断定其是否安全。
在国外,电子授权和加密锁的市场占有率是旗鼓相当。因为使用习惯和历史原因,加密锁目前还占有一定的市场份额。但是,加密锁是网络不发达时代的产物,是一种纯客户端的技术,缺乏管理和统计功能,硬件的存在也带来了生产、物流、驱动安装等诸多不便,不仅成本高,而且无法实现软件的网络化发行和销售,正在逐渐走向衰落。
而目前电子授权的发展可以说是方兴未艾。电子授权保护方式越来越多融入互联网技术、云计算技术和SaaS理念,不仅更加方便使用和管理,而且能够实现软件电子化发行,又符合当今绿色低碳的发展理念,大有取代加密锁独占软件加密市场的趋势。世界上比较著名的公司,Microsoft、IBM、Autodesk、SIEMENS、Adobe等,使用的都是电子授权软件保护方式。
在国内,软件开发商使用加密锁的比率较高,除了与国外相同的使用习惯和历史延续的原因外,还有以下两个原因:
1.国内厂商普遍认为,加密锁比电子授权安全。
2.国内没有可用的电子授权产品,国外电子授权产品的价格又太高。
实际上,随着网络环境的日益改善,联网激活对大多数国内用户来说已经不是问题。而且前面也提到了,认为加密锁比电子授权安全的观点是偏面的、不正确的。从现实情况看,加密锁更容易通过硬件复制来破解,而且已经形成了完成的盗版产业链。反而是电子授权方式因为没有硬件无法复制,又需要网络激活和验证,实际上具有非常好的保护效果。另外,国内也已经出现了一些提供电子授权产品的公司,他们中的2-3家公司一定会随着中国软件行业的发展而成长和壮大起来。
所以,软件加密行业的发展趋势是无硬件化、网络化和信息化。下面,我们从软件加密方法说起,具体阐述一下软件加密行业的现状和发展趋势。
一、软件加密方法
前面提到过,软件加密技术分为基于软件的加密方式和基于硬件的加密方式。
1.基于软件的加密方式
基于软件的加密方式主要是电子授权技术,具体还分为注册码和许可证文件两种:
注册码也称为序列号或授权码,通过对软件用户计算机软硬件信息的某种变换得到,可用的软硬件信息包括:CPU序列号、BIOS序列号、网卡号、硬盘序列号、计算机名称等。使用的变换算法有自定义算法或标准的加密算法等。用户在软件安装过程或第一次使用前,需要输入注册码进行验证。验证通过后,软件就可以正常使用了。注册码保护方式的优点是使用简单,缺点是安全性不高、无法实现复杂的授权需求。
许可证文件和注册码绑定的计算机软硬件信息相同,只是注册码由于长度限制只能使用一两个软硬件信息,而许可证文件可以使用多个软硬件信息。而且,许可证文件可以包含更多的信息,因此可以实现复杂的授权需求,甚至可以存储一些用户信息。典型的许可证文件实现方法是使用非对称算法的私钥对许可证文件进行签名,而公钥嵌在软件代码中。因为加解密过程不对称,私钥又存在授权服务器上,所以很难通过分析授权文件进行破解。
电子授权保护方式的优点是不需要额外的硬件设备,因此也不需要安装驱动和客户端组件,可以实现软件的电子化发行。电子授权保护方式的缺点是对不能联网的用户,需要手工提取计算机信息,获得注册码或许可证后再手工导入,使用上不是很方便。另外,国内提供电子授权产品的开发商寥寥无几,这也限制了电子授权保护技术的普及和推广。
2.基于硬件的加密方式
基于硬件的加密方式主要是加密锁,一些重要信息,如加密密钥、敏感数据、授权文件、自定义算法等都可以存储在加密锁中。
加密锁从接口形式分为并口和USB口两种。并口是早期的使用的形式,因为插拔不方便和与打印机冲突,现在已较少使用。目前大多数开发商使用的都是USB接口的加密锁。
加密锁从CPU类型来说分两种,一种使用单片机作CPU,另一种使用智能卡芯片作CPU.单片机硬件本身容易被破解或复制,因此中高端的加密锁越来越多地使用智能卡芯片作CPU,以防止硬件被破解。但智能卡加密锁的破解也越来越多,一是因为芯片分析技术和仪器越来越先进;二是智能卡程序写好后要交给芯片厂去制造,在这个环节程序有可能被泄漏出去;三是同一品牌的加密锁,CPU程序是相同的,不同的只是开发商数据和密钥等,如果这些文件流传出去,是很容易复制的。
加密锁虽然具有一定的安全强度,但也有不少缺点:
1)适用于传统的一次性永久授权,无法方便实现试用版本和按需购买
2)硬件的存在带来了生产、物流、安装和维护成本
3)无法实现基于互联网的电子化发行、升级、跟踪和管理
4)一旦被破解,就可以大批量复制,难以补救