为南昌市民提供专业光盘制作!
返回首页
添加收藏
关于我们
  光盘制作首页光盘百科 |   政策法规 |   行业动态 |   光盘压缩 |   光盘加密 |   发布信息  
此信息由南昌百姓网提供
软件保护系列知识(082)
【作者】:南昌光盘制作   【添加时间】:2007-8-4 10:17:18  

 

  加密,在计算机领域中已经不是一个陌生的词汇。但是由于软件加密产业的特殊性,使得一般电脑爱好者无缘更多的了解相关知识,而给"加密"蒙上了神秘的色彩。在我参加的一些展览会上,总有好奇的观众问:"你们的加密狗是病毒吗";"加密狗是不是可以解掉其它的加密锁"等有趣的问题。显然,广大电脑爱好者、初学者对加密有着十分强烈的兴趣,但又难以对其有个正确、全面的认知。
  说起软件加密,就要先从软件说起。我们知道,计算机软件是一种特殊的商品,其中特殊的一点就在于它的易复制性。由于计算机软件信息存储的是数字信号而不是模拟信号,因此,复制后的软件运行起来是与原版软件分毫不差的,而不会象磁带复制后会出现信号衰减。盗版软件的出现,正是利用了这一特点。可是,毕竟软件不是从天上掉下来的,而是软件开发设计人员智慧的结晶。如果商品软件被非法复制盗版,将不可能为它的版权所有者带来任何利益。试想,若软件开发者辛辛苦苦开发出的一套软件刚刚上市,就出现了盗版,将会让他血本无归。深远一点说,盗版的出现,必然严重影响软件行业的健康发展。
  出现盗版的原因不外乎两点:
  一是开发者不重视加密工作,这种情况包括:软件成本较低,软件商认为没有必要投入较高代价进行加密,比如一些游戏软件;软件为通用型软件,发行量大,升级快,软件商认为解密者难以跟上软件升级的速度而不注意加密,比如一些教学软件;软件很专业,用户必须依靠购买正版软件来得到必要的服务,软件商认为软件即使被解密也没有市场,比如一些财务软件、专用软件。   二是软件商尽管做了加密工作,但选择的加密产品性能不好,可靠性不够高;或者软件商过分依赖加密产品而忽视了自己应做的必要工作。虽然软件商已对降低软件的价格做了很大努力,但对广大用户来说正版软件还是贵了一点。而目前我国的软件保护法制还很不健全,人们的法制观念也比较淡薄,于是一些不法分子便瞄准了这个市场,而软件商对加密的忽视恰恰给了不法分子可乘之机。一套价值上千元的系统软件盗版后只卖十元,而且还附带数百兆以上各类优秀软件,的确太吸引人了,对于普通消费者,谁还会再去购买正版软件呢。所以软件开发者应提高自我保护意识,重视并做好软件加密工作,保护自己的合法权益。


现将把软件市场上常见的一些软件加密保护技术,逐一向各位读者讲来。
  首先,为了方便大家理解,我们要先把加密技术分个类,即分成 软加密 和 硬加密 两类。软加密,是一种纯软件的保护技术,它通过在程序中使用一些独特软件算法或其它手段来验证使用者的合法性,软加密技术不需要额外的硬件支持。硬加密,顾名思义是一种需要特别硬件支持的加密技术。由于硬加密所依赖的硬件不象软件那样有易复制性,所以从理论上讲,它比软加密更可靠一些。
  当然啦,有得就有失,硬加密好,但价格贵,一套单机版硬加密产品,国产的要几十元到一百元左右,进口的大多要两百元以上。而软加密技术,尽管加密力道不是太足,但是成本便宜。很多软件商,本着"做了加密就比不做强"的原则,纷纷采用了各种软加密技术。
  用过Windows95吧?还记得在安装它的时候,它会在一开始问你要一串密码,如果你敲的对,程序才许你继续安装下去,否则只好退出。这就是软加密的一种,我们姑且称它为密码方式。小声说一句,千万别告诉我你买的时候,所有的Windows95都用同一个序列号,因为那是盗版软件的标准形象。
  也有一类软件,它在运行前会要求用户注册。用户要将所选用户名传给软件商,软件商将用户名通过一套算法换算成一串密码。然后用户将用户名和这串密码一起在软件运行时注册。软件中有相应的检测程序检查用户名与密码匹配无误后,软件即可正常运行。然而,假如非法用户不介意自己的用户名的话,那么他只要找到一个注册用户,就可以把他的用户名和密码照搬过来用。一些标榜"注册码大全"的网站,也是通过这种方式损害着合法软件商的利益。于是很多软件商不得不频繁升级,变换更多的加密算法和具体加密方式,以摆脱盗版者的追赶。
  总的说,属于软加密的密码方式就是在软件执行过程中在一些重要的地方询问用户密码,用户依照用户手册或者密码表输入密码,程序才能继续执行。此种方式实现简单,几乎不用投入成本。但也存在以下缺点:破坏了正常的人机对话,容易让正版用户感到厌烦和不便;密码相对固定,非法用户只需复制原版软件及其密码,就可以非法使用该软件;加密点比较固定,软件容易被解密。密码方式主要用于价格较低的软件,早期的很多软件就采取了此种方式。

结果发现,那种方式真的有点天真,可谓"防君子不防小人"。于是,为了获得更好一点的保护效果,软件专家们绞尽脑汁,又琢磨出一种挺特别的软件加密技术。这种加密技术我们称之为"软件自校验"技术。
  大家知道,软件是不能独立运行的,计算机的硬件系统是软件发挥才能的舞台。组成计算机硬件系统的各个成员,如CPU、主板、显示卡、硬盘等都在软件运行中扮演着必不可少的重要角色。出于各种考虑,比如生产、服务、防伪的考虑,计算机系统中的许多硬件都包含有系列号(或者叫做特征码)。硬件厂商可以通过特定的软件或者仪器检测到硬件的系列号。 软件自校验的加密技术正是利用了硬件中的可提取的系列号,来作为加密中验证的特征,以实现保护软件的目的。例如,某类采用软件自校验加密的软件在其向硬盘安装的过程中,它会自动扫描和记录机器中的许多硬件的系列号,并把这些系列号以一定方式写进安装好的应用程序中,使得计算机硬件特征成为软件运行的必要条件。于是,安装好的软件一但被拷贝到其它计算机中,那么新的硬件环境将与该软件的原环境有所不同,结果特征校验不符,软件不能正常启动运行。我见过UCDOS软件就曾有过类似的功能。可是,如果正版用户把安装盘借给他人使用,则借用者实际成为了非法用户,而软件商却不能控制。
  以后,由软件自校验方式演变而来的加密方式也有一些,比如现在有一种软件,它在安装后,产生一个文件,需要由用户将文件传递给软件商,这个文件中就包含了计算机的硬件特征信息。软件商收到这个文件后,相应的回送给正版用户一个注册码,用户用注册码注册后,软件就成为了正版注册软件。如果不注册的话,软件安装后实际上是试用版,在一定时间后,自动停止运行,提示用户注册。这种方式解决了安装盘借用的问题,因为软件商对每一个注册用户都有记录,相同的安装软件,如果同时被多人注册,则传来的针对同一软件的信息文件内容不同,那将被软件商发现。
  可见,软件自校验方式的加密,比起上一期提到的密码方式更加安全。但是,有利就有弊,这种加密方式带来的副作用也不可小视。那就是,用户不能随便升级或更换计算机硬件。因为用户一但改变了机器硬件配置,就将与软件记载的硬件校验信息不符,将使软件拒绝运行。于是,在这个升级发烧成风的电脑社会中,稍一动硬件,就要把软件重装或者向软件商重新注册,将是一件极为让人恼火的事。
下面将介绍一种加密方式,是我们现在依然常见的-"钥匙盘"。


 “锁"和"钥匙",是软件加密保护技术的基本设计思想。在软件中预先设置一个或多个"锁",然后给予合法用户开启这些"锁"的"钥匙",于是软件在验证"钥匙"正确后,可以正常运行。实际上,我们以前说过的密码、电脑硬件特征信息,以及我们以后会讲到的"加密狗"等,都是在不同加密方式下的"钥匙"。
  钥匙盘是从磁盘的结构特点考虑来制作的。我们知道,新的磁盘在使用前,都要被以一定方式"格式化",格式化后的磁盘才可以存储数据。比如常规情况下,一张3.5英寸软盘格式化容量为1.44M,它的每一面被划分成80磁道(同心圆),每磁道18扇区。数据被存放在这些磁道扇区上,在读取数据时,也会以这些磁道扇区为基准进行检索。一般情况下,相同格式化后的磁盘间的数据可以相互拷贝,因此,也就容易发生软件被非法使用的情况。
  钥匙盘在磁盘上创建并使用了非标准的磁道或扇区,并且在这些特殊位置上存放了一些特别信息,在软件运行时,程序会驱动磁头寻找特殊磁道扇区,并读取校验那些特别信息,如果正确,程序才可以继续运行。显然,这些位置是隐蔽的,不能被一般的拷贝软件复制,否则就没有意义了。
  使用过KV300杀毒软件的用户知道,其全部程序装载在一张3.5英寸软盘上,你可以很轻易地把这张盘复制到另外一张3.5英寸软盘上,但复制盘却不能运行。同样,如KILL、瑞星等杀毒软件也是如此。这就是因为拷贝程序不能把原盘上的那些校验信息拷走的缘故。因此,这些软件厂商通过钥匙盘的方式减少了非法使用。
  不过,钥匙盘挡住了普通用户的复制行为,对于程序高手却是小菜一碟。由于软盘结构简单,加上钥匙盘加密技术已经广为流传,所以一些破解者对付钥匙盘早已触类旁通,他们可以通过磁盘工具静态分析磁盘上的特殊位置并复制,也可以动态跟踪程序读写检验动作,分析加密点。更有甚者,他们编写针对某类钥匙盘的仿真程序,运行这个程序,就可以在另一张空白盘上模拟出假的钥匙盘来,结果,使得采用钥匙盘加密的商家深受其害。著名的KV300"逻辑锁"事件,就是因为商家不堪忍受钥匙盘仿真程序的侵害,而采取了偏激行动。这也从一个侧面反映出了钥匙盘加密技术的局限性。此外,磁盘本身具有的一些天生弱点,比如速度低、易磁化、易潮霉、易折损等,又会给合法的用户带来麻烦。
  当然,采用钥匙盘加密的成本很低,我想这是吸引多数软件商使用的重要原因。因此,对于很多以磁盘为载体的软件来说,钥匙盘还是有相当长的市场生命。同时,针对钥匙盘这种加密方式,也有一些改进,比如磁盘指纹或者采取函数与特殊磁道结合的方式等等。

  我们来说说它的"近亲",光盘加密。
  按照上一期提到的"钥匙"与"锁"的道理,存放在光盘上的加密后软件,既可以以光盘本身为"钥匙",也可以用另一个加密狗为"钥匙"。而前者仍属于软加密范畴,后者就属于硬加密了。
  光盘相对于软盘来讲,其读取速度快、不易损坏、容量大所以也就越来越多地被软件商作为软件的存储介质。但正是由于光盘大容量、易制作等特点,使得光盘成为制作盗版软件的首选,研制光盘加密技术成为大势所趋。
  略知光盘生产的人知道,大批量光盘生产时,必须先做母盘,由一张母盘可以压出成千上万张成品光盘。根据这一关键过程,我们把市场上已有的光盘加密技术分为:需制作特殊母盘和不需制作特殊母盘两类。
  与上回说到的钥匙盘相似,制作特殊母盘的光盘加密技术,要在光盘上制作出一些特殊区域,也称作"指纹"或"水印"。这些特殊区域在盗版者欲用光盘刻录工具进行盘与盘对拷的过程中,会被系统检测成"坏扇"而中断复制,于是合法软件得到了保护。
  但是,由于制作特殊母盘必须要变动母盘制作设备,而该设备价值昂贵致使光盘厂不敢轻举妄动,所以软件商必须在制作母盘上费很多周折。另一方面,在加密强度上,这类特殊母盘加密的光盘,在对抗虚拟光驱类程序的复制方式上,也有不足。
  软件的低价格成为今后的一种趋势,而软加密正是适用于低价软件的一类保护解决方案。新的软加密技术正在层出不穷变换着花样面对盗版软件的挑战。
  


  
  在前面,我们介绍了软加密的几个种类,包括密码、自校验、钥匙盘、光盘加密等,从这一期起,我们来介绍硬加密。
  使用过一起高档软件的用户会发现,这些软件在使用时,必须在机器上(并口、扩展槽或USB口)上插一个小小的硬件设备,软件才可以正常运行。这个硬件设备通常被称?quot;狗"。注意一点,由于加密狗是北京彩虹天地信息技术有限公司率先在国内开发出的加密产品,只是因为大家用得多了,所以就习惯性地把市场上所有的加密产品(加密锁、加密卡等)都叫狗了。
  硬加密是一类软件与硬件技术相结合的加密产品。相对于软加密而言,加密狗独立于计算机系统外,难以用软件方式模拟,使得它更具?quot;黑箱"特点,功能也比早期的软加密有了质了突破。基本说来,硬加密是通过在软件执行过程中和加密狗交换数据来实现加密的。
  90年代初,北京彩虹天地信息技术有限公司的前身北京金天地公司的技术人员研制出了国内第一个并口软件保护装置,该装置仅含一个简单的逻辑电路,程序通过检查该装置存在与否来判断软件的合法性。这个装置后来定名为软件狗,也是以后加密产品发展的基础之作。后来的软件狗不断在硬件和配套软件上进行改进,不断吸取相关的新技术。成为市场上使用量很大的硬加密产品。现在的软件狗单位价格大约几十元,性能良好,适合于一些中档的商业软件的保护需要。一般的加密狗包含了几十到几百字节的E2PROM存储器,这种存储器是掉电保持的。这样,软件开发商可以利用软件狗中的E2PROM存入软件运行时需要的参数,然后通过软件狗提供的读函数又可以把存储器中的数据取出来用。这样,如果软件不带软件狗,就无法取得运算所需的数据,得不到正常的运行结果,从而达到加密的目的。
  当然,不是说硬加密方式就不能破解,有些解密者就利用并口监视器来监听并口数据流,记录程序运行中软件向并口写了什么数据,及并口上的加密硬件返回了什么数据,然后写一段程序仿真数据交换来解密。这对老的硬加密是一个打击。不过在新的软件狗中,比如金天?quot;RC-DJ型软件狗",设有端口噪声及迷宫技术,使得软件狗与软件的数据交换过程中含有大量的无用数据,来干扰解密,而正常的数据交换却可以在通讯协议的支持下正常进行。迷宫技术是用来迷惑解密者的跟踪用的。需要说明一点的是,有一类所?quot;打狗棒"的解密软件,其实是针对软加密的,并不能对硬加密起作用。


  现我们介绍一下在软件狗基础上发展起来的智能型加密产品和它的技术。
这种加密产品之所以称它为"智能型",是因为该种加密狗内置了单片机电路,也可以称作CPU,使得加密狗具有判断、分析的处理能力,增强了主动的反解密能力。
  加密狗内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。这样,就保证了加密狗硬件不能被复制。同时,加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数,如DogConvert(1)=17345、DogConvert(A)=43565。下面,我们举个例子说明单片机算法的使用。
  比如一段程序中有这样一句:A=Fx(3)。程序要根据常量3来得到变量A的值。于是,我们就可以把原程序这样改写:A=Fx(DogConvert(1)-12342)。那么原程序中就不会出现常量3,而取之以DogConvert(1)-12342。这样,只有软件编写者才知道实际调用的常量是3。而如果没有加密狗,DogConvert函数就不能返回正确结果,结果算式A=Fx(DogConvert(1)-12342)结果也肯定不会正确。这种使盗版用户得不到软件使用价值的加密方式,要比一发现非法使用就警告、中止的加密方式更温和、更隐蔽、更令解密者难以琢磨。此外,加密狗还有读写函数可以用作对加密狗内部的存储器的读写。于是我们可以把上算式中的12342也写到狗的存储器中去,令A的值完全取决于DogConvert()和DogRead()函数的结果,令解密难上加难。
  不过,一般说来,加密狗单片机的算法难度要低于一些公开的加密算法,如DES等,因为解密者在触及加密狗的算法之前要面对许多难关。比如RC-MH微狗,它具备有极强的反跟踪、反解密能力,比如彩虹天地公司独创的数据交换随机噪声技术及时间闸技术、迷宫技术,专门用来对抗逻辑分析和各种调试工具。随机噪声技术是针对并口监视工具设计的。如果试图截听并口与微狗的交互数据流,将会发现那里面夹杂了大量的无用随机数据,让解密者难辨真假,而软件和狗之间却可以按照通讯协议正常通话。时间闸技术严格规定程序的运行时间,如果有人想把程序停下来分析,软件将被时间闸切断运行。迷宫技术是在程序的入口和出口间插入了大量的跳转来迷惑跟踪者,令他们极难分析程序逻辑,最终放弃跟踪。这些技术是由微狗的硬件自动完成的,开发者不用考虑,也感觉不到。只有想跟踪破解狗的时候,才会感到它的厉害。 近一个时期,又有一种加密思想流行,那就是把原程序的一部分写到狗内去运行。程序写进狗里后,如果拿掉狗,就会使程序不完整,从而达到保护软件的目的。 可以说,为了对付越来越高的解密技术,加密产品煞费苦心,新技术屡见不鲜。这种矛与盾的争斗已经成为盗版与正版竞争的第二战场。
  

  上面我们介绍了加密狗的一些知识。不过,我们讲过的这些加密狗主要是针对单机使用环境的。比如软件狗、微狗,它们主要是采用一台机器插一只狗的方式。而现在,很多办公软件、企业软件、教育软件、医疗系统等都采用了网络版软件,这样对于减少投资、方便管理、资源共享等都是十分有利的。
根据这一应用趋势,怎样保护网络版软件的安全,也成为软件加密行业的一个课题。
  目前网络版软件主要有两类网络平台,即NOVELL公司的NETWARE软件和MICROSOFT公司的Windows软件(包括9x/2000/NT)。一般来讲,网络版软件在运行时,客户机从服务器执行应用程序或者向服务器请求资源服务,在客户机/服务器双方的共同合作下,完成软件的应有功能。
  网络加密产品的原理和使用也是如此。首先要在网络上启动一个网络加密狗的加密服务。就象网络上可以提供的其它服务一样,启动加密服务程序,将使得网络上所有合法用户可以访问到网络狗。当用户在客户机端运行加密后的软件时,客户机会向网络中寻找提供加密服务的网络狗。当网络狗存在且返回对应的信息后,软件用户被认为合法,软件功能就可以正常表现出来。与单机环境对比,使用单机狗加密的软件时,软件向本地机的并口请求加密狗服务;使用网络狗加密的软件时,软件通过网络介质向整个网络寻求网络狗服务。 那么,做为网络加密产品,应该具备哪些软硬件条件呢?
  最主要的是,加密产品要具备良好的网络适应能力。因为网络本身的特点,使得网络环境比单机环境具有更多的不确定性。很有可能软件设计者在自己的网络环境上开发出的加密软件,在其它的网络系统上就会出现问题。做为加密产品来讲,要有在网络上提供稳定服务的能力,才能尽可能减少因加密产品导致软件整体故障的可能性。说具体一点,网络适应能力可以表现为:1,客户机环境支持要全面。客户机的环境可能是DOS、Windows3.x/9x/2000/NT,如果加密产品不能全面支持这些环境,将会使软件开发和用户使用受到制约;2,支持多协议。用户往往受到具体因素的影响(比如速度、安全性),而必须选择某一网络协议,那么网络加密产品必须能适应多种协议,把选择权更多地留给开发者和用户。目前常用的协议有TCP/IP、IPX、NETBIOS等;3,支持复杂网络。随着网络软硬件技术不断进步,网络也正向复杂化、大型化、多功能化发展。集线器、交换机、路由器等设备成为扩展网络必需的部分。而一些加密产品不能支持这些设备,将会影响软件功能的发挥;4,多进程,加密产品必须支持多进程,给用户的使用创造宽松的空间。 此外,作为加密产品,网络狗也具备单片机、存储器、反跟踪等许多反解密特性,这些与前两期提到的单机加密狗相同。
  


  在上面的论述中,我们介绍了面向单机和网络的软件加密保护产品。其实加密产品是多种多样的,往往由于新技术、新设计思想、新应用环境的出现,也会导致加密产品的多样出新。

  比如说,近年来,随着外设总线体系结构化、标准化的发展趋势,英特尔公司、微软公司及众多PC厂商共同推出了USB外设总线规范。USB接口比起电脑外设传统的串口、并口来说,具有成本低、体积小、速度快、热插拔、易扩展等多种优势,逐渐开始为许多硬件产品设计采用。而对于加密产品来讲,USB接口最大的优势在于其不会与传统并口外设发生冲突的特点。用过加密产品的人知道,由于普通电脑仅有一个并口,而当电脑需要用打印机、扫描仪等设备时,就不可避免地会与加密锁产生冲突。要么只用其一,要么把它们串接在一起。很多时候,串接在一起的加密产品有可能和并口外设产生数据冲突,非常麻烦。而采用USB接口的加密狗可以插在电脑的USB口上,把并口留给了打印机,从而在根本上解决了原来的问题。同时,USB规范允许很方便地把USB接口扩展到几十个甚至百个以上,为以后电脑外设的发展提供了广阔的空间。
  对于一些搞系统集成、或者准备将软件放在开放环境下的软件开发者来说,通常不希望加密狗暴露在外或者根本不希望别人知道自己使用了加密产品。那么加密狗就可以根据用户需求做成卡式,直接插在用户电脑的主板扩展槽中,这样既增强了加密狗的隐蔽性,也提高了加密狗的访问速度,提高了稳定性,同时不会产生与并口外设的冲突问题。 对于比较关注加密质量的人来说,提高加密产品的加密强度是相当关键的。原来的加密狗(加密锁)与软件之间的关系是点与面的关系,即软件在运行到预定的加密点位置时,会去查加密狗,或者验证它的存或者和它交换数据,如果成功,软件就继续运行,否则返回错误结果。那么这样看来,想要保护好软件就要尽量不把加密点暴露给解密者,所以加密者和解密者把最多的功夫花在了对加密点的隐藏和破译上。近期,一种新加密思想,即用户算法植入技术被应用在最新的加密产品中。这种技术的主要思想是:把用户的部分程序算法移植到加密狗内部,由加密狗自己的CPU和存储器共同完成这部分算法的执行,用户的这部分算法不进入计算机总线,也就不可能被解密者侦测到。如果取掉加密狗后,用户的软件将不再完整,而不完整的软件对于使用者来说是没有意义的。这种新的加密技术在市场上一种称为"强劲狗"的产品中已经使用,它的出现使得流行的所有解密软件和通行的解密技术全都失去了威力,给软件保护市场注入了新的力量。
  无论是道高一尺,魔高一丈,亦或魔高一尺,道高一丈,加密与解密、保护与盗版一直是先进计算机技术的集中体现。因此,新的技术和产品将不断涌现。

[信息来源]:南昌光盘制作   打印此文 关闭窗口         
友情链接
小刀在线   江西电脑   江西IT频道   联众电脑   QQ时尚社区   IT保姆   南昌荣杰网络   中国零库存网   第一票务网   南昌房产财富   新华电脑学院   大海保健网   中国人论坛   自动门  
Copyright * 2007-2008 [南昌咨询网] All Rights Reserved

版权所有 江西省南昌咨询网 备案序号: 赣ICP备07000354号