王丹 张文波
摘 要:密码学是一门古老而又年轻的学科。说它古老,是以为早在几千年前,人类就已经有了通信保密的思想,并先后出现了易位法和置换法等加密方法。因特网的飞速成长为共享软件的快速发展提供了前所未有的机遇,面向各个领域的软件都孕育而生。而软件又因其数字产品的独特属性又使得其复制品可以做到和原品一模一样。每一天,全世界由于软件被盗版而造成的损失不小于9000万美元。软件的盗版问题,已经成让软件业面临着生死存亡的重大考验,而加密手段也就成了唯一的选择。在软件产品的研制成功、推向市场之前,如何进行软件版权保护,防止非法用户盗版,直到现在依然是开发商不断攻关的课题。该文介绍了软件加密的背景和方式。论述了通过硬件信息的方法对共享软件进行加密的原理及方法。
关键词:软件加密 硬件信息 算法 注册码
中图分类号:TP309 文献标识码:A 文章编号:1674-098X(2012)12(a)-00-01
1 软件加密的背景和现状
软件加密方法是20世纪80年代初期在Commodore64,Amiga这样的单机游戏上首先开始试验运行的。随着PC机和DOS系统的兴起,软件产业得到了极速的突破,大量的游戏软件、各种各样的商业软件、办公软件相继问世,而软件加密的理念也随之继承。这一时期的加密办法主要是软盘加密,主要因为在那个时代,软盘是软件流通的唯一载体。
Windows 95的出现终结了DOS一统天下的时代。光盘驱动逐渐成为了计算机的标准配置。光盘加密是软盘加密技术的一种延续,虽然加密技术有所不同,但原理同软盘加密是一致的。常见的光盘加密的方法有SecuROM电子指纹技术、Sony的Key2Audio技术等。
随着Windows XP的普及,计算机开始进入我们现在的互联网时代。当国家和地区的差异不再受到限制以后,一种新的经营模式也应运而生,那就是共享软件。共享软件是一种先使用后购买的销售模式,软件从网站上下载以后直接就可以使用,当用户在使用这个软件一段时间并觉得该软件不错以后,再决定是否购买。这个新的模式直接导致了软件加密模式的改变,软件注册机制就成为了共享软件的主要加密手段。其流程就是用户决定购买软件后通过汇款或者网上支付方式进行购买此软件,而软件开发商会通过网络发给该用户一个注册码,在用户使用了注册码后,才能使用这个软件所有功能。
还有一种办法就是硬件加密,因为硬件是很不容易被盗版的,由于它本身的生产成本很高并且复制有很大的技术难度。所以这个加密办法的目的只有一个,那就是利用硬件的不可复制性,来保证软件的不可盗版。方法是在并口、串口等接口上安装硬件电路,同时有一套使用于各种语言的接口软件和工具软件。这种办法,今天被称为“加密狗”。
2 软件加密后的使用效果
(1)无法运行:在密码没有被通过的情况下,直接退出运行状态。(2)次数或时间限制:一般共享软件会有15 d或30 d的试用期,过了这个期限不能再使用了。(3)功能限制:如果没有注册,在使用时软件只可以使用一小部分功能。(4)水印:使用时,处理完成的文件一般会带有软件开发商的标志,如影片或图片上都有商标一类的水印。
3 加密方案整体设计
3.1 基于硬件信息对软件加密法的研究
用户从网上下载一个软件后,安装时会从用户的机器上取得该机器的一些硬件信息(如硬盘序列号、BOIS序列号等),然后把这些信息和用户的序列号、用户名等进行计算,从而将软件和硬件绑定。用户需要把这一序列号用Email、电话等方法提供给软件提供商,软件开发商利用注册机产生该软件的注册号发送给用户即可以使用。
用户在使用这种方法时,如果想在另一机器上安装并且运行,必须再付一份费用并把软件在这一机器上运行时的序列号,寄给软件出版商购买注册密码。
这种方法的优点是:(1)不同机器注册码不同。用户获得一个密码只能在一台机器上注册使用软件。优于目前大部分软件所采用的注册方式,即只要知道注册码,可在任何机器上安装注册。(2)不需要任何光盘或软盘。(3)可以根据软件供应商的想法自主选择控制软件运行在什么机器、运行次数等。(4)让软件在未注册前运行的功能为演示软件,只能运行一段时间或部分功能。注册后才会成为正式软件。(5)解密者很难探寻到生成注册码的规律。(6)方便使用,价格低廉。
3.2 设计框架
基于硬件信息对软件进行加密,就是要在注册过程中收集相关的硬件物理信息,比如网卡的硬盘信息、MAC地址等。由于网络的普及性,所有的计算机主板上都装有网卡,网卡上的MAC地址是全球唯一性的。根据这些信息计算出来的注册码只能在一台计算机上使用,从而有效地防止了非法注册。
实现这一技术需要四个模块:(1)硬件信息侦测模块:此模块用于读取计算机硬件物理信息。(2)注册状态监视模块:此模块用于判断该用户是否是已注册的合法用户。(3)注册接口模块:此模块用于向用户提供注册接口。(4)远程注册模块:此模块的主要功能是根据用户的硬件信息通过加密算法生成用户注册密码。
具体加密流程如下:(1)运行应用软件,硬件信息侦测模块启动并读取用户硬件信息。(2)硬件信息侦测模块把读取的硬件信息传送给注册状态监视模块,注册状态监视模块根据获得的硬件信息与注册表中的注册标志进行比较,判断该用户是否是已经注册的用户。如果是则软件正常运行,否则激活注册接口模块提醒用户必须注册。(3)用户把硬件信息作为软件授权号通过邮箱或其他方式提交给开发者。开发者接收到用户发送来的授权号,用远程注册模块得出用户注册密码,并发送给用户。该用户接收到开发者发送来的注册码,通过应用软件的注册接口模块注册软件。
4 结语
信息传输的安全是保证计算机网络正常发展的关键问题。实践证明,数据加密技术是解决网络上信息安全传输的重要手段。如今软件加密技术已经衍生出各种各样的结构和理论,基于硬件信息对软件加密只是电子注册方法中的一种,现在已经被广泛的运用于共享软件的注册中。硬加密开始风行,并且成为广泛采用的加密手段。软件狗、加密卡等也成为了解密技术飞速发展的产物。但是加密与解密的斗争将伴随的软件的飞速发展一直继续持续下去。软件加密技术必然在这场没有硝烟的博弈中不断得到发展。
参考文献
[1] 陈爱民.计算机的安全与保密[M].北京:电子工业出版社,1992:223-241.
[2] 王晓华.共享软件加密的一些误区[J].电脑编程技巧与维护,2005.
[3] 飞天诚信.软件加密原理与应用[M].北京:电子工业出版社,2005.