益友软件工作室 - 为您打造功能强大的加密软件产品
加密金刚锁是一款集加密、文件加密、文件夹加密、文件夹隐藏等加密软件技术于一体的安全软件

加密金刚锁相关技术 → 加密类技术文章 → 软硬兼施-给软件加密

软硬兼施-给软件加密

                                  作者 佚名

一些软件开发商为了保护自己的利益,防止自己的软件产品被轻易地复制而被盗版,通常会采取一些必要的加密手段。依据加密原理和方式,目前厂商所采用的加密方法可主要分为两大类:软加密和硬加密。

一.软件加密方式

软加密即是用纯软件方法来实现软件的加密,主要有密码方式、钥匙盘方式、软件自校验方式、光盘加密方式和许可证管理方式等。

1.密码方式是指系统在软件执行过程中的一些重要地方询问密码,用户须依照密码表输入密码,程序才能继续执行。此种方式的优点是实现简单,几乎不必投入成本,但存在着破坏正常的人机对话、密码和加密点相对固定等缺陷,因此主要用于价格较低的软件,如游戏软件等。

2.钥匙盘方式是指在软盘的特殊磁道写入一定信息以便运行时校验。这种软盘就好像一把钥匙一样,所以被人习惯称为钥匙盘。此种方式的加密简便可靠,成本也低,但用户执行软件时软盘驱动器被占用,会给用户利用软盘存取数据造成不便,而且软盘是一种消耗品,很容易因折伤、划伤、磁化、冷热等原因造成损坏。

3.软件自校验方式是指开发商将软件装入用户硬盘时,安装程序会自动记录计算机硬件的奇偶校验和软件安装的磁道位置等信息,或者在硬盘的特殊磁道、CMOS中做一定标记,并自动改写被安装程序,此后软件执行时就会校验这些安装时记录的信息或标记。如果软件被用户拷贝到另外的计算机上,由于运行环境已经改变,软件就不能正常执行了。使用此种方式可使用户在正常使用软件时感觉不到加密的存在,且系统相对比较可靠,已为许多软件开发商所采用。但这种加密方式也存在着一定缺陷,如用户增减或更换计算机硬件、压缩硬盘或出现CMOS掉电等情况都会造成软件不能正常执行,需要重新安装软件,过程繁琐。

4.光盘狗是一种面向光盘软件的保护加密技术。用“光盘狗”加密过的光盘软件,它在运行时首先检测运行码。如果用户输入的运行码和该光盘的物理特征相符,便顺利运行,否则终止程序。利用“光盘狗”对光盘软件进行加密,其安全是可以保证的。有用户担心光盘狗的运行码可能可用穷举法得到。但事实上这几乎是不可能的。光盘狗的运行码共有12位,包括数字和字母(大小写无关),所以每一位有36种变化,这样运行码总共有3612种变化。如果每秒钟能试10种变化,那么穷举全部变化的万分之一也要1502530年。所以说,用穷举法获取运行码是不可能的。此外,光盘狗使用起来也是很方便的,它最适合于那些相对便宜的,100元以下的光盘软件,并且光盘的发行量越大,每张光盘的加密成本就越低。用户可以在同一张光盘上对多个程序加密,也可以同时对安装程序及执行程序加密。

5.许可证管理方式是指软件在安装时,对正版用户的计算机硬件进行检测,以获得计算机硬件的特殊指纹信息,经过算法计算(将指纹信息以及该软件自身的安装系列号进行运算)后得到一个代表这个计算机硬件的一串数据,并要求用户将这个数据通过Internet、E-mail、电话、传真、信件等方式进行注册,若是正版用户则可以从软件开发商那里得到一个注册码(或叫做确认码)。正版用户用这个注册码输入所安装的软件后,该软件就可以正常运行了。这种加密方式实际上是将软件与特定的计算机硬件进行了“捆绑”,用户不能将软件安装到其他计算机上,因为每一台计算机的硬件指纹信息都不相同。这种方式对软件的执行过程没有任何影响,其缺点是软件开发商的服务工作量巨大,据悉专门的注册机来产生注册码将成为主流。Microsoft的Office 2000就已采用这种加密方式。

二.硬件加密方式

与传统的软件加密相比,硬件加密的主要特点是:抗解密强度高,稳定性和兼容性较好。所谓硬加密就是通过硬件和软件结合的方式来实现对软件的加密,加密后软件执行时需访问相应的硬件,其典型产品包括软件锁/狗和加密卡等。

1.软件锁/狗是目前流行的一种加密工具,它是插在计算机并行口上的软硬件结合的软件加密产品。软件狗一般都有几十或几百字节的非易失性存储空间可供读写,并且提供了各种语言的API接口及外壳的加密方式供开发商使用。它具有加密可靠、使用方便等优点,成本相对加密卡来说要低很多。

为了有效地对抗解密,在软件锁/狗的基础上内部增添了一个单片机,故名智能化软件锁/狗,又称微狗。此种产品在软硬件方面都提高了加密的强度。微狗在和软件进行数据通讯时采取了独特的噪声技术,即利用单片机在微狗和软件之间建立一定的通讯协议,当软件对微狗操作时在传输数据中插入大量噪声数据,微狗会依照通讯协议自动将噪声滤掉,而微狗向软件返回数据时同样也是加入噪声的。由于噪声是随机数,所以即使软件和微狗之间发送或返回相同数据时,逻辑分析仪或软件在并口监测到的数据每次都是不同的,这样就无法用软件来仿真微狗。同时,微狗内部还设置了时间闸,当发现模块被跟踪时,就会自动返回错误结果。微狗提供了变换和读写等多个函数,开发商可充分利用这些函数来防止解密者对软件的攻击。如果在软件中只是简单地调用函数读狗,然后马上进行判断,这样很容易被解密者发现。正确的办法是:将读狗函数与判断语句分开,如在主程序读狗、子程序中判断,解密者将难以找到语句间的联系。而更好的办法是根本不去判断狗是否存在,即在程序开始将重要变量的值写入狗中,在使用该变量时将值读出直接使用。此变量可能参与显示或计算,如果狗不存在,变量即会出错,软件执行就会不正常,而解密者也难以查找软件发生错误的原因。

最新的软件加密技术产品当属内置自定义算法的智能型软件锁/狗(或强劲狗),允许软件开发商将自己软件中的一部分程序或算法写进锁/狗中并在锁/狗中运行,使用户软件与外接加密锁/狗之间实现无缝连接,从而使开发商的程序同加密硬件更有机地结合在一起,使得软件开发商的利益得到了更强劲有力的保护。此类产品主要面向对加密强度、兼容性、稳定性有较高要求的软件开发商。

目前生产加密工具的厂商并不是很多,其中在国际上比较著名的有以色列的阿拉丁和美国的彩虹,而在国内则是金天地和深思洛克。需要指出的是,随着硬加密技术的不断成熟和发展,厂商们已将重点转到了硬加密产品的研发和生产上。

2.加密卡是指插在计算机总线上的加密产品,其加密强度较高,防跟踪措施完备,但使用起来不太方便,需要经常插换,而且成本也高,所以一般为系统集成商采用。

以前,国内加密市场主要局限在软件加密,当时业界相当一部分人认为,硬件加密终究会被软件加密所代替。然而,随着国外一些著名的加密厂商如彩虹公司、阿拉丁公司等先后进入中国市场,硬件加密有 了很好的发展势头。

特别申明

本栏目的文章都是本人从网上搜集而来,仅供大家学习研究之用,请不要用于商业目的!其中署名“佚名”的,意思是作者不详。如果某些文章未署你的名字,请来信告知,我会补上的。如果你认为某些文章侵犯了你的正当权宜,也请来信,我会将它删除。