您的位置  > 互联网

>加密狗的使用说明及使用方法介绍

加密狗概述:

加密狗是一种看起来像 USB 闪存驱动器的硬件设备。 正确的名称是加密狗。 后来它发展成为软件保护的流行行业术语。 “加密狗”是一种插在计算机并行端口上的软硬件加密产品(新加密狗也有USB端口)。 一般有数十或数百字节的非易失性存储空间可供读写,现在较新的狗内部还包含微控制器。 软件开发人员可以通过接口函数与软件狗交换数据(即读写软件狗),检查软件狗是否插入接口; 或者直接使用软件狗自带的工具对自己的EXE文件进行加密(俗称“封装”)。 这样,软件开发者就可以在软件中设置多个软件锁,并使用软件狗作为打开这些锁的钥匙;如果软件狗没有插入或者软件狗不对应,软件将不会执行通常情况下。

加密狗通过在软件执行过程中与加密狗交换数据来实现加密。 加密锁内置微控制器电路(也称为CPU),使加密锁具有判断分析的处理能力,增强主动反解密能力。 这种加密产品被称为“智能”加密狗。 加密狗内置的微控制器包含专用于加密的算法软件。 软件一旦写入微控制器,就无法读出。 这样就保证了加密狗硬件无法被复制。 同时,加密算法是不可预测且不可逆的。 加密算法可以将数字或字符转换为整数,例如(1)=12345,(A)=43565。

加密狗是为软件开发者提供的智能软件保护工具。 它包括安装在计算机并口或USB口上的一个硬件,以及一套适用于各种语言的接口软件和工具软件。 加密狗基于硬件保护技术,其目的是通过对软件和数据的保护来防止知识产权的非法使用。

加密狗的工作原理:

加密狗通过在软件执行过程中与加密狗交换数据来实现加密。 加密锁内置微控制器电路(也称为CPU),使加密锁具有判断分析的处理能力,增强主动反解密能力。 这种加密产品被称为“智能”加密狗。 加密狗内置的微控制器包含专用于加密的算法软件。 软件写入单片机后,无法读出。 这样就保证了加密狗硬件无法被复制。 同时,加密算法是不可预测且不可逆的。 加密算法可以将数字或字符转换为整数,如(1)=12345,(A)=43565。 下面,我们举一个例子来说明单片机算法的使用。 例如,程序中有一句话:A=Fx(3)。 程序需要根据常数3获取变量A的值。因此,我们可以将原程序改写为:A=Fx((1)-12342)。 那么原程序中就不会出现常数3,而是使用(1)-12342。 这样,只有软件编写者知道实际调用的常量是3。而如果没有加密狗,该函数无法返回正确的结果,计算公式A=Fx((1)-12342)的结果肯定会不正确。 这种防止盗版用户失去软件价值的加密方式比一发现就警告并制止非法使用的加密方式更加温和、更加隐蔽,也更难被解密者破解。 另外,加密狗还具有读写功能,可以用来读写加密狗内部的内存。 所以我们也可以将上式中的12342写入狗的内存中,使得A的值完全取决于()和()函数的结果,使得解密变得更加困难。不过,一般来说,算法难度加密狗微控制器的性能低于一些公共加密算法,例如DES,因为解密者在接触加密狗算法之前要面临许多困难。

目前最新的硬件加密原理:

随着解密技术的发展,单片机加密狗因其算法简单、存储空间小、易于硬件复制等特点逐渐被市场淘汰。 以北京彩虹世界信息技术有限公司为首的国内加密狗厂商,开发出了稳定性更好、存储空间更大(最大64K)、有效防止硬克隆的第四代加密狗——“智能卡”加密狗。 其独创的“代码移植”原理已被金蝶、用友、CAXA、广联达、神机妙算、鲁班等国内大型商业软件开发商采用。

以全球第一款智能卡加密锁红狗为例,简单介绍一下“代码移植”的原理。

“代码移植”的加密原理是一种全新的、值得信赖的软件保护模式。 其工作原理是:将软件中的部分代码编译并“移植”到加密锁硬件中,软件中没有代码的副本。

在该软件保护方案中,PC端应用软件的关键代码和数据“消失”,安全地移植到精锐IV加密锁的硬件上进行保护。 当需要时,应用软件可以通过函数调用引擎指示精锐IV运行硬件中的关键代码和数据并返回结果,从而仍然可以完成整个软件的所有功能。 由于这些代码和数据在PC上没有副本,解密者无法猜测算法或窃取数据,从而在很大程度上保证了整个软件系统的安全。 总之,精锐IV提供了一套可信的解决方案,从理论上保证了软件加密的安全性。

使用加密狗进行加密的一些策略:

目前的解密技术排除了法律和道德因素,从学术角度来说是一门科学。 它与加密技术一样,相互补充并不断改进。

以下是使用加密狗(加密锁)进行硬件保护的一些想法:

有没有使用加密狗解密的方法?

1. 硬件拷贝

复制硬件意味着解密者复制了相同的加密锁。 由于加密锁采用了彩虹专有的ASIC芯片技术,复制加密锁的难度很大,成本也很高。

2. 监控

解密器利用并口监听程序进行解密。 其工作机制是:

监听程序记录应用程序向并行端口发送的查询字符串以及加密锁发回的响应字符串。 当加密锁解除后,如果程序向并行端口发送查询字符串以确认身份,则监听程序将返回记录的响应字符串。 该程序认为加密锁仍然在并行端口上并且合法用户继续运行,并且应用程序被解密。

3.打印机共享器

在打印机共享器上插入加密锁,多台计算机可以在打印机共享器上使用同一个加密锁。 (后面会简单介绍对抗策略)

4.调试

DEBUG等解密器对程序进行反编译、修改程序源代码或跳过查询比较。 应用程序已解密。

对于上述解密方式,加密者可以考虑使用以下加密策略:

1、针对上述监控和DEBUG问题的解密方法,我推荐一种充分利用加密狗开发者API函数调用的加密策略:

A。 用于并口监听程序

1)查询加密锁的算法

Ø正确查询响应验证

用户生成大量查询响应对,例如200对。 程序运行过程中,随机发送200对中的一对“”--“”到启动的加密算法单元。 如果查询字符串为“”,则算法单元返回的正确响应字符串应该为“”。 如果是,则程序认为加密锁在并口上并且是合法用户,并继续运行。 否则,程序终止。

Ø随机非激活算法验证

我们向不活动的加密锁算法单元发送一个随机生成的查询字符串,如:“”。 只要有查询,非活动的算法单元就会有响应字符串。 因此,返回响应字符串“”,程序判断响应字符串和查询字符串是否相同。 如果相同,就证明我们的加密锁还在嘴上。 继续运行程序。

Ø随机激活算法验证

假设听众了解上述机制。 也就是说,对于非激活的加密算法,无论我们发送什么查询字符串,都会返回相同的响应字符串。 我也有对策。 发送随机生成的查询字符串到激活的加密算法单元,如:“” 因为是激活的算法,所以响应字符串不能与查询字符串不同。 所以如果返回响应字符串“”,请判断程序中响应字符串和查询字符串是否不同。 如果不同,则证明我们的加密锁还在并口上,继续运行程序。

以上三种加密策略在程序中同时使用,相互一致,相辅相成。 甚至侦听器也会记录我们的一些查询响应。

2)分时查询

将用户查询响应对进行分组,例如120对分为4组。 每组30对。 前三个月使用第一组,第二个月和第三个月使用第二组,依此类推。 监测计划记录了前三个月的情况。 三个月后第二个月该程序仍然无法使用。

您还可以生成 100 对“临时委员会成员”,每次运行随机选择 1 对与上述组组合使用。 三个月内无法完整记录录制过程。 该程序也无法使用。

3)随机读写存储单元

防止窃听程序。 我们的策略是:当程序启动时,我们使用随机函数随机生成一个数字,假设它是“”。 我们把这个数字写入指定的18#单元。 当我们运行程序时,我们在每次函数调用之前读取单元18,并判断该数字是否是我们编写的数字“”。 因为每次写入的数字都是随机生成的,所以监听程序无法记录启动时写入的随机数,它返回的数字一定是不匹配的数字。 然后我们就可以判断是否是合法用户。 加密锁可重写10万次以上。 也就是说,即使一天写三遍,也能用一百年。

2、打印共享设备的加密策略

防止打印共享。 我们的策略是:当程序启动时,我们使用随机函数生成一个数字,假设它是“”。 我们把这个数字写入指定的34#单元。 程序运行时,每次函数调用前读取单元34,判断是否是我们写的数字“”。 用它来确定您是否是合法用户。 由于每次写入的数字是随机生成的,所以同时使用打印共享器的其他非法用户一进入程序也会写入不同的随机数字。 那么第一用户的程序在验证是否是第一用户写入的号码时就会认为是非法用户。 所以在一个阶段只使用一个程序。 (比如公司开的加密锁,可以重复使用10万次以上,也就是说,每天写3次,可以用一百年。)

3、DEBUG跟踪的加密锁的安全策略

1)分散法

跟踪调试。 在调用各个重要功能模块之前,建议查询加密锁并验证身份。 如果只是在程序开始时验证身份,那么DEBUG跟踪程序部分可以很容易地跳过验证部分,而一些不法用户可以在验证后解除加密锁并在其他计算机上使用。

2)延时法

对于具体的查询验证,分为三个步骤:

Ø查询获取响应字符串

Ø比较响应字符串和查询字符串是否匹配

Ø执行适当的步骤

我们建议推迟上述三个步骤。 最好使这三个步骤彼此远离,甚至放入不同的子例程或函数中。 例如:在我们执行“查询以获取响应字符串”之后,我们每隔 50 秒执行一次“比较响应字符串和查询字符串以查看它们是否匹配”。 假设程序需要调用一个函数。 然后我们就在这个函数中执行“执行相应的步骤”。 这使得程序更难被破解。

3)整体方法

使用响应字符串作为程序中的数据。

例如:我们有返回值“”,而我们的程序需要数字“123”。 我们可以用“”减去“”得到“123”。 对加密程序的任何修改都会导致程序损坏。

4)混淆法

通常我们的程序会执行相应的验证步骤。 如果验证不合法,用户将退出。 这使得检测代码特征变得容易。 当我们知道非法用户继续进行一些无用的操作后,程序就会出现紊乱。 来迷惑解密者。

以上是当今软件开发人员在使用硬件加密锁(加密锁)保护软件时可以使用的几种实用加密策略。