1.当我的软件升级后是否需要更换新的加密锁?
答:不需要。当您的软件连带加密锁发售给最终用户后,您应保存其密码号即锁的KEY值。当您的软件升级后,您只需用同一密码号加密升级程序,然后将加密后的升级程序发给用户即可。


2.外壳加密可以对哪些文件进行加密,怎样操作?
答:外壳加密是一种对可执行文件(*.exe \ *.com \ *.dll \ *.ocx )进行加密的加密方法。我们将为您提供外壳加密工具,操作简单,可以在无源程序代码或不对源程序代码进行任何改动情况下进行加密,并有着较高的加密强度。

3.硬件时钟锁动态密码的产生
答:动态密码会由专门的工具获取,它需要提供指定的加密锁(母锁)、指定加密锁的key值、密码,用指定的母锁获取特定批次加密锁的动态密码。不同客户之间加密锁不能相互获取对方的动态密码,获取动态密码的加密锁是经过特殊处理的母锁,由客户自己控制,绝对保证了动态密码的安全性。

4.同号锁和异号锁是怎么回事?
答:软件加密锁分异号、同号。异号锁是指锁与锁之间的内部硬件识别码(KEY值)不一样,相互不能通用;同号锁是指加密锁的KEY值一样,在应用中可以相互通用。同号锁方便开发商在完成加密任务后,大量生产自己的软件,压制光盘,每套软件不需重新再编译。异号锁加大了程序编写的工作量。市场销售的锁都为异号锁,号码唯一,为厂家做绑定记录。同号锁是用户为了方便软件的大量制作、发行和维护而定制。同号锁将被记录,与客户绑定,明确该号被特定用户占用,保证该号不会在市场上出现,也不会对任何第三方制作该号的同号锁。

5.java工程中调用.dll文件易出现问题:
(1)Can't find dependent libraries或java.lang.UnsatisfiedLinkError: no JAVADLL_CDLLT in java.library.path,Error loading library JAVADLL_CDLLT;
解决方法: 将JAVADLL_CDLLT.DLL和cdllt8.dll拷贝到windows的System32目录下(JAVADLL_CDLLT.DLL是加密锁的JAVA接口文件,文件在报表的安装目录下可以找到);并且要注意PATH环境变量中要包含System32目录。
**注: 本机库的装入由调用 System.loadLibrary() 方法的类的类装入器启动 —— 硬时钟锁UT中,就是 JAVADLL_CDLLT 的类装入器。根据使用的类装入器,会搜索不同的位置:
&& 对于由 bootstrap 类装入器装入的类,搜索 sun.boot.library.path。
&& 对于由扩展类装入器装入的类,先搜索 java.ext.dirs,然后是 sun.boot.library.path,然后是 java.library.path。
&& 对于由系统类装入器装入的类,搜索 sun.boot.library.path,然后是 java.library.path。
在硬时钟锁UT中,JAVADLL_CDLLT 类是由系统类装入器装入的。要装入所引用的本机库,这个类装入器先查找 sun.boot.library.path,然后查找 java.library.path。因为在两个位置中都没有需要的库,所以类装入器抛出 UnsatisfiedLinkageError

(2)Exception in thread "main" java.lang.UnsatisfiedLinkError: 方法名 造成这种错误的可能原因:
原因一:java虚拟机找不到声明native方法的本地语言定义(导入dll或者导入lib文件不正确导致)
解决方法:
静态导入(即在前面加static来导入Lib文件),动态导入时需加catch的抛出异常来解决,如
try {
System.loadLibrary("JavaDll");
}
catch (UnsatisfiedLinkError e)
{
System.err.println("Can't find library JavaDll.DLL");
System.exit(-1);
}
原因二:编写加密狗的JAVA接口文件时出错
解决方法:
1)检查JAVA类是否包含在包中(即开头为 package 包名),若有,编译头文件时要注意:
javac 包名/类名.java
javah -jni 包名.类名
这样生成的.dll文件才能与JAVA对应
**注:在java工程中引入Demo.java和JAVADLL_CDLLT.java时所建的包名要与这两个类所在的包名一致!
2)注意在C文件中定义函数时字母的大小写

6.现在市场上出现了一种加密锁模拟机,蓝芯金盾加密锁有何对策?
答:说简单点,原理就是插上加密锁的时候先让加密锁走一遍,把所有对加密锁的访问都记录下来。然后拿掉加密锁的时候,由模拟机来模拟加密锁给程序送数。虽然编写模拟机是一个很艰难的工作,但一旦编出来,对于大多数加密锁都能轻易破解,不用再去劳神看汇编码了。加密锁模拟机在蓝芯金盾加密锁面前就显得无能为力了。蓝芯金盾加密锁是具有计算能力的密码机。每次输入数据和输出数据都是使用一次就失效的随机数,对这种数据进行统计是无意义的。因为它是前后无关,使用一次就失效的数据。

7.别人能买到和我买的一样的加密锁吗?
答:您不用担心。每个客户的加密锁密码是不同的,我们为每个客户建立档案,必要时与用户签订安全协议,按照用户指定的方式将加密锁安全地送到用户手中。

8.光盘上的有些实例为何不能正常编译或运行?
答:因为从光盘上拷备的文件为只读属性,编译或运行前应把它们的属性改为可读可写。

9.加密锁密码忘记后怎么办?
答:一种方法是换新的加密锁,一种方法是证明该订货号锁是你以前所订。经我们确认后返回公司进行初始化,更改为初始密码。

10.数据共享器真的能共享加密锁吗?
答:蓝芯金盾加密锁具有防止共享功能。

11. 找不到加密锁怎么办?
答:(1)首先换一台电脑查看加密狗是否能正常使用;
(2)如果换台电脑也不能使用,根据加密锁上灯的状态判断问题,正常情况下,加密锁的灯是不停闪烁的;
(3)如果加密狗灯闪烁正常,请使用我们的软件开发包中的演示程序进行测试,根据返回值及错误提示查找错误;
(4)如果加密狗灯长亮或长灭状态,请与我们联系。

12.我在使用中发现一个错误,错误码没有在列表中,我应该怎么办?
答:我们定义了很多的错误码,其中有些调试错误和极小概率错误,为了避免困扰用户,我们没有在错误提示列表列出。如果发生了这种情况,请与我们联系寻求支持。

13.外壳加密能对IME文件进行加密吗?
答:可以。由于IME文件结构与DLL文件类似,可以通过更改后缀名的方法对文件进行加密。具体做法为:将需要进行加密的**.ime文件重命名为**.dll,然后按照加密工具提示操作。最后将加密后的**.dll再次更改为**.ime即可。

 

                                                   返回顶部

1.一般应用程序加密方案

将加密代码写入到源程序代码中,即为内嵌式加密。内嵌式加密将加密代码与源程序代码有效的融为一体,使得代码看起来更加复杂,从而增加了破解的难度。所以,内嵌式加密是我们较为推荐的加密方式。您可以选择如下的加密流程:

  • 查找加密狗是否存在
  • 由系统产生随机数X,以此作为一次性校验因子
  • 将随机数分为两路:一路与用户输入的key值运算,得到校验值;另一路发送给加密狗,通过芯片中的写入数据得到返回值。
  • 比较校验值与返回值,当两值相等时继续程序,否则退出程序
    上述方案为加密狗的基础性加密流程,当然用户可以利用加密狗的二次开发区实施灵活的加密方案。

    2.二次开发区应用推荐

    利用二次开发区不仅可以实现简单的数据、字符读写功能,也可以实现多方案的商业级销售模式。
    分模块销售:将软件按功能分成多个模块,设置各模块密码并写入加密狗存储区,当访问此功能模块时需输入正确的对应密码。
    租赁式销售:金盾加密狗芯片中自带Counter接口函数,每次调用自动减一,可以实现软件的限次功能,以及远程解除期限。对于功能强大的硬件时钟锁,利用接口函数,可以严格的控制软件使用的时间,尤其适合考试系统等对时间有严格限制的软件。

    3. B/S结构身份认证流程推荐

    通常用加密锁做身份认证时,都会在服务器后台建立一个数据库使用户信息和加密锁绑定。
    为了使用户身份认证更加安全,我们建议您使用如下流程来进行客户端身份检测:

    • 客户端检测控件,没有控件提示控件下载安装。
    • 客户端提交身份认证请求,等待服务器响应
    • 服务器端产生一个随机数,以此作为一次性的校验因子并存储到会话session里
    • 随机数传递给客户端加密锁,加密锁返回校验数据并提交给服务器验证
    • 服务器端通过数据库用户信息和加密锁信息比对判断客户端的合法身份
    • 根据判断结结果决定是否允许客户的访问权限。

    上述判断方法的流程是一个安全方案,但是应用I型产品在数据库检索用户信息校验时,可能数据量过大造成响应时间长,这是客户所不能接受的。为缩减数据库检索时间,我们建议在建库的时候给用户信息建立一个标记字段,存储Lock32_Function(long rand)函数返回值,这样做的好处是,一旦客户端插上加密锁,我们就可以获得加密锁的Lock32_Function(long rand)返回值且唯一,这样通过标记去找用户信息和加密锁信息就会快捷,大大缩短了检索时间。或者可以采用用户名密码以及加密锁多重验证方法,以用户名去数据库查找用户信息,然后提取该用户的加密锁信息去程序校验,也可以做到缩短检索时间,并且同时也提高了用户的安全性。

    4.加密建议

    • 在很少使用的代码中调用加密锁。那么看似已破译的程序就会经常发生异常现象。
    • 根据时间调用加密锁。上午调用的数据下午(或隔日)使用。破译者为了分析这种数据就要花一天或几天的时间。这就可以拖垮破译者。
    • 加密锁返回值使用后立即删除。
    • 将加密锁返回值作为数组的索引、常量、计算单元和校验码。
    • 将加密锁返回值作为指针来控制程序执行或作为在不同表中跳转的索引。
    • 使用加密锁返回值来加密或解密部分代码或数据。
    • 如果发现加密锁返回值错误,不要显示出错信息。
    • 加密锁校验函数不一定义成一个单独函数,而宜定义成若干个小函数分散使用。
    • 检查程序代码的校验和,以防非法修改。
    • 以各种不同的随机访问掩护真实的加密锁访问。对随机询问的答复进行处理,但不真正使用它。
                                                       返回顶部



    1.什么是加密狗

    加密锁又称加密狗,是为软件开发商提供的专伺加密工作的密码机,负责密码变换和加密通讯等工作,通过在软件执行过程中和加密狗交换数据来实现加密。加密锁硬件由ASIC大规模集成电路构成, 具有不可读、不可调试的硬件特性,可以保证内置于加密装置中的程序不被读出。加密锁软件是一个软件包,内含各种加密工具和各种编程工具的加密示例。加密狗以软硬件相结合的方式,保护您的软件不被盗版,保证您的市场免受盗版的侵蚀。

    2.加密原理

    开发商通过加密狗(加密锁)开发包,设计加密方案,从而将软件与硬件加密狗进行绑定,绑定后的软件没有正确的加密狗就无法运行。通过加密狗硬件的不可复制性,保证了软件的不可复制性。开发商程序通过调用接口模块对加密狗进行操作,加密狗响应该操作并通过接口模块将相应数据返回给开发商程序。开发商程序可以对返回值进行判定并采取相应的动作。如果返回无效的响应,表明没有正确的狗,开发商可以将应用程序终止运行。

    金色盾牌软件加密锁把用户定制(根据密码系数变换密码算法)密码算法写入加密锁中,并以程序的形式对调用者进行身份验证。
    安全基础一:金色盾牌加密锁以一个动态变化随机数的形式出现在用户程序中,出现过的数据自动失效,下一个数据不可预知。破译者不知道密钥:key1,key2,key3,key4,无法随机产生Random X,因而软件狗不可用软件模拟。
    安全基础二:加密者用读(read)的方式访问变量dogRandom,任何分析工具(DEBUG)都无法跟踪此操作,从根本上截断了跟踪线索。
    安全基础三:金色盾牌加密锁内设一体化的CPU和存储器,破译者无法仿制狗的硬件电路,也无法读取狗中数据。
    安全基础四:密钥和算法以用户任意的自定义形式(如:key=a+b+c)融于用户的大量程序中,破译者要从二进制代码中获得密钥和算法的原码,其难度远大于重新编制一个新的程序。

    3.加密方式

    内嵌式:这种加密方法要求具有源程序,在被加密程序中访问加密锁。我们为您提供VC\VB\VFP\Delph\PB\CB等各种言的编程接口及详细的示例供客户参考。如果您有什么特殊要求可与我们联系。
    外壳式:外壳加密是一种直接对可执行文件(.exe,dll)加密的加密方法。这种方法不需要源程序,加密过程简单方便。

    4.加密锁在软件销售中的应用

    软件开发商不再需要制作专门的演示版、试用版、简略版或担心用户修改系统时间等等,可以根据软件使用者输入不同的口令确定该软件可运行的时间、次数和软件功能模块。金色盾牌加密锁有供用户二次开发的存储器,用户可在其上做很多重要工作。
    一.可直接用蓝芯金盾加密锁控制软件使用的期限、次数和程序功能模块的放开限制。
    在金盾加密狗的软件包里,我们提供了期限管理工具,软件开发商可以方便的设置用户的使用期限和期限密码,远程解除期限并选择下一轮期限。
    二.软件的试用和软件的分期付款控制
    本加密锁支持多段限时(限次)设定。试用期(试用次数)内软件正常工作,超过试用期(试用次数),加密锁将提示软件使用者交纳该软件费用和继续使用所需的密码。交费并得到密码后,软件可继续运行。付全款的软件将能无限期(限次)运行。
    三.可裁剪式销售
    软件开发商可将储存区分配给不同的软件或软件模块,然后根据输入密码的不同而开放不同的软件功能模块供用户使用,方便多模块软件的销售活动。

                                                       返回顶部