加密锁是一种插在计算机并行口上的软硬件结合的加密产品(新型加密锁也有usb口的)。一般都有几十或几百字节的非易失性存储空间可供...
加密锁是一种插在计算机并行口上的软硬件结合的加密产品(新型加密锁也有usb口的)。一般都有几十或几百字节的非易失性存储空间可供读写,现较新的狗内部还包含了单片机。软件开发者可以通过接口函数和加密锁进行数据交换(即对加密锁进行读写),来检查加密锁是否插在接口上;或者直接用加密锁附带的工具加密自己EXE文件(俗称"包壳")。这样,软件开发者可以在软件中设置多处软件锁,利用加密锁做为钥匙来打开这些锁;如果没插加密锁或加密锁不对应,软件将不能正常执行。加密锁是目前上位机软件保护最常用的一种硬件设备。当然,加密锁的发展也是经历了很长一个阶段,从第一代加密锁到现在的第四代加密锁,也是经历了破解,升级的反复更新升级。其实,任何一种安全都是相对的,不可能有一种绝对安全的
算法或者机制。只要信息技术在发展,任何算法都有可能被击破,任何硬件安全产品,都可能被破解。这也是为什么加密锁要不断升级的原因,下面我们来谈谈加密锁历经的各个时代。
软件狗的发展经历了好几代,至2001年初就已发展到了第四代。
第一代是存储器型的加密锁。这是最有历史的加密锁,内部只有存储体,厂商只能对加密锁进行读、写。加密锁起信号加密变换作用的器件,最多只简单采用一些电阻、二极管等,检查方法也比较简单,很容易被人解密。解密者进行线路抓取、分析一下规律就可以破解,这就是常说的“端口”层的数据分析。这种加密锁原理非常简单,是种正在被逐步淘汰的产品,但是其原料成本极低,即使在很低的价位也有很好的利润,很多厂商由于成本原因又不得不采用,因此这种加密锁仍有一定的市场份额;
第二代是算法不公开的加密锁。硬件内部增加了单片机,即所谓内置CPU,厂商主要是利用算法功能进行加密。加密锁通常还增加了一些辅助功能,比如计数器、在线升级功能等。因此解密的难度也增加了一点。利用单片机,软件与加密锁之间的数据通讯建立了一个保密协议,数据都是经过加密的,解密者就难以分析出数据内容和规律了,因此对于这种加密锁的数据分析就不是停留在“端口”层了,解密者转向了“功能”层,就是对软件中的函数调用进行分析。为了抵挡功能层的数据分析,这种锁来了个“软硬”兼施的策略。
“软”的是指驱动程序内反跟踪、外壳加密等等软件工作,让解密者难以在功能层上仿真,谁都靠的是对操作系统、微机系统的精确理解。谁都无法决胜,结果是加密驱动程序在不断更新、膨胀。
“硬”的就是加密锁内的算法功能,这大大增加了解密难度,这是掌握在加密者手中的武器。但是,加密者只能设置算法的参数,即内含多种算法,而算法内容并不知道。这样就限制了厂商对算法的使用,要么预先记录算法结果然后在软件运行时核对(使用码表);要么在软件中至少变换两次然后比较结果是否一致。如果解密者截获这些数据,通过统计、分析就有可达到解密目的;
第三代加密锁,即所谓“可编程”的加密锁。1999年初,“可编程”加密锁概念的推出是软件加密技术的一次进步。“可编程”加密锁设计初衷是希望用户能够将软件中重要的代码或模块“移植”到加密保护设备中运行,使软件与加密锁实现真正无缝链接。但由于成本限制,早期推出的几款“可编程”加密锁采用的低档单片机给“可编程”性造成了很大的局限,主要表现在:算法变换的复杂度不够高,指令编码空间较小和程序区的空间较小。这些局限性使得用户根本不可能利用“可编程”加密锁实现理想的高强度加密方案。这些器件由于密码编制的灵活性和制成密钥后在程序中插入检查的方便性,极大地增加了解密的难度。因为软件狗是插在微机的并行口上,所以检查程序是通过并行口的I/O地址去读写EEPROM。具体的读写方式跟硬件线路以及EEPROM的时序有关,因此,一般的检查程序针对某一种硬件线路;但是这些程序大同小异,大体上是差不多的。
第四代软件加密锁在第三代加密锁基础上,加入一个单片机芯片,单片机自身带有高强度安全算法,可以以对抗逻辑分析仪,防止线路跟踪。可以说,软件狗发展到第四代,已经非常成熟了。他们的硬件大都基于高安全等级的智能卡平台微控制器。众所周知,智能卡芯片目前正在银联等高安全领域中普及使用,负责存储用户密钥等重要信息,其特点就是抗攻击能力极高。因为无论从存储数据量,还是从运算能力上讲,智能卡芯片的微控制器都远高于第三代加密锁的运算能力。所以用户可以将更多的软件程序放到加密锁中来运行,这就极大程度的提高了PC端程序的安全性。
LKT5103加密锁,RAM增大1K的完全免安装驱动,软硬件开发商可以把自己软件中一部分算法和代码下载到加密锁中运行。用户采用标准C语言编写代码。可以采用MD-ARM或者ARM Developer Suite (ADS1.2) 编译器(请购买正版编译软件),编译并下载到加密锁中。以MDK-ARM编译软件举例。在软件实际运行过程中,通过调用函数方式运行32位高速软件加密锁芯片内的程序段,并获得运行结果,并以此结果作为用户程序进一步运行的输入数据,这样加密锁就成了软件产品的一部分,从根本上保护程序。这是第四代软件加密锁比第三代加密锁更安全稳定的地方。
综上,任何加密技术都不是绝对安全的,就像加密算法本身也只是在一定时期内具有安全性。软件加密技术还会继续发展更新。与此同时,破解技术也在日益提升。不管哪一代加密锁,都有各自的特点,各自的市场。但技术的升级必然有其历史原因存在,单从安全角度来看,最新一代的技术,才是最能带来安全改观的。所以,在适当考虑成本的前提下,最好选用最新技术的加密产品。