厂商介绍
在当今中国市场上最主要的加密锁品牌有:
1、美国彩虹公司(也是最早做硬件加密的公司)的国产品牌“加密狗”、美国品牌“圣天诺软件加密锁”;
2、阿拉丁的“HASP”系列加密锁;
3、德国威博公司的“WBU-KEY”加密锁;
4、深思洛克的“深思加密锁”;
5、蓝宇风公司的“⾦盾加密锁”;
6、飞天公司的“ROCKEY”加密锁等⼏个主要品牌。
以上加密锁品牌的⼯作原理都是⼤同⼩异:被保护的软件--加密锁之间形成⼀⼀对映的关系,被保护的软件在运⾏的过程当中不断通过其API函数向加密锁发指令来判断加密锁是否存在于,软件离开保护锁不能运⾏。但是从其发展历程来看,本⼈以美国RAINBOW公司的产品⽣产研发的历程作⼀个简单的介绍:
1、从最早由美国RAINBOW公司⽣产的第⼀代硬件保护锁,只是通过⼀个简单查询函数来验证并⼝的硬件保护锁是否存在,存在则程序继续运⾏,不再则软件终⽌运⾏,来完成并保护软件开发商的利益;
2、接着依然是美国RAINBOW公司对⾃⼰的第⼀代的产品进⾏了改进⽽形成了第⼆代的加密锁产品,并且美国RAINBOW公司为其第⼆代产品取名为:SENTINEL PRO,其与第⼀代的产品相⽐较最⼤的改变在于加密锁硬件⾥头的运算芯⽚由RAINBOW公司写⼊了⼀个固定的“加密算法”,但这个算法是单⼀的固定的。
以上两种产品对于软件开发商来说有⼀个相当⼤的风险,那就是其必需相信RAINBOW公司不会把买给他们的加密锁买给别的个⼈,如果RAINBOW把相同的产品出售给别⼈的话,别⼈拿到这个加密锁就能使⽤开发商的软件。
3、通过软件开发商对这个问题的重视,RAINBOW公司针对这种情开发出了第三代的加密产品: SENTINEL SUPERPRO,这种产品彻底解决了软件开发商的后顾之忧。这种产品其运算芯⽚中内置了28种算法共分为56个单元
,每两个单元可以单独保护⼀个应⽤程序,故⽤RAINBOW公司的说法其⼀
把锁可以保护28个应⽤程序;且这种加密锁的每个算法单元所采⽤的算法因⼦
是由软件开发商⾃⼰设定的,当其写⼊加密锁后对于外界来说就相当于⼀个暗箱,是任何⼈也读不出来的。
4、但随着解密者的技术的不断提⾼,RAINBOW中国公司研发出了第四代的产品-智能狗,与现今的差不多所有品牌的加密锁相⽐较,这种狗有了⼀个质的飞跃:其通过在开发过程中把⼀段代码加密后写⼊加密狗
,当程序运⾏时再把加密狗⾥的代码在加密狗⾥⾃⾏运⾏,程序调⽤其运算结果来完成软件的加密,如此就从理论上杜绝了软件被破解的可能。
工作原理
现在市⾯上的加密狗的⼯作原理不外乎RAINBOW的这两种形式:
1、程序发命令查询--加密狗运算后相应程序;
2、把源代码放⼊加密狗内部执⾏(现在还只有RAINBOW公司⼀家有此功能的加密狗)。
软件狗是使⽤在计算机并⾏⼝和 USB ⼝上的⽤于软件保护的硬件产品。软件狗采⽤端⼝噪声技术
,提供 100 字节的掉电保护存储器,具备反跟踪能⼒,是经济实⽤软件保护解决⽅案的⾸选。软件狗开發套件有两种选型:并⼝型和USB 型。软件开發商可以采⽤多种⽅法保护软件,防⽌软件被⾮法拷贝使⽤。
软件狗开發套件由以下组件组成:
- 软件狗
软件狗指安装在并⼝上或 USB ⼝上的硬件狗。软件狗是⼀个可编程、可读写的存储设备,具有 100 个字节的数据存储区。如果软件狗插在计算机上,您可以通过相应的加密接⼝函数或开發商⼯具对软件狗进⾏访问。 - 加密接⼝
软件狗开發套件提供的加密接⼝是⼀套包含各种开發语⾔的程序接⼝模块,可以嵌在程序的源代码中。您可以在您程序中使⽤软件狗开發套件提供的加密接⼝对软件狗进⾏操作。 - 开發商⼯具( DogEdt32.EXE )
软件狗开發商⼯具可以使开發商⽅便地对软件狗存储区进⾏编辑、读取系列号以及连续初始化等操作。
开發商程序通过调⽤软件狗开發套件提供的接⼝模块对软件狗操作,软件狗响应该操作并通过接⼝模块将相应数据返回给开發商程序。开發商程序可以对返回值进⾏判定并采取相应的动作。如果返回⽆效的响应,表明没有正确的软件狗,开發商可以将应⽤程序终⽌运⾏。简要示意图如下:
加密方案
软件狗开發套件提供了两种加密⽅案:使⽤ Obj 、 DLL 、 ActiveX 控件或者直接使⽤外壳⼯具,请根据您的需求选择⽅案。
- 加密⽅案⼀:使⽤ Obj 、 DLL 、 ActiveX 控件
Obj 、 DLL 、 ActiveX 控件提供了操作软件狗的接⼝函数,您可以直接在应⽤程序的源代码⾥加⼊这些接⼝函数的调⽤,来保护您的⼀个或者多个软件,然後重新编译您的应⽤程序。由您来设置应⽤程序中调⽤加密接⼝的次数以及没有發现软件狗采取的措施。原则上您调⽤、设置的加密接⼝越多将更有利于阻⽌潜在⿊客破坏您的软件保护。 - 加密⽅案⼆:使⽤外壳⼯具
使⽤外壳⼯具对软件保护是⼀种快速、简单的保护⽅案。它不象使⽤接⼝函数需要对源代码进⾏改动,⽽是⾃动给您的可执⾏应⽤程序加了⼀个保护层。在程序开始运⾏和运⾏当中会⾃动地访问软件狗是否存在。假如软件狗不存在,⽤户将看到⼀个错误提⽰,该应⽤程序将不能运⾏。
主要特点
软件狗的主要特点如下:
- 数据交换随机噪声技術
有效地对抗逻辑分析仪及各种调试⼯具的攻击,完全禁⽌软件仿真程序模拟并⼝的数据。 - 迷宫技術
在 RC-DL 函数⼊⼝和出⼝之间包含⼤量复杂的判断跳转⼲扰代码,动态改变执⾏次序,提升 RC-DL 的抗跟踪能⼒。 - 時间闸
硬件狗内部设有時间闸,各种操作必须在规定的時间内完成。硬件狗正常操作⽤時很短,但跟踪時⽤時较长,超过规定時间,硬件狗将返回错误结果。 - AS 技術
API 函数调⽤与 SHELL 外壳加密相结合的⽅式,同時使⽤能够达到极⾼的加密强度。 RC-DL 开發套件在外壳加密⼯具中与调⽤的 API 函数建⽴了对应关系。这样处理後,程序中调⽤的 API 函数只有在有外壳的情况下才能正确运⾏,⽽外壳本⾝隐蔽了对 API 函数的调⽤。 - 抗共享
可以通过编程的⽅式实现对抗并⼝共享器。 - 存储器
提供 100 字节掉电保持数据存储区供开發商存放关键数据、配置参数等信息,可通过 RC-DL 开發商⼯具或接⼝函数对存储区进⾏读写。 - 改良的硬件驱动程序
驱动程序的安装及發布更加⽅便、快捷,开發商只需使⽤ InstDrv.exe 安装驱动程序,硬件即可正常⼯作。 - 崭新的硬件狗编辑⼯具 DogEdt32.exe
集成了原有 DogEdt32.exe 、 Reveal.exe 、 Convert.exe 三个⼯具,并新增错误码查询功能,令硬件狗编辑调试过程更趋简捷、顺畅。 - ⾼强度动态库加密⽅式
在原有加密⽅式基础上,新增 C 语⾔⾼强度动态库加密⽅式,并有效运⽤动态库认证安全机制,确保动态库调⽤具有⽆与伦⽐的安全可靠性。 - ⽀持 ActiveX 控件
开發商可以在⽹页中或 VB 、 VC 中使⽤ ActiveX 控件对硬件狗进⾏操作。 - Linux 模块
提供了针对 Linux 内核 2.2 和 2.4 版本驱动程序,开發商可以使⽤ Linux 模块保护运⾏于 Linux 操作系统上的应⽤程序。