一、软件加密方法
前面提到过,软件加密技术分为基于硬件的加密方式和基于软件的加密方式。
1.基于硬件的加密方式
基于硬件的加密方式主要是加密锁,一些重要信息,如加密密钥、敏感数据、授权文件、自定义算法等都可以存储在加密锁中。
加密锁从接口形式分为并口和USB口两种。并口是早期的使用的形式,因为插拔不方便和与打印机冲突,现在已较少使用。目前大多数开发商使用的都是USB接口的加密锁。
加密锁从CPU类型来说分两种,一种使用单片机作CPU,另一种使用智能卡芯片作CPU.单片机硬件本身容易被破解或复制,因此中高端的加密锁越来越多地使用智能卡芯片作CPU,以防止硬件被破解。但智能卡加密锁的破解也越来越多,一是因为芯片分析技术和仪器越来越先进;二是智能卡程序写好后要交给芯片厂去制造,在这个环节程序有可能被泄漏出去;三是同一品牌的加密锁,CPU程序是相同的,不同的只是开发商数据和密钥等,如果这些文件流传出去,是很容易复制的。
加密锁虽然具有一定的安全强度,但也有不少缺点:
1)适用于传统的一次性永久授权,无法方便实现试用版本和按需购买
2)硬件的存在带来了生产、物流、安装和维护成本
3)无法实现基于互联网的电子化发行、升级、跟踪和管理
4)一旦被破解,就可以大批量复制,难以补救
2.基于软件的加密方式
基于软件的加密方式主要是电子授权技术,具体还分为注册码和许可证文件两种:
注册码也称为序列号或授权码,通过对软件用户计算机软硬件信息的某种变换得到,可用的软硬件信息包括:CPU序列号、BIOS序列号、网卡号、硬盘序列号、计算机名称等。使用的变换算法有自定义算法或标准的加密算法等。用户在软件安装过程或第一次使用前,需要输入注册码进行验证。验证通过后,软件就可以正常使用了。注册码保护方式的优点是使用简单,缺点是安全性不高、无法实现复杂的授权需求。
许可证文件和注册码绑定的计算机软硬件信息相同,只是注册码由于长度限制只能使用一两个软硬件信息,而许可证文件可以使用多个软硬件信息。而且,许可证文件可以包含更多的信息,因此可以实现复杂的授权需求,甚至可以存储一些用户信息。典型的许可证文件实现方法是使用非对称算法的私钥对许可证文件进行签名,而公钥嵌在软件代码中。因为加解密过程不对称,私钥又存在授权服务器上,所以很难通过分析授权文件进行破解。
电子授权保护方式的优点是不需要额外的硬件设备,因此也不需要安装驱动和客户端组件,可以实现软件的电子化发行。电子授权保护方式的缺点是对不能联网的用户,需要手工提取计算机信息,获得注册码或许可证后再手工导入,使用上不是很方便。另外,国内提供电子授权产品的开发商寥寥无几,这也限制了电子授权保护技术的普及和推广。
二、软件加密行业发展现状
1.加密锁
国外主要的加密锁提供商有美国的SafeNet公司和德国的Wibu公司。
国内主要的加密锁提供商是深思洛克和飞天诚信。这两家公司因为产品价格低、抢先推出智能卡加密锁、本地化做得好而在国内占据一定市场。
2.电子授权
国外提供电子授权产品的公司有Flexera Software和SafeNet.其中,Flexera Software专注于电子授权领域,产品的易用性和功能做得比较好,但产品的价格也非常高。
国内提供电子授权产品的公司有北京比特安索(BitAnswer)、深圳易用(Euse)和Safengine公司。
也有极少数的公司会自己开发电子授权方案,但开发商自己开发的方案通常都会存在以下几个问题:
1)非专业人士开发,安全性上存在很大漏洞
2)难以实现灵活的授权控制,管理和统计功能也非常简单或者没有
3)很可能是为了解决眼前的问题而推出的短期方案,并在今后因安全性、稳定性和可扩展性等问题产生远远超过预期的持续投入
4)不能适应市场的快速变化所带来的对软件授权模式的新需求
三、软件加密行业发展趋势
软件加密行业的发展趋势与软件行业的发展趋势密切相关。随着云计算和SaaS的流行,软件产品的提供方式正在向着网络化和平台化的方向转变。对广大软件开发商而言,使用SaaS产品不仅可以节约大量的软硬件购买和维护成本,还可以实现按需购买,在降低使用风险的同时,也迫使平台提供商不断完善产品和提升服务,以留住客户。
向着网络化和平台化发展也是软件加密技术的发展趋势。就目前的发展态势来看,加密锁技术已经发展的非常成熟,市场也已接近饱和,增长缓慢。硬件的存在和使用习惯的原因使得加密锁无法跟上互联网时代的发展步伐,必将被电子授权方式所取代。
电子授权技术正在经历从早期的注册码形式向功能丰富的许可证文件形式的转变,验证方式也从离线手工验证发展为自动网络验证。特别是授权管理思想的提出,使电子授权技术从单一的软件授权认证发展为授权认证、授权管理和信息统计等多种功能兼备,大大提高了软件开发商的授权信息化水平。
可以预测,未来的电子授权产品应该具有以下主要特征:
1.统一的授权管理平台:由专业的第三方安全软件开发商提供的、基于互联网的一站式软件保护和授权管理平台,无需安装和维护,成本低,易于使用。
2.灵活的授权方式:支持传统客户端软件的授权和云计算模式软件的授权;可以按时间、次数、功能模块进行授权;授权可以绑定计算机软硬件信息、加密锁,或者通过用户名密码验证方式进行授权。
3.简单友好的使用体验:基于WEB,可随时随地访问;用户可以自助购买、激活和更新软件,可以随时了解自己购买软件的相关信息;软件开发商可以了解软件的激活信息和用户信息,可以通过组织成员协同完成软件的授权设计、实现、管理和维护等工作。
4.云授权模式:这是一种云计算模式的软件授权。传统的软件是纯客户端实现的,授权也在客户端。虽然云计算是大势所趋,但由于转变难度大,对传统软件进行一定程度的云计算改造不失为一个好方法。具体的实现思路是,只将软件的授权从客户端转移到云授权服务器上,这样对软件的改动很小,却可以即刻享受云计算带来的好处:高安全强度、按需购买、云存储。