本人就现今全球软件保护行业较普遍采用的方法之一使用“硬件加密狗”的方式方法谈谈自己的一点看法。
在当今中国市场上最主要的加密锁品牌有:1。美国彩虹公司(也是最早做硬件加密的公司)的国产品牌“加密狗”、美国品牌“圣天诺软件加密锁”;2。阿拉丁的“HASP”系列加密锁;3。德国威博公司的“WBU-KEY”加密锁;4。深思洛克的“深思加密锁”;5。蓝宇风公司的“金盾加密锁”;6。飞天公司的“ROCKEY”加密锁等几个主要品牌。
以上加密锁品牌的工作原理都是大同小异:被保护的软件--加密锁之间形成一一对映的关系,被保护的软件在运行的过程当中不断通过其API函数向加密锁发指令来判断加密锁是否存在于,软件离开保护锁不能运行。
但是从其发展历程来看,本人以美国RAINBOW公司的产品生产研发的历程作一个简单的介绍:
1、从最早由美国RAINBOW公司生产的第一代硬件保护锁,只是通过一个简单查询函数来验证并口的硬件保护锁是否存在,存在则程序继续运行,不再则软件终止运行,来完成并保护软件开发商的利益;
2、接着依然是美国RAINBOW公司对自己的第一代的产品进行了改进而形成了第二代的加密锁产品,并且美国RAINBOW公司为其第二代产品取名为:SENTINELPRO,其与第一代的产品相比较最大的改变在于加密锁硬件里头的运算芯片由RAINBOW公司写入了一个固定的“加密算法”,但这个算法是单一的固定的。
以上两种产品对于软件开发商来说有一个相当大的风险,那就是其必需相信RAINBOW公司不会把买给他们的加密锁买给别的个人,如果RAINBOW把相同的产品出售给别人的话,别人拿到这个加密锁就能使用开发商的软件。
3、通过软件开发商对这个问题的重视,RAINBOW公司针对这种情开发出了第三代的加密产品:SENTINELSUPERPRO,这种产品彻底解决了软件开发商的后顾之忧。这种产品其运算芯片中内置了28种算法,共分为56个单元,每两个单元可以单独保护一个应用程序,故用RAINBOW公司的说法其一把锁可以保护28个应用程序;且这种加密锁的每个算法单元所采用的算法因子是由软件开发商自己设定的,当其写入加密锁后对于外界来说就相当于一个暗箱,是任何人也读不出来的。
4、但随着解密者的技术的不断提高,RAINBOW中国公司研发出了第四代的产品-智能狗,与现今的差不多所有品牌的加密锁相比较,这种狗有了一个质的飞跃:其通过在开发过程中把一段代码加密后写入加密狗,当程序运行时再把加密狗里的代码在加密狗里自行运行,程序调用其运算结果来完成软件的加密,如此就从理论上杜绝了软件被破解的可能。
现在市面上的加密狗的工作原理不外乎RAINBOW的这两种形式:1、程序发命令查询--加密狗运算后相应程序;2、把源代码放入加密狗内部执行(现在还只有RAINBOW公司一家有此功能的加密狗)。