软件狗是什么

来源:百度文库 编辑:神马文学网 时间:2024/04/28 20:21:04
软件狗是什么?

软件狗(Software Dog)是一种计算机软件的加密方式,是“硬件加密锁”的俗称。计算机软件天生就有复制成本小、传播方便等特征,所以盗版比较容易,难以保证版权。商业软件开发者为了保护自己的软件版权,往往会设置一些加密措施,让只有购买了这套软件产品的用户才能使用。

一些价值比较高的软件可能会采用硬件加密的方式来保护版权,用户只有在计算机的打印接口(并行口)或者USB口安装相应的硬件时,软件才会正常工作。这种安装在并行口或者USB口的防盗版硬件,就是我们所说的“加密狗”或“软件狗”。软件狗有单机使用、移动设备使用和网络使用三种,但是工作原理基本相同。

在这篇文章中,我们将会了解到加密狗的工作原理和发展历史.所有加密狗的基本工作原理都是类似的:当用户启动或者使用软件时,软件会联络软件狗,并且读取其中的数据。如果软件狗返回正确的数据的话,软件可以正常使用,否则软件将会停止工作,并且向用户显示出错的提示。

从这种原理我们可以看出,如果软件狗要起到不错的加密效果,和被加密的软件的设计是紧密相关的。一般来说,软件读取加密狗的次数越频繁、传输的数据越复杂多样、读取数据的函数越多,破解加密狗的难度就会越大,保护效果也就越好。
从软件狗的诞生到现在,从技术原理上看,已经有了四代产品,而第五代产品也正在逐渐走入人们的视野。最早的软件狗仅有储存功能。在软件狗硬件中储存一部分保密数据,被加密软件在运行过程中随机读取这些数据,并且进行判断。当数据经过验证时,软件认为计算机上安装了正确的软件狗,继续正常运行,否则停止运行。这种软件狗比较简单,一般可以通过跟踪截取软件狗的数据传输,并且通过找出数据规律来破解,破解难度比较低。不过这种软件狗的成本比较低,因此目前还占据了一些市场份额。

第二代软件狗中置入了一些加密算法,这些算法是不公开的。这一代软件狗中一般都会有一个单片机——即相当于一台微型计算机的一块芯片,只不过功能比较单一——通过算法来进行加密。在被加密的软件和软件狗之间建立一个加密协议,软件向软件狗请求数据时,软件狗将数据加密传回软件,软件对其解密,然后加以验证。也就是说,在对使用这种软件狗的数据,即使截取软件狗的数据也没有用,除非能够正确地将这些数据解密。破解者在分析这种软件狗时,一般会对被加密的软件进行跟踪,分析调用了软件狗的函数来找到真正的数据。为了防止这种情况,被加密的软件在设计中也会通过给软件加壳、增加反跟踪代码等方式来应对。

第三代软件狗更进一步,允许软件开发者自己定义加密算法,对其进行编程。也就是说,软件开发者可以把软件狗当成一块磁盘来看待,可以在其中放入程序中的某些模块或者功能,并且对这些模块传输的数据加密。这样,软件相当于在两块磁盘上安装,当运行时两块磁盘相互访问,像一块拼图一样。破解者在获得盗版软件时,只是获得了这两块磁盘中的一块。这种出发点是非常好的,但是因为成本限制,软件狗中的程序可用空间比较小,使用比较受限制。在不同厂商的产品中采用了不同的手段,例如在数据传输的时候添加干扰、设置垃圾程序、频繁地移动数据等等。这一类加密狗比较难破解。

第四代软件狗在第三代的基础上,又安装了一块单片机,用来给传输的数据加密变换。这是比较成熟的软件狗,当有设计良好的被加密软件配合时,破解难度会相当大。

软件狗的发展方向是向智能卡。就像是我们使用的手机卡一样,智能卡内置运算器和存储器,可以用来存放较多的软件代码,并且具有强大的运算和处理能力。随着成本降低和市场成熟,智能卡软件狗将会应用越来越广泛。

虽然理论上并没有不可破解的软件,但是只要破解软件的成本大于破解者可能获得的收益,破解者就不会去破解它。软件狗正是为了增大破解成本而设计出来的一类产品,在这一点上,它和软件防盗版手段并没有本质上的不同。