各种加密方案分析
来源:中国电子政务网 更新时间:2007-07-02

  当前软件加密方法多种多样,已经不可能找出一种分类方法来把各种加密方案很好地区分开来。基本上来说可以分为依赖特定硬件的加密方案和不依赖硬件的加密方案。

  一、依赖硬件的加密方案

  1. 软盘加密

  这是在计算机上最为古老的一种加密方案,它的原理是在软盘的特殊位置写入一些信息,软件在运行时要检验这些信息。这种软盘就好像一把钥匙。软件开发商只需一次投资购买一套加密工具就可以自己制作多张钥匙盘。此方法加密简单,成本低,在软件发展的不同时期都能看到其闪光点。但因为软驱是慢速设备,多次检查软盘上的加密点会大大拖慢程序的运行速度,所以一般加密软件只在软件运行开始的时候检查一次,这样不能避免用户用一张加密盘启动多份软件。而且由于软盘是一种易损载体,加密软件对软盘加密点的反复读写很容易造成软盘的损坏。而这张加密盘又不能备份,软件公司要不断应付用户更换加密盘的请求。另外由于这种加密技术出现得较早,硬解密的技术相对比较成熟,像双星公司的King-Copy软件能拷贝大多数的加密软盘,连加密点一起复制,复制后的软盘还是加密的。

  2. 卡加密

  在90年代初,各种各样的汉卡涌现出来,随之而来的卡加密技术也风行一时。由于种种问题,这种加密技术现在已经难得一见了。

  3. 软件锁加密

  软件锁加密是在国外首先出现的,它是一个插在计算机打印口上火柴盒大小的设备,国内俗称“加密狗”。在加密锁内部存有一定的数据和算法,计算机可以与之通讯来获得其中的数据,或通过加密锁进行某种计算。软件无法离开加密锁而运行。由于它不像卡加密那样需要打开计算机的机箱来安装,但又像加密卡那样可以随时访问,而且访问速度很快,所以一推出就受到软件开发者们的青睐。目前,所有的加密锁都提供了可编程的接口。用户可以控制加密锁中的内容,在程序中通过加密锁的接口任意访问加密锁。国外加密锁一般仅提供若干种算法,但好的加密锁不但可以向客户提供加密算法,也容许客户根据自己的意愿自定义加密算法,容许客户自定义用户ID号……比如:北京飞天诚信科技公司(网址:www.rockey.com.cn)推出的ROCKEY-IV锁就是一种加密强度很高产品(见图1)。但加密锁也是有一定欠缺的,由于加密锁利用的是计算机的打印口,而打印口原来是为打印机而设计的,软件锁一方面要保证用户加密操作的正确,同时也要保证打印机工作的正常。但由于打印机驱动程序设计上千差万别,没有任何一家的加密锁能够完全做到这一点。

  但这一问题现在有希望得到彻底的解决,那就是USB接口的加密锁。USB接口的加密锁不但拥有并口加密锁的所有优点,而且没有打印上的问题,其前景十分看好。但美中不足的是只有Windows 98和Windows 2000目前能够支持USB设备。北京飞天诚信科技公司推出的一款ROCKEY-USB加密锁(见图2)其安全性优于国外产品,同时售价远远低于国外产品。

  由于软件锁加密目前是软件加密的主流方案,所以再特别讲一下软件锁加密的安全性问题。

  首先从软件锁的硬件方面进行研究。早先的软件锁由于硬件的加密程度不够,容易被破解。最近一年的软件锁设计大多采用了低电压CPU为基础的设计,CPU内部的程序由软件锁厂商自行写入,由于CPU内部的程序是一次写入而且不可修改、不可读出的,安全性也比较高,而且由于CPU程序是由软件锁生产厂家来写入,厂家可以根据自己的要求随时修改软件锁内部的程序,灵活性也比较高。

  其次我们从软件锁软件方面考虑一下。实际上大多数黑客攻击的只是软件锁和客户的软件方面,真正从硬件角度来破解软件锁的比较少。从结构上来说,一个使用软件锁进行加密的软件分为三个部分:1)软件锁的驱动程序部分;2)软件锁提供的负责同驱动程序进行通讯的具体语言模块(.OBJ、.DLL……);3)客户软件部分。前两部分都是由软件锁的厂家来完成的,都有不同程度的加密与反跟踪成分,不易被解密。客户软件部分相对比较简单,往往是黑客攻击的主要部分。软件锁的使用环节很多,任何一个环节出了问题,都会造成整个加密方案的失败。而客户的使用方法往往是加密成败的关键,如果某个软件锁的访问最后能够归结为某个条件判别的话,那么一旦在这里被跳过,整个加密也就失去作用了。规划一套真正行之有效的加密方案,才能更好地发挥软件锁的保护功效。

  4. 光盘加密

  既然有软盘加密成功在先,为什么不能有光盘加密呢?但实际操作上确实是有一些问题的,因为光盘有ISO9660标准协议规定,其可控制性比软盘还要严格,想找出一种只能运行而不能复制的方式确实很困难。但现在确实已经有几家这样的产品出来了,而且加密方法也不尽相同。其主要原理是利用特殊的光盘母盘上的某些特征信息是不可再现的,而且这些特征信息大多是光盘上非数据性的内容,在光盘复制时复制不到的地方。因为投入是一次性的,对于大规模的生产这种加密方案可以将成本降得很低。而且软件数据和加密在同一载体上,对用户无疑是很方便的。但这是一种较新的加密方案,很多方面还需进一步验证。而且由于加密方式所限,不可能在用户自己刻录的光盘上实现这种加密,必须是生产线上生产的光盘才能够实现。这对于一些小规模的软件生产厂商还是有一定困难的,而且由于光盘的只读性,一旦加密有错是无法修复的。

  

共3页。 1 2 3 :