软件程序加密探讨

2014-06-30 17:20姚卫国
都市家教·上半月 2014年6期
关键词:保护加密软件

【摘 要】为了保护知识产权,防止盗版软件的产生,本文主要介绍了软件程序加密的软加密、硬加密两种方法以及加密的工作原理。

【关键词】软件;保护;加密

1 前言

保护知识产权,抵制盗版软件,是目前中国软件业所面临的迫切问题。可是,尽管国家一再加大力度,打击非法软件出版物,扶持正版软件,但实际效果并不理想。眼见着无孔不入的盗版软件对软件市场的侵害,更多的软件商选择了购买加密产品或者加密技术来保护自己的软件。

2 加密方法

根据软件的保护方式,加密方法主要分为硬加密和软加密。

硬加密是在硬件加密锁上固化一些重要的加密信息如加密密钥、敏感数据、授权文件、自定义算法等,当软件程序启动时,计算机读取硬件加密锁上固化的加密信息进行检测,检测通过才能启动软件程序。硬件加密锁从CPU类型来说分两种,一种使用单片机作CPU,另一种智能卡芯片作CPU。单片机硬件本身容易被破解或复制,因此中高端的加密锁越来越多地使用智能卡芯片作CPU,以防止硬件被破解。但智能卡加密锁的破解也越来越多,一是因为芯片分析技术和仪器越来越先进;二是智能卡程序写好后要交给芯片厂去制造,在这个环节程序有可能被泄漏出去,造成大批量复制。

硬加密需要硬件器件加密锁固化加密信息,所以成本较高;缺少了硬件加密锁,软件程序启动时无法读取固化的加密信息,不能通过信息检测,程序无法启动,安全性高。

硬件加密虽然具有比较高的安全强度,但也有不少缺点:

适用于一次性永久授权;

存在硬件的生产、初始化、物流、安装和维护的成本;

安装驱动和客户端组件会影响客户的使用;

难以进行升级、跟踪及售后管理。

软加密是不依靠特别硬件来实现的对软件的保护技术,一般采取序列号或许可证文件的授权方式。软加密并不是对软件的所有信息都进行加密设置,仅仅是在软件安装或运行时进行加密处理。

通常软加密主要有三种实现方式。

第一种软加密方式是软件授权不与计算机硬件特征绑定,具体还分为两种:一是采用与一个软信息,如用户名等绑定的方式,一般用于个人用户授权;二是不绑定任何信息,只要序列号或授权文件验证通过,软件可以在任何机器上使用,通常用于大客户批量授权。授权的验证方式有直接比较、算法变换比较等方式。

第二种软加密方式是软件授权与系统的特征信息、计算机硬件的标识信息绑定,绑定的计算机硬件特征主要有CPU序列号、BIOS序列号、硬盘序列号、网卡MAC地址、计算机名、用户名等信息。这些计算机系统的特征信息和计算机硬件的标识信息的集合统称为计算机指纹。计算机指纹信息类似人的手指指纹信息一样,任意两台计算机的系统的特征信息或硬件的标识信息是不相同的。如:磁盘的分区卷标,不同软件系统的计算机中磁盘分区卷标不同;硬盘序列号,任意两张硬盘的序列号是不一样的。软件程序初次安装时,安装软件会读取相应的计算机指纹信息,安装软件使用用软件开发者在程序中设置的加密算法加密计算机指纹信息生成加密文件,并将加密文件写入到计算机注册表中。当下次启动运行软件程序时,软件程序再次读取相应的计算机指纹信息并采用同一种加密算法将其加密产生密文文件,然后与计算机软件注册表中的密文文件数据进行比较,如果两个文件数据相同则继续运行软件程序,否则停止运行软件。

第三种软加密方式是软件授权与互联网上的授权服务器绑定,是云计算模式的授权方案,也称云授权。云授权的安全强度非常高,甚至比加密锁还要高。这是因为加密锁随软件卖出去后是无法跟踪和监测的,黑客可以花任意长的时间去破解它,而且一旦破解了可以大批量复制。而授权服务器有防火墙和完善的入侵检测技术,任何非法的访问和异常情况都可以监测得到,安全性要高的多。服务器授权也便于实现授权软件的跟踪管理、破解补救和升级更新。

软加密的优点是:

无需依靠硬件加密,加密成本低;

易于管理和维护,有助于提高授权效率;

可以方便实现“先试后买”和“按需购买”,为开发商创造更多赢利模式。

3 两种加密方法的区别

两种加密方式最根本的区别就在于“软”与“硬”上。“软加密”主要是指通过特定的软件算法进行加密,而硬加密作为物理加密技术,其主要是通过芯片对硬盘中的字符、数据进行加密。

其实,软加密一般通过加密软件的方法来实现加密功能,它并不对数据进行转换运算。通过使用加密算法将计算机指纹信息生成密码文件,这需要大量的加密运算,会占用大量的内存资源,加密速度比较慢。而硬加密需要将保护的数据转换成不可识别的数据模块。在现有的操作系统中进行加密,可直接对硬件加密锁中加密文件进行读取,无需大量的加密运算,加密速度相对较快。

第三,虽然硬加密比软加密的加密成本高,但硬加密技术更安全、更可靠,比较适用于科研院所、部队、机关、财务、各行业设计人员、个人及网络用户进行数据交换、移动办公、保密数据存储、备份等。同时,硬加密具有简单、易用、智能化的特点,将会是未来加密技术的发展趋势。

4 总结

软件加密技术是软件保护的主要安全保密措施,是最常用的安全保密手段。软件加密可以有效的防止软件被盗用,维护软件开发者的知识产权,保护软件开发者的经济利益。

参考文献:

[1]魏会君.软件的加密保护技术探讨[J].石油工业计算机应用.2002,2:40—41.

[2]魏会君.软件的加密保护技术探讨[J].石油工业计算机应用.2002,2:40—41.

[3]刘红敏,尹志喜.计算机指纹生成技术研究[J].华北工学院学报.2004,25(1):46—48.

作者简介:

姚卫国(1978~),男,陕西西安人,本科,讲师,计算机控制技术。

猜你喜欢
保护加密软件
禅宗软件
一种基于熵的混沌加密小波变换水印算法
软件对对碰
刍议增强林业生态环境保护的有效途
浅谈遗址公园的保护
认证加密的研究进展
基于ECC加密的电子商务系统
谈软件的破解与保护
基于格的公钥加密与证书基加密
丰富多彩的Android软件