我们的公司网址:http://www.jiamisuo.net
UPL-32R,32位智能卡加密锁,真正网络锁功能,绝对无数用户数。黑客绝对无法通过反编译服务端程序或在客户端进行模仿,达到用户数不限用户的目的。
硬件32位智能卡(通过国密局认证,内置32位CPU)及我司独有防克隆技术;双重保证无法复制为软件提供源代码级的加密保护,软件代码在智能卡中运行,绝对无法,内置时钟锁,方便开发商严格控制软件的试用和使用时间。
|
32位智能锁为什么可以做到绝对无法:
原因一:开发商可以将代码移到智能卡中运行,智能卡相当于一个黑盒子,黑客无法对其中运行的代码进行调试及。
原因二:由于智能锁中使用了我们的专利的动态加密技术,使得加密代码不受容量限制,开发商可以自定义无限加密点。
原因三:丰富的语法,在加密锁中可以运行跳转,比较,循环,查表,函数调用等指令及字符串操作。不再受以前8位CPU,只限于简单的加减乘除及字节操作,从而对一些容易被反编译的语言也可以达到绝对的保护。
综上所述,要我们的智能卡是绝对不可能的。
32位智能锁为什么可以做到无法复制?
原因一:32位智能锁使用的是智能卡芯片,硬件通过国密局认证,硬件防止复制。不过随着科技的不断进铂现在的科技连人的胚胎都可以复制,原子都可以移动,但智能卡芯片使得复制成本非常之高。
原因二:即便在高利润的驱使下,芯片被复制,其二进制Bin文件可以形成,但我毛司独有防克隆技术,所得复制出来的Bin文件即便注入到新的芯片中也无法正常运行。
原因三:独有的自毁指令,使得即便真的存在复制锁,也可以轻易将复制锁毁灭。
综上所述:要复制我们的智能锁,只存在理论上的可能。
32位智能锁对于ASP,JAVA,PB,VFP等可被轻易反编译成高级源码这类开发语言,能有效地进行保护吗?
完全可以的。由于我们的智能锁中使用了我们的专利的动态加密技术,使得加密代码不受容量限制,开发商可以自定义无限加密点。这样,开发商只要将足够多的核心代码由我们的智能锁中运行,这样就可以使用开发商所有的核心代码,黑客都无法反编译,从而达到保护的效果;
另,我们的使用的独创的模糊解释语言,开发商只需自定义与自己开发语言相接近的关键字,就可以很方便地进行加密代码的开发了。
开发者如果不懂C语言,也可以开发吗?
完全可以的。我们的使用的独创的模糊解释语言,开发商只需自定义与自己开发语言相接近的关键字,就可以很方便地进行加密代码的开发了。无须一定要会C语言。
我对加密这方面不是很熟,可以方便地进行开发吗?
我们首创了开发与加密分离的方尸加密与软件开发可以独立分开。另,我们还沿用了我们以前专业型及经济型时代首创的代码生成器,可以方便地生成加密代码。我们完善的开发工具,同时还新增了仿真调试功能,可以让开发商方便调试自己的加密代码。
如果我要加密的代码很多,会对软件运行的速度有影响吗?
一般是不会的。我们的智能锁使用的全速USB协议,为BULK传输,传输速度高达12Mbps,为有驱型,芯片为32位芯片,速度非常之快,一般主要尽量避免在长循环中使用就可以了。
我的软件要求实现时间限制功能,这个可以实现吗?
完全可以的。但我们暂时实现还是智能锁通电时间,而不是实时时间。但我们方便的远程授权工具,可以轻松实现授权时间的远程增加。
我想我的用户每隔一段时间,就需要授权一次,软件才能使用,可以实现吗?
完全可以的。我们有一个专门的时间函数及时间工具,可以方便地让开发商对自己的客户进行时间授权,且绝对安全。开发商给用户一个授权号后,用户的软件只能运行到开发商设定的运行时间。当时间一惮软件就不能再继续运行。除非开发商给用户一个新的授权号.
如何防止客户佯说锁丢了,要开发商重新给新锁及给新的授权号,我们应该如何应付?
最好的方法是在加密代码中增加时间限制功能,软件每隔一段时间都需要重新授权才能使用,这样就可以有效地防汁锁的行为。
我的程序中有多个功能模块,我想实现不同的功能模块收不同的钱,即每注册一功能,都要增加收费,可以实现吗?
完全可以的。具体可以参考我们多模块授权的例子及开发演示
我的程序升级了或增加了新的功能,升级是免费的,增加新的功能是收费,这两种情况,我们需要叫用户将锁寄回给我们吗?
不需要。如果是免费升级软件,将升级软件直接给用户就可以了(在开发升级版时,需要使用原有的开发密钥进行开发);如果增加新的功能,新的功能需要收费,给用户新增功能的软件,缴费后的用户给对应锁的授权号就可以了(在开发新功能版时,需要使用新的开发密钥进行开发),没有缴费的用户由于没有对应的授权号,有新增功能的软件也没有办法运行。
我们是团队开发,不同的开发人员开发不同的模块,这种锁方便团队进行开发吗?
我们首创了开发与加密分离的方尸加密与软件开发可以独立分开,如果是团队开发,可以是一部分人专门开发加密代码部分,将接口提供给其它开发人员。也可以是各自开发自己不同的加密部分,这样更利于加密的安全,可以有效防止部分程序员离队后,造成程序被盗版的现象。不同模块的开发人员既可以同一密钥进行开发,也可以使用不同密钥开发。
我的是团队开发,如果我的部分程序员或部分管理人员离队后,会对我们的加密有影响吗?
我们首创了开发与加密分离的方尸加密与软件开发可以独立分开。同时我们首创的授权锁概念。可以有效地防止部分程序员或管理人员离队后对加密造成的负面影响。在理论上参与加密开发人员越多,加密就越安全,因为不同开发人员的加密代码部分是可以相互独立的。只要公司的最高管理层保管好授权锁,即便部分程序员或部分管理人员离队,也不会对程序的安全性造成任何影响。
我们的软件是通过代理商进行销售,我们可以实现对代理商的控制吗?
完全可以的,我们首创了授权锁概念,开发商设置好授权锁及可授权次数后将授权锁给代理商,让代理商直接对他的客户进行授权,当授权次数一惮授权锁将失效。软件开发商可以通过远程授权的方式重新设置授权锁的可授权次数,而无须将授权锁要回来重新设置授权次数。
智能锁中的语法会不断进行扩展吗?高版本的智能锁可以向下兼容吗?
我们的智能锁的语法会不断扩展,使得开发商开发更容易,功能更强大,且高版本的智能锁会向下兼容低版本的智能锁的。
我的软件使用了智能锁,是否意味着就绝对安全了?
开发商使用我们的智能锁进行加密,还需要对自己的软件进行很好地加密,如果加密不当(例如简单地进行判断),也会造成不安全的现象。如何才能加密得当呢?就是尽量让智能锁来运行自己的核心代码。
你们加密真的是在锁中运行吗?会不会只是在驱动层或DLL中实现的?
我们所有的驱动及DLL均是源码开放,包括我们的开发工具。
开放你们的驱动及DLL源码会不会对加密造成负面影响?
完全不会,相反反而更增加了安全性。这个原理就像加密算法一样,越诗开的算法,越是安全的,越不公开的算法,反而容易存在安全漏洞。公开我们的源码,不但增加了我们的安全性,同时增加了锁的稳定性,所谓三个臭皮匠胜过一个诸葛亮。
会不会因为你毛司内部的原因而造成锁被复制的可能?
完全不会。因为我们的智能锁的内部密钥及ID均是唯一的,是在我们生产锁时随机生成,生产后立即销毁。由于它是使用公开密钥方尸已知公钥,无法推出私钥,所以由此可得,无论我毛司任何人都无法复制出智能锁。(样品锁除外)
目前在锁内运行的代码都是通过文件或变量的方式传到锁内的,可否把代码直接存在锁内,只传结果出来?
直接代码的方式不能实现很强大的功能及更安全的加密,这个就是为什么我们的锁具有超时代的先进性的主要表现之一。具体解释如下:
A:安全性上,将代码直接下载到加密锁中,对于普通人来说是保密的,但对于一些作硬件来说,就是不安全的因素。简单地举例,假如你有一本日记,想不让人知道里面的内容,是用一个柜子将其锁住安全,还是将日记的内容打乱,只有我自己可以看得到安全。当然是将其加密更安全。因为下载到加密锁的代码虽然表面上是安全,但对于某些人来说,不一定是安全的,但使用已知安全的算法加密后代码,则一定是安全的。
B、从功能上来讲,下载到锁的算法,容量有限制,一般需要对C语言非常懂,且要求用户对该加密硬件有很深的了解,而我们是使用动态的加密方尸是全新的解释性语言,更方便开发,更容易实现更强大的功能,更容易实现远程升级远程授权,及非常重要的共享开发模尸更多的优越性不能尽数。简单地我们日常的开发语言中,现在新兴的开发语言有哪一个不是是解释性的语言,我们可以这点从看出来了。
为什么这款32智能锁适合于共享软件开发者?
因为这款锁的最大好处就是在于不同的软件开发商可以使用同一把锁对自己的程序进行加密,而不相互影响,也无须相互协调。共享软件开发者无须付出任何硬件加密成本,就可以达到绝对无法的硬加密效果。另一方面,软件的用户也大大地降低了在硬件成本的付出。
以住不同的软件需要配不同的锁,一来使用不方便,二来增加了不必要的成本付出。同时该款锁还有时间限制功能,完全符合共享软件开发者给用户进行试用的要求,符合双方利益。也就是说即便是一个售价只有5的软件也可以实现使用硬加密,而售价不变,且也可以让用户进行试用。
我的共享软件只售5,可以用得起这种32位智能锁吗?
完全可以的。因为我们这款锁是专门针对共享软件开发者设计的。共享软件开发者无须付出任何硬件加密成本,就可以达到绝对无法的硬加密效果。只有加入我们的行列的共享软件开发者越多,输成为一种趋势,共享软件开发者就越能得到更大的利益。我们也愿意公开我们的指令代码,让更多的硬件锁开发商相互兼容,即共享软件开发者无须针对某一特定硬件锁的进行开发。
不同的共享软件开发者,开发的软件使用同一智能锁进行加密,不同软件之间会有冲突吗?会不会存在被的因素?需要不同的共享作者之间相互协同吗?
不同的共享软件开发者,开发的软件使用同一智能锁进行加密,不同软件同时运行,它们之间不会有任何冲突。由于不同的共享软件开发者是使用自定义的密钥进行开发的,所以不同共享软件开发者不会知道对方的开发密钥,所以也就不存在任何不安全的因素,不同的共享作者之间也无须做任何协同工作。
不同的共享软件开发者,可以使用同一把锁,实现不同的时间限制吗,他们之间会有冲突吗?需要不同的共享作者之间相互协同吗?
完全可以且相互之间不会存在任何冲突,也无须任何协调工作。
例如用户使用了A软件开发者的A软件,同时又使用了B软件开发者的B软件(以下简称,A,B),A设置客户的A软件可以使用2小时,B设置客户的B软件可以使用4小时,当2小时后,A软件则会没有办法使用,而B软件可以继续使用。当A给了客户A软件新的授权号使用A软件再不受时间的限制后,B软件到了4小时后,仍将会失效。
32位智能锁哪部分是可以共享使用,那部分是不能的?
加密锁的30K内部储存器是不可以共享的,所以任何共享软件开发者不要对30K内部储存器进行操作,除非你确定该储存器没有任何其它开发者对其进行操作,即读写密码没有改变。
另,智能锁是一个宝贵的共享资料,任何软件都可以使用它进行加密,所以尽量不要在程序中使用一个短的定时器对锁进行访问,以及在一个长循环中操作锁,因为如果你的软件操作锁太频繁了,可能会影响其它软件的运行速度。这个道理就像电脑CPU一样,软件运行得越多,软件速度就会越慢。
如何区分真正的网络锁及普通网络锁?
从最终功能上来说:绝对不能被用户数的,就是真正的网络锁。能够被黑客通过,反编译服务端程序或在客户端进行模仿从而达到用户数不受限制的网络锁都是普通的网络锁。
从操作下来说:如果有两台机A和B,它们通过代理来连接到服务器上,普通的网络锁是无法分辨这是两个不同的连接,有一些普通网络锁也可以通过在客户端发随机数来解决这个问题,但由于随机数是与程序无关的,所以黑客只要拦截了这个随机数就达到的目的。真正的网络锁,可以在一个完全开放的系统,在客户端及服务端程序都开放的情况下,清楚地分辨两台来自同一代理服务器发来的不同连接请求。简单地说,真正的网络锁,在开放加密锁核心代码及服务程序,客户端程序代码的情况下,亦不存在任何被的可能。
从实现方式来说:普通的网络锁是使用对连接数的判断来实现对用户数的限制。由于连接数与要加密的程序是无关的,所以是很难实现或不能实现真正的连接的控制。真正的网络锁是使用与要加密的程序有关的方式来进行用户数的限制。注:在我们的32位智能锁体系中,版本号大于或等于108的为真正的网络锁,少于108的为普通网络锁。
真正网络锁的原理
真的网络锁实现的原理有很多种,我们采用储物柜的方式。所谓的储物柜方式就是为不同的连接分配一个唯一的储物柜(以下用术语称之为全局线程堆),当限制连接数为2个时,就在锁内动态分配两个全局线程堆给相应的连接,不同的连接只能对相应的全局线程堆进行操作,如果有超过二个的连接对其进行操作,那么原来储存在全局线程堆中的数据将会丢失。
由于线程可以在加密锁内对全局线程堆进行操作,这个操作是在加密锁内运行,且与程序是有关的,不同的线程不同的时刻可能储存不同的数据,从而实现连接数与加密程序的相关性。从而达到绝对防止的目的。
普通网络锁的开发
网络版与单机版的开发是基本一样的,不同在于以下:
A、在程序启动时,需要连接服务器
B、连接并初始化成功后,需要将当前连接添加到服务器,或在加密锁中调用addconnect指令
C、在派发智能锁给用户时,需要设置相应的网络授权用户数
真正网络锁的开发
除与普通网络锁的实现方法之外,我们还需要在加密锁中运行运行SaveVar及GetVar指令,从而实现真正的网络用户数的限制,方法如下:
A:在某一加密函数中,使用SaveVar指令将相应的变量数据储存在全局变量堆中,注意,这个应该是动态变化的数据,最好不是要固定的数据,即该数据是根椐用户的不同操作而变化的。
B、生成另一加密函数,在该加密函数中使用GetVar将存放在全局变量堆中的数据取出来继续使用,这样就可以达到真正地限制用户数,而又绝对无法。
C、注意,绝对无法只适用于限制连接数,如果是限制机器数,则无法做到真正的绝对无法。
如何远程增加用户数
1、使用我们的开发工具生成新的网络授权码,并生成相应的配置授权文件,然后将该文件发给用户。
2、用户使用我们的通用服务程序进行远程增加用户数。
3、或开发商通用调用我们的API函数根据配置授权文件对用户数进行远程升级
如何实现不同的功能模块限制不同的用户数
1、对于普通网络锁,可以使用多把锁来实现,不同的锁设置不同功能模块的用户数。同时启动多个服务端程序,不同的服务端程序设置不同的通讯端口来实现。
2、对于真正的网络锁,本身是支持同一把锁限制不同功能模块的不同的用户数,方法如下:
A、调用添加AddConnect连接函数或指令时,加入功能模块参数,例如:
addconnect("C8465C91E252BA2A",30176,0)
addconnect("C8465C91E252BA2A",0,1)
这里增加了两个功能模块的连接,不同的限制用户数,分别被设置在加密锁的30176及0位置
B、然后在调用存取全局变量堆数据时,同样加入相应的功能模块参数,例如:
SAVEVAR(f1,0)
SAVEVAR(s0,1)
32位智能卡(I代)内置:
寄存器变量:8个长整形变量,8个双精度浮点变量及8个字符串变量,
变量堆栈:16个整形变量堆栈,16个浮点变量堆栈,16个字符串变量堆栈,供PUSH及POP指令
使用,即不能连续PUSH超过16次相同类型的变量,由于不同的类型的变量各有自已的堆栈,所
以不是相同的类型是的变量,不受限制
程序堆栈:10个程序指针堆栈,供CALL指令使用,即不能内嵌重复调用超过10个CALL指令,
如果不是内嵌重复调用则不受限制,所谓内嵌重复调用是指在CALL指令中再调用CALL指令。
程序代码:由于使用了动态的加密技术,所以程序代码不受限制,可以是无限长。
EEPROM储存器:加密锁内部有(咨询特价)字节独立储存器可供开发商使用(约30K),这个储存器与
程序代码无关,即程序代码不占用该储存器空间,储存器最少擦写次数30万次 ,室温下数据保
持时间最少100年 ,单字编程时间为1.2ms
寄存器定义:在进行开发时,我们定义了以下变量名称,与加密锁中的寄存器相对应。(不区分大小写)
长整形变量:D0,D1,D2,D3,D4,D5,D6,D7
双精度浮点变量:F0,F1,F2,F3,F4,F5,F6,F7
字符串变量:S0,S1,S2,S3,S4,S5,S6,S7
(注意:字符串变量的长度为50个英文字符)
注意:智能锁版本8.0之后,将变量堆栈减为10层。用于网络锁的应用及共它应用。
私钥加密原理
提示1:
我们的加密的主要目的,是将原本在PC中运行的部分关键代码移到锁中运行,如果调用加密锁这部分代
码被跳过,程序将会缺少一部分关键代码,从而没有办法正常运行。由于加密锁的运行速度无法与PC相
比,所以不需要将所有的程序代码都移到锁中运行,只需要是部分关键代码就可以了,在不影响运行速
度的情况下,越多越好。
提示2:
基于上面的目的,所以我们一般不要这样做:即获得加密锁运行的结果,然后在PC端对其进行比较判断,从而来决定程序是否可以继续运行,因为这样很容易被者将这部分比较直接跳过。而是将加密锁运行的结果用于其下继续运行的代码中,即这些变量或结果在下面继续运行的代码中将会继续用惮因为它本身是程序中的一部分,这样就可以达惮存在指定的加密锁,程序将会正常运行,不存在指定加密锁或加密部分被跳过,程序将不能正常运行,从而达到不被盗版的目的。
提示3:
私钥加密方式即对称密钥方尸也就是说加密密钥必须与解密密钥相同,否则的话,加密后的代码将无法被加密锁在锁中正确解密。所以我们在加密时,必须先在锁中设置好正确的加密锁密钥,然后将加密锁派发给用户时,也需要在锁中设置相同的加密密钥
公钥加密原理
对称密钥及公开密钥结合加密方尸可以实现更强大的功能
提示1:锁的长ID由两部分组成,即RSA算法中的公钥及模,每一把锁的长ID是唯一的,除些之外,每一把都内置有与公钥相对应的唯一私钥,私钥内置在加密锁中,不可读,不可以更改。
提示2:由于锁的长ID是唯一的,所以可以得出,不同的锁对应的授权号也是唯一的,不同的开发密钥,对应于同一把锁,其授权号也不相同
三、注册过程
我们由过程一知道,开发密钥是相同的,所以加密后得出的加密文件也是相同的,即加密文件对于每一个用户是相同的;而我们又由过程二知道,每一把锁都是唯一的,这样要想加密锁对加密文件文件进行正常的解密,这样就需要一个注册过程。
在加密锁中对加密文件或二进制数据进行注册的说明如下:
1、加密锁使用内置的私钥对授权号进行解密,将开发密钥还原,
2、加密锁使用还原后的开发密钥,对输入的二进制数据进行解密,还原成正常的二进制数据
3、加密锁中存在着另一密钥,该密钥是唯一的,每一把锁都不相同,注意,该密钥与私钥并不相同,是相互独立并不关联,它是一对称密钥,加密锁使用这一对称密钥重新对还原后的正常的二进制数据进
行加密,生成另一加密后的二进数据,该加密数据只能被该加密锁正常解密
四、运行过程
公钥的运行过程基本上与私钥相同,
提示1:我们的加密的主要目的,是将原本在PC中运行的部分关键代码移到锁中运行,如果调用加密锁这部分代码被跳过,程序将会缺少一部分关键代码,从而没有办法正常运行。由于加密锁的运行速度无法与PC相比,所以不需要将所有的程序代码都移到锁中运行,只需要是部分关键代码就可以了,在不影响运行速度的情况下,越多越好。
提示2:基于上面的目的,所以我们一般不要这样做:即获得加密锁运行的结果,然后在PC端对其进行比较判断,从而来决定程序是否可以继续运行,因为这样很容易被者将这部分比较直接跳过。而是将加密锁运行的结果用于其下继续运行的代码中,即这些变量或结果在下面继续运行的代码中将会继续用惮因为它本身是程序中的一部分,这样就可以达惮存在指定的加密锁,程序将会正常运行,不存在指定加密锁或加密部分被跳过,程序将不能正常运行,从而达到不被盗版的目的。
提示3:公钥加密方式即公开算法的加密方尸也就是说由公钥加密的数据,只能被相应的私钥解密,授权号就诗钥加密的数据,只有对应的锁生成的授权号才可以被相应的私钥解密
全系列加密锁参数对比表:
加密锁比较一:中高系列 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
加密锁比较二:中低系列 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
其它共有性能 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
系统支持 | Win98/Me/2000/XP/Server2003/VISTA/Win7/LINU等 多平台 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
无DLL支持 | 中低系列:VB,PB,VBNET,C#,Delphi,BC,VC无须任何DLL的支持 中高系列:Delphi,BC,VC无须任何DLL的支持 其它开发语言提供DLL或控件 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
外壳及颜色可选 | 是,注:YT699如果需要更换外壳需要另外收费 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
接口 | USB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
技术支持 | 是 |